1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-09 23:34:20 +00:00

Whitespace: Fix whitespace and line endings in cmake files

This commit is contained in:
reuk 2024-11-05 17:56:39 +00:00
parent 24ab3cb6a3
commit 8ae3bffe82
No known key found for this signature in database
GPG key ID: FCB43929F012EE5C
28 changed files with 5166 additions and 5168 deletions

View file

@ -1,194 +1,194 @@
# ============================================================================== # ==============================================================================
# #
# This file is part of the JUCE framework. # This file is part of the JUCE framework.
# Copyright (c) Raw Material Software Limited # Copyright (c) Raw Material Software Limited
# #
# JUCE is an open source framework subject to commercial or open source # JUCE is an open source framework subject to commercial or open source
# licensing. # licensing.
# #
# By downloading, installing, or using the JUCE framework, or combining the # By downloading, installing, or using the JUCE framework, or combining the
# JUCE framework with any other source code, object code, content or any other # JUCE framework with any other source code, object code, content or any other
# copyrightable work, you agree to the terms of the JUCE End User Licence # copyrightable work, you agree to the terms of the JUCE End User Licence
# Agreement, and all incorporated terms including the JUCE Privacy Policy and # Agreement, and all incorporated terms including the JUCE Privacy Policy and
# the JUCE Website Terms of Service, as applicable, which will bind you. If you # the JUCE Website Terms of Service, as applicable, which will bind you. If you
# do not agree to the terms of these agreements, we will not license the JUCE # do not agree to the terms of these agreements, we will not license the JUCE
# framework to you, and you must discontinue the installation or download # framework to you, and you must discontinue the installation or download
# process and cease use of the JUCE framework. # process and cease use of the JUCE framework.
# #
# JUCE End User Licence Agreement: https://juce.com/legal/juce-8-licence/ # JUCE End User Licence Agreement: https://juce.com/legal/juce-8-licence/
# JUCE Privacy Policy: https://juce.com/juce-privacy-policy # JUCE Privacy Policy: https://juce.com/juce-privacy-policy
# JUCE Website Terms of Service: https://juce.com/juce-website-terms-of-service/ # JUCE Website Terms of Service: https://juce.com/juce-website-terms-of-service/
# #
# Or: # Or:
# #
# You may also use this code under the terms of the AGPLv3: # You may also use this code under the terms of the AGPLv3:
# https://www.gnu.org/licenses/agpl-3.0.en.html # https://www.gnu.org/licenses/agpl-3.0.en.html
# #
# THE JUCE FRAMEWORK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL # THE JUCE FRAMEWORK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL
# WARRANTIES, WHETHER EXPRESSED OR IMPLIED, INCLUDING WARRANTY OF # WARRANTIES, WHETHER EXPRESSED OR IMPLIED, INCLUDING WARRANTY OF
# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED. # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED.
# #
# ============================================================================== # ==============================================================================
cmake_minimum_required(VERSION 3.22) cmake_minimum_required(VERSION 3.22)
project(JUCE VERSION 8.0.3 LANGUAGES C CXX) project(JUCE VERSION 8.0.3 LANGUAGES C CXX)
include(CMakeDependentOption) include(CMakeDependentOption)
set_property(GLOBAL PROPERTY USE_FOLDERS YES) set_property(GLOBAL PROPERTY USE_FOLDERS YES)
set(JUCE_MODULES_DIR "${JUCE_SOURCE_DIR}/modules" CACHE INTERNAL set(JUCE_MODULES_DIR "${JUCE_SOURCE_DIR}/modules" CACHE INTERNAL
"The path to JUCE modules") "The path to JUCE modules")
# This option will disable most of the JUCE helper functions and tools. This option exists to # This option will disable most of the JUCE helper functions and tools. This option exists to
# facilitate existing CMake builds which handle things like bundle creation, icons, plists, and # facilitate existing CMake builds which handle things like bundle creation, icons, plists, and
# binary data independently of JUCE. This option is not recommended - use at your own risk! # binary data independently of JUCE. This option is not recommended - use at your own risk!
option(JUCE_MODULES_ONLY "Only configure the JUCE modules" OFF) option(JUCE_MODULES_ONLY "Only configure the JUCE modules" OFF)
include(extras/Build/CMake/JUCEModuleSupport.cmake) include(extras/Build/CMake/JUCEModuleSupport.cmake)
# This option controls whether dummy targets are added to the build, where these targets contain all # This option controls whether dummy targets are added to the build, where these targets contain all
# of the source files for each JUCE module. If you're planning to use an IDE and want to be able to # of the source files for each JUCE module. If you're planning to use an IDE and want to be able to
# browse all of JUCE's source files, this may be useful. However, it will increase the size of # browse all of JUCE's source files, this may be useful. However, it will increase the size of
# generated IDE projects and might slow down configuration a bit. If you enable this, you should # generated IDE projects and might slow down configuration a bit. If you enable this, you should
# probably also add `set_property(GLOBAL PROPERTY USE_FOLDERS YES)` to your top level CMakeLists, # probably also add `set_property(GLOBAL PROPERTY USE_FOLDERS YES)` to your top level CMakeLists,
# otherwise the module sources will be added directly to the top level of the project, instead of in # otherwise the module sources will be added directly to the top level of the project, instead of in
# a nice 'Modules' subfolder. # a nice 'Modules' subfolder.
cmake_dependent_option(JUCE_ENABLE_MODULE_SOURCE_GROUPS cmake_dependent_option(JUCE_ENABLE_MODULE_SOURCE_GROUPS
"Show all module sources in IDE projects" OFF "Show all module sources in IDE projects" OFF
"NOT JUCE_MODULES_ONLY" OFF) "NOT JUCE_MODULES_ONLY" OFF)
add_subdirectory(modules) add_subdirectory(modules)
if(JUCE_MODULES_ONLY) if(JUCE_MODULES_ONLY)
return() return()
endif() endif()
include(extras/Build/CMake/JUCEUtils.cmake) include(extras/Build/CMake/JUCEUtils.cmake)
set_directory_properties(PROPERTIES set_directory_properties(PROPERTIES
JUCE_COMPANY_NAME "JUCE" JUCE_COMPANY_NAME "JUCE"
JUCE_COMPANY_WEBSITE "https://juce.com" JUCE_COMPANY_WEBSITE "https://juce.com"
JUCE_COMPANY_EMAIL "info@juce.com" JUCE_COMPANY_EMAIL "info@juce.com"
JUCE_COMPANY_COPYRIGHT "Copyright (c) - Raw Material Software Limited") JUCE_COMPANY_COPYRIGHT "Copyright (c) - Raw Material Software Limited")
option(JUCE_COPY_PLUGIN_AFTER_BUILD option(JUCE_COPY_PLUGIN_AFTER_BUILD
"Whether or not plugins should be installed to the system after building" OFF) "Whether or not plugins should be installed to the system after building" OFF)
set_property(GLOBAL PROPERTY JUCE_COPY_PLUGIN_AFTER_BUILD ${JUCE_COPY_PLUGIN_AFTER_BUILD}) set_property(GLOBAL PROPERTY JUCE_COPY_PLUGIN_AFTER_BUILD ${JUCE_COPY_PLUGIN_AFTER_BUILD})
set(CMAKE_CXX_EXTENSIONS FALSE) set(CMAKE_CXX_EXTENSIONS FALSE)
juce_disable_default_flags() juce_disable_default_flags()
add_subdirectory(extras/Build) add_subdirectory(extras/Build)
# If you want to build the JUCE examples with VST2/AAX/ARA support, you'll need to make the # If you want to build the JUCE examples with VST2/AAX/ARA support, you'll need to make the
# VST2/AAX/ARA headers visible to the juce_audio_processors module. You can either set the paths on # VST2/AAX/ARA headers visible to the juce_audio_processors module. You can either set the paths on
# the command line, (e.g. -DJUCE_GLOBAL_AAX_SDK_PATH=/path/to/sdk) if you're just building the JUCE # the command line, (e.g. -DJUCE_GLOBAL_AAX_SDK_PATH=/path/to/sdk) if you're just building the JUCE
# examples, or you can call the `juce_set_*_sdk_path` functions in your own CMakeLists after # examples, or you can call the `juce_set_*_sdk_path` functions in your own CMakeLists after
# importing JUCE. # importing JUCE.
if(JUCE_GLOBAL_AAX_SDK_PATH) if(JUCE_GLOBAL_AAX_SDK_PATH)
juce_set_aax_sdk_path("${JUCE_GLOBAL_AAX_SDK_PATH}") juce_set_aax_sdk_path("${JUCE_GLOBAL_AAX_SDK_PATH}")
endif() endif()
if(JUCE_GLOBAL_VST2_SDK_PATH) if(JUCE_GLOBAL_VST2_SDK_PATH)
juce_set_vst2_sdk_path("${JUCE_GLOBAL_VST2_SDK_PATH}") juce_set_vst2_sdk_path("${JUCE_GLOBAL_VST2_SDK_PATH}")
endif() endif()
# The ARA_SDK path should point to the "Umbrella installer" ARA_SDK directory. # The ARA_SDK path should point to the "Umbrella installer" ARA_SDK directory.
# The directory can be obtained by recursively cloning https://github.com/Celemony/ARA_SDK and # The directory can be obtained by recursively cloning https://github.com/Celemony/ARA_SDK and
# checking out the tag releases/2.1.0. # checking out the tag releases/2.1.0.
if(JUCE_GLOBAL_ARA_SDK_PATH) if(JUCE_GLOBAL_ARA_SDK_PATH)
juce_set_ara_sdk_path("${JUCE_GLOBAL_ARA_SDK_PATH}") juce_set_ara_sdk_path("${JUCE_GLOBAL_ARA_SDK_PATH}")
endif() endif()
# We don't build anything other than the juceaide by default, because we want to keep configuration # We don't build anything other than the juceaide by default, because we want to keep configuration
# speedy and the number of targets low. If you want to add targets for the extra projects and # speedy and the number of targets low. If you want to add targets for the extra projects and
# example PIPs (there's a lot of them!), specify -DJUCE_BUILD_EXAMPLES=ON and/or # example PIPs (there's a lot of them!), specify -DJUCE_BUILD_EXAMPLES=ON and/or
# -DJUCE_BUILD_EXTRAS=ON when initially generating your build tree. # -DJUCE_BUILD_EXTRAS=ON when initially generating your build tree.
option(JUCE_BUILD_EXTRAS "Add build targets for the Projucer and other tools" OFF) option(JUCE_BUILD_EXTRAS "Add build targets for the Projucer and other tools" OFF)
if(JUCE_BUILD_EXTRAS) if(JUCE_BUILD_EXTRAS)
add_subdirectory(extras) add_subdirectory(extras)
endif() endif()
option(JUCE_BUILD_EXAMPLES "Add build targets for the DemoRunner and PIPs" OFF) option(JUCE_BUILD_EXAMPLES "Add build targets for the DemoRunner and PIPs" OFF)
if(JUCE_BUILD_EXAMPLES) if(JUCE_BUILD_EXAMPLES)
add_subdirectory(examples) add_subdirectory(examples)
endif() endif()
string(CONCAT webview2_option_message "Location that overrides the default directory where our " string(CONCAT webview2_option_message "Location that overrides the default directory where our "
"FindWebView2 script is looking for the " "FindWebView2 script is looking for the "
"*Microsoft.Web.WebView2* directory") "*Microsoft.Web.WebView2* directory")
option(JUCE_WEBVIEW2_PACKAGE_LOCATION ${webview2_option_message} "") option(JUCE_WEBVIEW2_PACKAGE_LOCATION ${webview2_option_message} "")
# ================================================================================================== # ==================================================================================================
# Install configuration # Install configuration
include(CMakePackageConfigHelpers) include(CMakePackageConfigHelpers)
write_basic_package_version_file("${JUCE_BINARY_DIR}/JUCEConfigVersion.cmake" write_basic_package_version_file("${JUCE_BINARY_DIR}/JUCEConfigVersion.cmake"
VERSION ${JUCE_VERSION} VERSION ${JUCE_VERSION}
COMPATIBILITY ExactVersion) COMPATIBILITY ExactVersion)
set(JUCE_INSTALL_DESTINATION "lib/cmake/JUCE-${JUCE_VERSION}" CACHE STRING set(JUCE_INSTALL_DESTINATION "lib/cmake/JUCE-${JUCE_VERSION}" CACHE STRING
"The location, relative to the install prefix, where the JUCE config file will be installed") "The location, relative to the install prefix, where the JUCE config file will be installed")
set(JUCE_MODULE_PATH "include/JUCE-${JUCE_VERSION}/modules") set(JUCE_MODULE_PATH "include/JUCE-${JUCE_VERSION}/modules")
set(UTILS_INSTALL_DIR "${JUCE_INSTALL_DESTINATION}") set(UTILS_INSTALL_DIR "${JUCE_INSTALL_DESTINATION}")
set(JUCEAIDE_PATH "${JUCE_TOOL_INSTALL_DIR}/${JUCE_JUCEAIDE_NAME}") set(JUCEAIDE_PATH "${JUCE_TOOL_INSTALL_DIR}/${JUCE_JUCEAIDE_NAME}")
configure_package_config_file("${JUCE_CMAKE_UTILS_DIR}/JUCEConfig.cmake.in" configure_package_config_file("${JUCE_CMAKE_UTILS_DIR}/JUCEConfig.cmake.in"
"${JUCE_BINARY_DIR}/JUCEConfig.cmake" "${JUCE_BINARY_DIR}/JUCEConfig.cmake"
PATH_VARS UTILS_INSTALL_DIR JUCEAIDE_PATH JUCE_MODULE_PATH PATH_VARS UTILS_INSTALL_DIR JUCEAIDE_PATH JUCE_MODULE_PATH
INSTALL_DESTINATION "${JUCE_INSTALL_DESTINATION}") INSTALL_DESTINATION "${JUCE_INSTALL_DESTINATION}")
set(JUCE_MODULE_PATH "${JUCE_MODULES_DIR}") set(JUCE_MODULE_PATH "${JUCE_MODULES_DIR}")
set(UTILS_INSTALL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/extras/Build/CMake") set(UTILS_INSTALL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/extras/Build/CMake")
get_target_property(JUCEAIDE_PATH juceaide IMPORTED_LOCATION) get_target_property(JUCEAIDE_PATH juceaide IMPORTED_LOCATION)
configure_package_config_file("${JUCE_CMAKE_UTILS_DIR}/JUCEConfig.cmake.in" configure_package_config_file("${JUCE_CMAKE_UTILS_DIR}/JUCEConfig.cmake.in"
"${JUCE_BINARY_DIR}/JUCEExportConfig.cmake" "${JUCE_BINARY_DIR}/JUCEExportConfig.cmake"
PATH_VARS UTILS_INSTALL_DIR JUCEAIDE_PATH JUCE_MODULE_PATH PATH_VARS UTILS_INSTALL_DIR JUCEAIDE_PATH JUCE_MODULE_PATH
INSTALL_PREFIX "${CMAKE_CURRENT_BINARY_DIR}" INSTALL_PREFIX "${CMAKE_CURRENT_BINARY_DIR}"
INSTALL_DESTINATION "${CMAKE_CURRENT_BINARY_DIR}") INSTALL_DESTINATION "${CMAKE_CURRENT_BINARY_DIR}")
install(FILES "${JUCE_BINARY_DIR}/JUCEConfigVersion.cmake" install(FILES "${JUCE_BINARY_DIR}/JUCEConfigVersion.cmake"
"${JUCE_BINARY_DIR}/JUCEConfig.cmake" "${JUCE_BINARY_DIR}/JUCEConfig.cmake"
"${JUCE_CMAKE_UTILS_DIR}/JUCECheckAtomic.cmake" "${JUCE_CMAKE_UTILS_DIR}/JUCECheckAtomic.cmake"
"${JUCE_CMAKE_UTILS_DIR}/JUCEHelperTargets.cmake" "${JUCE_CMAKE_UTILS_DIR}/JUCEHelperTargets.cmake"
"${JUCE_CMAKE_UTILS_DIR}/JUCEModuleSupport.cmake" "${JUCE_CMAKE_UTILS_DIR}/JUCEModuleSupport.cmake"
"${JUCE_CMAKE_UTILS_DIR}/JUCEUtils.cmake" "${JUCE_CMAKE_UTILS_DIR}/JUCEUtils.cmake"
"${JUCE_CMAKE_UTILS_DIR}/JuceLV2Defines.h.in" "${JUCE_CMAKE_UTILS_DIR}/JuceLV2Defines.h.in"
"${JUCE_CMAKE_UTILS_DIR}/LaunchScreen.storyboard" "${JUCE_CMAKE_UTILS_DIR}/LaunchScreen.storyboard"
"${JUCE_CMAKE_UTILS_DIR}/PIPAudioProcessor.cpp.in" "${JUCE_CMAKE_UTILS_DIR}/PIPAudioProcessor.cpp.in"
"${JUCE_CMAKE_UTILS_DIR}/PIPAudioProcessorWithARA.cpp.in" "${JUCE_CMAKE_UTILS_DIR}/PIPAudioProcessorWithARA.cpp.in"
"${JUCE_CMAKE_UTILS_DIR}/PIPComponent.cpp.in" "${JUCE_CMAKE_UTILS_DIR}/PIPComponent.cpp.in"
"${JUCE_CMAKE_UTILS_DIR}/PIPConsole.cpp.in" "${JUCE_CMAKE_UTILS_DIR}/PIPConsole.cpp.in"
"${JUCE_CMAKE_UTILS_DIR}/RecentFilesMenuTemplate.nib" "${JUCE_CMAKE_UTILS_DIR}/RecentFilesMenuTemplate.nib"
"${JUCE_CMAKE_UTILS_DIR}/UnityPluginGUIScript.cs.in" "${JUCE_CMAKE_UTILS_DIR}/UnityPluginGUIScript.cs.in"
"${JUCE_CMAKE_UTILS_DIR}/checkBundleSigning.cmake" "${JUCE_CMAKE_UTILS_DIR}/checkBundleSigning.cmake"
"${JUCE_CMAKE_UTILS_DIR}/copyDir.cmake" "${JUCE_CMAKE_UTILS_DIR}/copyDir.cmake"
"${JUCE_CMAKE_UTILS_DIR}/juce_runtime_arch_detection.cpp" "${JUCE_CMAKE_UTILS_DIR}/juce_runtime_arch_detection.cpp"
"${JUCE_CMAKE_UTILS_DIR}/juce_LinuxSubprocessHelper.cpp" "${JUCE_CMAKE_UTILS_DIR}/juce_LinuxSubprocessHelper.cpp"
DESTINATION "${JUCE_INSTALL_DESTINATION}") DESTINATION "${JUCE_INSTALL_DESTINATION}")
if(("${CMAKE_SOURCE_DIR}" STREQUAL "${JUCE_SOURCE_DIR}") AND (NOT JUCE_BUILD_HELPER_TOOLS)) if(("${CMAKE_SOURCE_DIR}" STREQUAL "${JUCE_SOURCE_DIR}") AND (NOT JUCE_BUILD_HELPER_TOOLS))
_juce_add_lv2_manifest_helper_target() _juce_add_lv2_manifest_helper_target()
if(TARGET juce_lv2_helper) if(TARGET juce_lv2_helper)
install(TARGETS juce_lv2_helper EXPORT LV2_HELPER DESTINATION "bin/JUCE-${JUCE_VERSION}") install(TARGETS juce_lv2_helper EXPORT LV2_HELPER DESTINATION "bin/JUCE-${JUCE_VERSION}")
install(EXPORT LV2_HELPER NAMESPACE juce:: DESTINATION "${JUCE_INSTALL_DESTINATION}") install(EXPORT LV2_HELPER NAMESPACE juce:: DESTINATION "${JUCE_INSTALL_DESTINATION}")
endif() endif()
_juce_add_vst3_manifest_helper_target() _juce_add_vst3_manifest_helper_target()
if(TARGET juce_vst3_helper) if(TARGET juce_vst3_helper)
install(TARGETS juce_vst3_helper EXPORT VST3_HELPER DESTINATION "bin/JUCE-${JUCE_VERSION}") install(TARGETS juce_vst3_helper EXPORT VST3_HELPER DESTINATION "bin/JUCE-${JUCE_VERSION}")
install(EXPORT VST3_HELPER NAMESPACE juce:: DESTINATION "${JUCE_INSTALL_DESTINATION}") install(EXPORT VST3_HELPER NAMESPACE juce:: DESTINATION "${JUCE_INSTALL_DESTINATION}")
endif() endif()
endif() endif()

View file

@ -1,22 +1,22 @@
# ============================================================================== # ==============================================================================
# #
# This file is part of the JUCE framework examples. # This file is part of the JUCE framework examples.
# Copyright (c) Raw Material Software Limited # Copyright (c) Raw Material Software Limited
# #
# The code included in this file is provided under the terms of the ISC license # The code included in this file is provided under the terms of the ISC license
# http://www.isc.org/downloads/software-support-policy/isc-license. Permission # http://www.isc.org/downloads/software-support-policy/isc-license. Permission
# to use, copy, modify, and/or distribute this software for any purpose with or # to use, copy, modify, and/or distribute this software for any purpose with or
# without fee is hereby granted provided that the above copyright notice and # without fee is hereby granted provided that the above copyright notice and
# this permission notice appear in all copies. # this permission notice appear in all copies.
# #
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY # REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
# AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, # AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM # INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR # LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
# OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE. # PERFORMANCE OF THIS SOFTWARE.
# #
# ============================================================================== # ==============================================================================
_juce_add_pips() _juce_add_pips()

View file

@ -1,111 +1,111 @@
# Example Audio Plugin CMakeLists.txt # Example Audio Plugin CMakeLists.txt
# To get started on a new plugin, copy this entire folder (containing this file and C++ sources) to # To get started on a new plugin, copy this entire folder (containing this file and C++ sources) to
# a convenient location, and then start making modifications. # a convenient location, and then start making modifications.
# The first line of any CMake project should be a call to `cmake_minimum_required`, which checks # The first line of any CMake project should be a call to `cmake_minimum_required`, which checks
# that the installed CMake will be able to understand the following CMakeLists, and ensures that # that the installed CMake will be able to understand the following CMakeLists, and ensures that
# CMake's behaviour is compatible with the named version. This is a standard CMake command, so more # CMake's behaviour is compatible with the named version. This is a standard CMake command, so more
# information can be found in the CMake docs. # information can be found in the CMake docs.
cmake_minimum_required(VERSION 3.22) cmake_minimum_required(VERSION 3.22)
# The top-level CMakeLists.txt file for a project must contain a literal, direct call to the # The top-level CMakeLists.txt file for a project must contain a literal, direct call to the
# `project()` command. `project()` sets up some helpful variables that describe source/binary # `project()` command. `project()` sets up some helpful variables that describe source/binary
# directories, and the current project version. This is a standard CMake command. # directories, and the current project version. This is a standard CMake command.
project(AUDIO_PLUGIN_EXAMPLE VERSION 0.0.1) project(AUDIO_PLUGIN_EXAMPLE VERSION 0.0.1)
# If you've installed JUCE somehow (via a package manager, or directly using the CMake install # If you've installed JUCE somehow (via a package manager, or directly using the CMake install
# target), you'll need to tell this project that it depends on the installed copy of JUCE. If you've # target), you'll need to tell this project that it depends on the installed copy of JUCE. If you've
# included JUCE directly in your source tree (perhaps as a submodule), you'll need to tell CMake to # included JUCE directly in your source tree (perhaps as a submodule), you'll need to tell CMake to
# include that subdirectory as part of the build. # include that subdirectory as part of the build.
# find_package(JUCE CONFIG REQUIRED) # If you've installed JUCE to your system # find_package(JUCE CONFIG REQUIRED) # If you've installed JUCE to your system
# or # or
# add_subdirectory(JUCE) # If you've put JUCE in a subdirectory called JUCE # add_subdirectory(JUCE) # If you've put JUCE in a subdirectory called JUCE
# If you are building a VST2 or AAX plugin, CMake needs to be told where to find these SDKs on your # If you are building a VST2 or AAX plugin, CMake needs to be told where to find these SDKs on your
# system. This setup should be done before calling `juce_add_plugin`. # system. This setup should be done before calling `juce_add_plugin`.
# juce_set_vst2_sdk_path(...) # juce_set_vst2_sdk_path(...)
# juce_set_aax_sdk_path(...) # juce_set_aax_sdk_path(...)
# `juce_add_plugin` adds a static library target with the name passed as the first argument # `juce_add_plugin` adds a static library target with the name passed as the first argument
# (AudioPluginExample here). This target is a normal CMake target, but has a lot of extra properties set # (AudioPluginExample here). This target is a normal CMake target, but has a lot of extra properties set
# up by default. As well as this shared code static library, this function adds targets for each of # up by default. As well as this shared code static library, this function adds targets for each of
# the formats specified by the FORMATS arguments. This function accepts many optional arguments. # the formats specified by the FORMATS arguments. This function accepts many optional arguments.
# Check the readme at `docs/CMake API.md` in the JUCE repo for the full list. # Check the readme at `docs/CMake API.md` in the JUCE repo for the full list.
juce_add_plugin(AudioPluginExample juce_add_plugin(AudioPluginExample
# VERSION ... # Set this if the plugin version is different to the project version # VERSION ... # Set this if the plugin version is different to the project version
# ICON_BIG ... # ICON_* arguments specify a path to an image file to use as an icon for the Standalone # ICON_BIG ... # ICON_* arguments specify a path to an image file to use as an icon for the Standalone
# ICON_SMALL ... # ICON_SMALL ...
# COMPANY_NAME ... # Specify the name of the plugin's author # COMPANY_NAME ... # Specify the name of the plugin's author
# IS_SYNTH TRUE/FALSE # Is this a synth or an effect? # IS_SYNTH TRUE/FALSE # Is this a synth or an effect?
# NEEDS_MIDI_INPUT TRUE/FALSE # Does the plugin need midi input? # NEEDS_MIDI_INPUT TRUE/FALSE # Does the plugin need midi input?
# NEEDS_MIDI_OUTPUT TRUE/FALSE # Does the plugin need midi output? # NEEDS_MIDI_OUTPUT TRUE/FALSE # Does the plugin need midi output?
# IS_MIDI_EFFECT TRUE/FALSE # Is this plugin a MIDI effect? # IS_MIDI_EFFECT TRUE/FALSE # Is this plugin a MIDI effect?
# EDITOR_WANTS_KEYBOARD_FOCUS TRUE/FALSE # Does the editor need keyboard focus? # EDITOR_WANTS_KEYBOARD_FOCUS TRUE/FALSE # Does the editor need keyboard focus?
# COPY_PLUGIN_AFTER_BUILD TRUE/FALSE # Should the plugin be installed to a default location after building? # COPY_PLUGIN_AFTER_BUILD TRUE/FALSE # Should the plugin be installed to a default location after building?
PLUGIN_MANUFACTURER_CODE Juce # A four-character manufacturer id with at least one upper-case character PLUGIN_MANUFACTURER_CODE Juce # A four-character manufacturer id with at least one upper-case character
PLUGIN_CODE Dem0 # A unique four-character plugin id with exactly one upper-case character PLUGIN_CODE Dem0 # A unique four-character plugin id with exactly one upper-case character
# GarageBand 10.3 requires the first letter to be upper-case, and the remaining letters to be lower-case # GarageBand 10.3 requires the first letter to be upper-case, and the remaining letters to be lower-case
FORMATS AU VST3 Standalone # The formats to build. Other valid formats are: AAX Unity VST AU AUv3 FORMATS AU VST3 Standalone # The formats to build. Other valid formats are: AAX Unity VST AU AUv3
PRODUCT_NAME "Audio Plugin Example") # The name of the final executable, which can differ from the target name PRODUCT_NAME "Audio Plugin Example") # The name of the final executable, which can differ from the target name
# `juce_generate_juce_header` will create a JuceHeader.h for a given target, which will be generated # `juce_generate_juce_header` will create a JuceHeader.h for a given target, which will be generated
# into your build tree. This should be included with `#include <JuceHeader.h>`. The include path for # into your build tree. This should be included with `#include <JuceHeader.h>`. The include path for
# this header will be automatically added to the target. The main function of the JuceHeader is to # this header will be automatically added to the target. The main function of the JuceHeader is to
# include all your JUCE module headers; if you're happy to include module headers directly, you # include all your JUCE module headers; if you're happy to include module headers directly, you
# probably don't need to call this. # probably don't need to call this.
# juce_generate_juce_header(AudioPluginExample) # juce_generate_juce_header(AudioPluginExample)
# `target_sources` adds source files to a target. We pass the target that needs the sources as the # `target_sources` adds source files to a target. We pass the target that needs the sources as the
# first argument, then a visibility parameter for the sources which should normally be PRIVATE. # first argument, then a visibility parameter for the sources which should normally be PRIVATE.
# Finally, we supply a list of source files that will be built into the target. This is a standard # Finally, we supply a list of source files that will be built into the target. This is a standard
# CMake command. # CMake command.
target_sources(AudioPluginExample target_sources(AudioPluginExample
PRIVATE PRIVATE
PluginEditor.cpp PluginEditor.cpp
PluginProcessor.cpp) PluginProcessor.cpp)
# `target_compile_definitions` adds some preprocessor definitions to our target. In a Projucer # `target_compile_definitions` adds some preprocessor definitions to our target. In a Projucer
# project, these might be passed in the 'Preprocessor Definitions' field. JUCE modules also make use # project, these might be passed in the 'Preprocessor Definitions' field. JUCE modules also make use
# of compile definitions to switch certain features on/off, so if there's a particular feature you # of compile definitions to switch certain features on/off, so if there's a particular feature you
# need that's not on by default, check the module header for the correct flag to set here. These # need that's not on by default, check the module header for the correct flag to set here. These
# definitions will be visible both to your code, and also the JUCE module code, so for new # definitions will be visible both to your code, and also the JUCE module code, so for new
# definitions, pick unique names that are unlikely to collide! This is a standard CMake command. # definitions, pick unique names that are unlikely to collide! This is a standard CMake command.
target_compile_definitions(AudioPluginExample target_compile_definitions(AudioPluginExample
PUBLIC PUBLIC
# JUCE_WEB_BROWSER and JUCE_USE_CURL would be on by default, but you might not need them. # JUCE_WEB_BROWSER and JUCE_USE_CURL would be on by default, but you might not need them.
JUCE_WEB_BROWSER=0 # If you remove this, add `NEEDS_WEB_BROWSER TRUE` to the `juce_add_plugin` call JUCE_WEB_BROWSER=0 # If you remove this, add `NEEDS_WEB_BROWSER TRUE` to the `juce_add_plugin` call
JUCE_USE_CURL=0 # If you remove this, add `NEEDS_CURL TRUE` to the `juce_add_plugin` call JUCE_USE_CURL=0 # If you remove this, add `NEEDS_CURL TRUE` to the `juce_add_plugin` call
JUCE_VST3_CAN_REPLACE_VST2=0) JUCE_VST3_CAN_REPLACE_VST2=0)
# If your target needs extra binary assets, you can add them here. The first argument is the name of # If your target needs extra binary assets, you can add them here. The first argument is the name of
# a new static library target that will include all the binary resources. There is an optional # a new static library target that will include all the binary resources. There is an optional
# `NAMESPACE` argument that can specify the namespace of the generated binary data class. Finally, # `NAMESPACE` argument that can specify the namespace of the generated binary data class. Finally,
# the SOURCES argument should be followed by a list of source files that should be built into the # the SOURCES argument should be followed by a list of source files that should be built into the
# static library. These source files can be of any kind (wav data, images, fonts, icons etc.). # static library. These source files can be of any kind (wav data, images, fonts, icons etc.).
# Conversion to binary-data will happen when your target is built. # Conversion to binary-data will happen when your target is built.
# juce_add_binary_data(AudioPluginData SOURCES ...) # juce_add_binary_data(AudioPluginData SOURCES ...)
# `target_link_libraries` links libraries and JUCE modules to other libraries or executables. Here, # `target_link_libraries` links libraries and JUCE modules to other libraries or executables. Here,
# we're linking our executable target to the `juce::juce_audio_utils` module. Inter-module # we're linking our executable target to the `juce::juce_audio_utils` module. Inter-module
# dependencies are resolved automatically, so `juce_core`, `juce_events` and so on will also be # dependencies are resolved automatically, so `juce_core`, `juce_events` and so on will also be
# linked automatically. If we'd generated a binary data target above, we would need to link to it # linked automatically. If we'd generated a binary data target above, we would need to link to it
# here too. This is a standard CMake command. # here too. This is a standard CMake command.
target_link_libraries(AudioPluginExample target_link_libraries(AudioPluginExample
PRIVATE PRIVATE
# AudioPluginData # If we'd created a binary data target, we'd link to it here # AudioPluginData # If we'd created a binary data target, we'd link to it here
juce::juce_audio_utils juce::juce_audio_utils
PUBLIC PUBLIC
juce::juce_recommended_config_flags juce::juce_recommended_config_flags
juce::juce_recommended_lto_flags juce::juce_recommended_lto_flags
juce::juce_recommended_warning_flags) juce::juce_recommended_warning_flags)

View file

@ -1,24 +1,24 @@
# ============================================================================== # ==============================================================================
# #
# This file is part of the JUCE framework examples. # This file is part of the JUCE framework examples.
# Copyright (c) Raw Material Software Limited # Copyright (c) Raw Material Software Limited
# #
# The code included in this file is provided under the terms of the ISC license # The code included in this file is provided under the terms of the ISC license
# http://www.isc.org/downloads/software-support-policy/isc-license. Permission # http://www.isc.org/downloads/software-support-policy/isc-license. Permission
# to use, copy, modify, and/or distribute this software for any purpose with or # to use, copy, modify, and/or distribute this software for any purpose with or
# without fee is hereby granted provided that the above copyright notice and # without fee is hereby granted provided that the above copyright notice and
# this permission notice appear in all copies. # this permission notice appear in all copies.
# #
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY # REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
# AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, # AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM # INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR # LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
# OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE. # PERFORMANCE OF THIS SOFTWARE.
# #
# ============================================================================== # ==============================================================================
add_subdirectory(AudioPlugin) add_subdirectory(AudioPlugin)
add_subdirectory(ConsoleApp) add_subdirectory(ConsoleApp)
add_subdirectory(GuiApp) add_subdirectory(GuiApp)

View file

@ -1,88 +1,88 @@
# Example Console App CMakeLists.txt # Example Console App CMakeLists.txt
# To get started on a new console app, copy this entire folder (containing this file and C++ # To get started on a new console app, copy this entire folder (containing this file and C++
# sources) to a convenient location, and then start making modifications. For other examples of # sources) to a convenient location, and then start making modifications. For other examples of
# CMakeLists for console apps, check `extras/BinaryBuilder` and `extras/UnitTestRunner` in the JUCE # CMakeLists for console apps, check `extras/BinaryBuilder` and `extras/UnitTestRunner` in the JUCE
# repo. # repo.
# The first line of any CMake project should be a call to `cmake_minimum_required`, which checks # The first line of any CMake project should be a call to `cmake_minimum_required`, which checks
# that the installed CMake will be able to understand the following CMakeLists, and ensures that # that the installed CMake will be able to understand the following CMakeLists, and ensures that
# CMake's behaviour is compatible with the named version. This is a standard CMake command, so more # CMake's behaviour is compatible with the named version. This is a standard CMake command, so more
# information can be found in the CMake docs. # information can be found in the CMake docs.
cmake_minimum_required(VERSION 3.22) cmake_minimum_required(VERSION 3.22)
# The top-level CMakeLists.txt file for a project must contain a literal, direct call to the # The top-level CMakeLists.txt file for a project must contain a literal, direct call to the
# `project()` command. `project()` sets up some helpful variables that describe source/binary # `project()` command. `project()` sets up some helpful variables that describe source/binary
# directories, and the current project version. This is a standard CMake command. # directories, and the current project version. This is a standard CMake command.
project(CONSOLE_APP_EXAMPLE VERSION 0.0.1) project(CONSOLE_APP_EXAMPLE VERSION 0.0.1)
# If you've installed JUCE somehow (via a package manager, or directly using the CMake install # If you've installed JUCE somehow (via a package manager, or directly using the CMake install
# target), you'll need to tell this project that it depends on the installed copy of JUCE. If you've # target), you'll need to tell this project that it depends on the installed copy of JUCE. If you've
# included JUCE directly in your source tree (perhaps as a submodule), you'll need to tell CMake to # included JUCE directly in your source tree (perhaps as a submodule), you'll need to tell CMake to
# include that subdirectory as part of the build. # include that subdirectory as part of the build.
# find_package(JUCE CONFIG REQUIRED) # If you've installed JUCE to your system # find_package(JUCE CONFIG REQUIRED) # If you've installed JUCE to your system
# or # or
# add_subdirectory(JUCE) # If you've put JUCE in a subdirectory called JUCE # add_subdirectory(JUCE) # If you've put JUCE in a subdirectory called JUCE
# `juce_add_console_app` adds an executable target with the name passed as the first argument # `juce_add_console_app` adds an executable target with the name passed as the first argument
# (ConsoleAppExample here). This target is a normal CMake target, but has a lot of extra properties # (ConsoleAppExample here). This target is a normal CMake target, but has a lot of extra properties
# set up by default. This function accepts many optional arguments. Check the readme at # set up by default. This function accepts many optional arguments. Check the readme at
# `docs/CMake API.md` in the JUCE repo for the full list. # `docs/CMake API.md` in the JUCE repo for the full list.
juce_add_console_app(ConsoleAppExample juce_add_console_app(ConsoleAppExample
PRODUCT_NAME "Console App Example") # The name of the final executable, which can differ from the target name PRODUCT_NAME "Console App Example") # The name of the final executable, which can differ from the target name
# `juce_generate_juce_header` will create a JuceHeader.h for a given target, which will be generated # `juce_generate_juce_header` will create a JuceHeader.h for a given target, which will be generated
# into the build tree. This header should be included with `#include <JuceHeader.h>`. The include # into the build tree. This header should be included with `#include <JuceHeader.h>`. The include
# path for this header will be automatically added to the target. The main function of the # path for this header will be automatically added to the target. The main function of the
# JuceHeader is to include all the JUCE module headers for a particular target; if you're happy to # JuceHeader is to include all the JUCE module headers for a particular target; if you're happy to
# include module headers directly, you probably don't need to call this. # include module headers directly, you probably don't need to call this.
# juce_generate_juce_header(ConsoleAppExample) # juce_generate_juce_header(ConsoleAppExample)
# `target_sources` adds source files to a target. We pass the target that needs the sources as the # `target_sources` adds source files to a target. We pass the target that needs the sources as the
# first argument, then a visibility parameter for the sources which should normally be PRIVATE. # first argument, then a visibility parameter for the sources which should normally be PRIVATE.
# Finally, we supply a list of source files that will be built into the target. This is a standard # Finally, we supply a list of source files that will be built into the target. This is a standard
# CMake command. # CMake command.
target_sources(ConsoleAppExample target_sources(ConsoleAppExample
PRIVATE PRIVATE
Main.cpp) Main.cpp)
# `target_compile_definitions` adds some preprocessor definitions to our target. In a Projucer # `target_compile_definitions` adds some preprocessor definitions to our target. In a Projucer
# project, these might be passed in the 'Preprocessor Definitions' field. JUCE modules also make use # project, these might be passed in the 'Preprocessor Definitions' field. JUCE modules also make use
# of compile definitions to switch certain features on/off, so if there's a particular feature you # of compile definitions to switch certain features on/off, so if there's a particular feature you
# need that's not on by default, check the module header for the correct flag to set here. These # need that's not on by default, check the module header for the correct flag to set here. These
# definitions will be visible both to your code, and also the JUCE module code, so for new # definitions will be visible both to your code, and also the JUCE module code, so for new
# definitions, pick unique names that are unlikely to collide! This is a standard CMake command. # definitions, pick unique names that are unlikely to collide! This is a standard CMake command.
target_compile_definitions(ConsoleAppExample target_compile_definitions(ConsoleAppExample
PRIVATE PRIVATE
# JUCE_WEB_BROWSER and JUCE_USE_CURL would be on by default, but you might not need them. # JUCE_WEB_BROWSER and JUCE_USE_CURL would be on by default, but you might not need them.
JUCE_WEB_BROWSER=0 # If you remove this, add `NEEDS_WEB_BROWSER TRUE` to the `juce_add_console_app` call JUCE_WEB_BROWSER=0 # If you remove this, add `NEEDS_WEB_BROWSER TRUE` to the `juce_add_console_app` call
JUCE_USE_CURL=0) # If you remove this, add `NEEDS_CURL TRUE` to the `juce_add_console_app` call JUCE_USE_CURL=0) # If you remove this, add `NEEDS_CURL TRUE` to the `juce_add_console_app` call
# If the target needs extra binary assets, they can be added here. The first argument is the name of # If the target needs extra binary assets, they can be added here. The first argument is the name of
# a new static library target that will include all the binary resources. There is an optional # a new static library target that will include all the binary resources. There is an optional
# `NAMESPACE` argument that can specify the namespace of the generated binary data class. Finally, # `NAMESPACE` argument that can specify the namespace of the generated binary data class. Finally,
# the SOURCES argument should be followed by a list of source files that should be built into the # the SOURCES argument should be followed by a list of source files that should be built into the
# static library. These source files can be of any kind (wav data, images, fonts, icons etc.). # static library. These source files can be of any kind (wav data, images, fonts, icons etc.).
# Conversion to binary-data will happen when the target is built. # Conversion to binary-data will happen when the target is built.
# juce_add_binary_data(ConsoleAppData SOURCES ...) # juce_add_binary_data(ConsoleAppData SOURCES ...)
# `target_link_libraries` links libraries and JUCE modules to other libraries or executables. Here, # `target_link_libraries` links libraries and JUCE modules to other libraries or executables. Here,
# we're linking our executable target to the `juce::juce_core` module. Inter-module dependencies are # we're linking our executable target to the `juce::juce_core` module. Inter-module dependencies are
# resolved automatically. If you'd generated a binary data target above, you would need to link to # resolved automatically. If you'd generated a binary data target above, you would need to link to
# it here too. This is a standard CMake command. # it here too. This is a standard CMake command.
target_link_libraries(ConsoleAppExample target_link_libraries(ConsoleAppExample
PRIVATE PRIVATE
# ConsoleAppData # If you'd created a binary data target, you'd link to it here # ConsoleAppData # If you'd created a binary data target, you'd link to it here
juce::juce_core juce::juce_core
PUBLIC PUBLIC
juce::juce_recommended_config_flags juce::juce_recommended_config_flags
juce::juce_recommended_warning_flags) juce::juce_recommended_warning_flags)

View file

@ -1,102 +1,102 @@
# Example GUI App CMakeLists.txt # Example GUI App CMakeLists.txt
# To get started on a new GUI app, copy this entire folder (containing this file and C++ sources) to # To get started on a new GUI app, copy this entire folder (containing this file and C++ sources) to
# a convenient location, and then start making modifications. For other examples of CMakeLists for # a convenient location, and then start making modifications. For other examples of CMakeLists for
# GUI apps, check `extras/Projucer` and `examples/DemoRunner` in the JUCE repo. # GUI apps, check `extras/Projucer` and `examples/DemoRunner` in the JUCE repo.
# The first line of any CMake project should be a call to `cmake_minimum_required`, which checks # The first line of any CMake project should be a call to `cmake_minimum_required`, which checks
# that the installed CMake will be able to understand the following CMakeLists, and ensures that # that the installed CMake will be able to understand the following CMakeLists, and ensures that
# CMake's behaviour is compatible with the named version. This is a standard CMake command, so more # CMake's behaviour is compatible with the named version. This is a standard CMake command, so more
# information can be found in the CMake docs. # information can be found in the CMake docs.
cmake_minimum_required(VERSION 3.22) cmake_minimum_required(VERSION 3.22)
# The top-level CMakeLists.txt file for a project must contain a literal, direct call to the # The top-level CMakeLists.txt file for a project must contain a literal, direct call to the
# `project()` command. `project()` sets up some helpful variables that describe source/binary # `project()` command. `project()` sets up some helpful variables that describe source/binary
# directories, and the current project version. This is a standard CMake command. # directories, and the current project version. This is a standard CMake command.
project(GUI_APP_EXAMPLE VERSION 0.0.1) project(GUI_APP_EXAMPLE VERSION 0.0.1)
# If you've installed JUCE somehow (via a package manager, or directly using the CMake install # If you've installed JUCE somehow (via a package manager, or directly using the CMake install
# target), you'll need to tell this project that it depends on the installed copy of JUCE. If you've # target), you'll need to tell this project that it depends on the installed copy of JUCE. If you've
# included JUCE directly in your source tree (perhaps as a submodule), you'll need to tell CMake to # included JUCE directly in your source tree (perhaps as a submodule), you'll need to tell CMake to
# include that subdirectory as part of the build. # include that subdirectory as part of the build.
# find_package(JUCE CONFIG REQUIRED) # If you've installed JUCE to your system # find_package(JUCE CONFIG REQUIRED) # If you've installed JUCE to your system
# or # or
# add_subdirectory(JUCE) # If you've put JUCE in a subdirectory called JUCE # add_subdirectory(JUCE) # If you've put JUCE in a subdirectory called JUCE
# If your app depends the VST2 SDK, perhaps to host VST2 plugins, CMake needs to be told where # If your app depends the VST2 SDK, perhaps to host VST2 plugins, CMake needs to be told where
# to find the SDK on your system. This setup should be done before calling `juce_add_gui_app`. # to find the SDK on your system. This setup should be done before calling `juce_add_gui_app`.
# juce_set_vst2_sdk_path(...) # juce_set_vst2_sdk_path(...)
# `juce_add_gui_app` adds an executable target with the name passed as the first argument # `juce_add_gui_app` adds an executable target with the name passed as the first argument
# (GuiAppExample here). This target is a normal CMake target, but has a lot of extra properties set # (GuiAppExample here). This target is a normal CMake target, but has a lot of extra properties set
# up by default. This function accepts many optional arguments. Check the readme at # up by default. This function accepts many optional arguments. Check the readme at
# `docs/CMake API.md` in the JUCE repo for the full list. # `docs/CMake API.md` in the JUCE repo for the full list.
juce_add_gui_app(GuiAppExample juce_add_gui_app(GuiAppExample
# VERSION ... # Set this if the app version is different to the project version # VERSION ... # Set this if the app version is different to the project version
# ICON_BIG ... # ICON_* arguments specify a path to an image file to use as an icon # ICON_BIG ... # ICON_* arguments specify a path to an image file to use as an icon
# ICON_SMALL ... # ICON_SMALL ...
# DOCUMENT_EXTENSIONS ... # Specify file extensions that should be associated with this app # DOCUMENT_EXTENSIONS ... # Specify file extensions that should be associated with this app
# COMPANY_NAME ... # Specify the name of the app's author # COMPANY_NAME ... # Specify the name of the app's author
PRODUCT_NAME "Gui App Example") # The name of the final executable, which can differ from the target name PRODUCT_NAME "Gui App Example") # The name of the final executable, which can differ from the target name
# `juce_generate_juce_header` will create a JuceHeader.h for a given target, which will be generated # `juce_generate_juce_header` will create a JuceHeader.h for a given target, which will be generated
# into your build tree. This should be included with `#include <JuceHeader.h>`. The include path for # into your build tree. This should be included with `#include <JuceHeader.h>`. The include path for
# this header will be automatically added to the target. The main function of the JuceHeader is to # this header will be automatically added to the target. The main function of the JuceHeader is to
# include all your JUCE module headers; if you're happy to include module headers directly, you # include all your JUCE module headers; if you're happy to include module headers directly, you
# probably don't need to call this. # probably don't need to call this.
# juce_generate_juce_header(GuiAppExample) # juce_generate_juce_header(GuiAppExample)
# `target_sources` adds source files to a target. We pass the target that needs the sources as the # `target_sources` adds source files to a target. We pass the target that needs the sources as the
# first argument, then a visibility parameter for the sources which should normally be PRIVATE. # first argument, then a visibility parameter for the sources which should normally be PRIVATE.
# Finally, we supply a list of source files that will be built into the target. This is a standard # Finally, we supply a list of source files that will be built into the target. This is a standard
# CMake command. # CMake command.
target_sources(GuiAppExample target_sources(GuiAppExample
PRIVATE PRIVATE
Main.cpp Main.cpp
MainComponent.cpp) MainComponent.cpp)
# `target_compile_definitions` adds some preprocessor definitions to our target. In a Projucer # `target_compile_definitions` adds some preprocessor definitions to our target. In a Projucer
# project, these might be passed in the 'Preprocessor Definitions' field. JUCE modules also make use # project, these might be passed in the 'Preprocessor Definitions' field. JUCE modules also make use
# of compile definitions to switch certain features on/off, so if there's a particular feature you # of compile definitions to switch certain features on/off, so if there's a particular feature you
# need that's not on by default, check the module header for the correct flag to set here. These # need that's not on by default, check the module header for the correct flag to set here. These
# definitions will be visible both to your code, and also the JUCE module code, so for new # definitions will be visible both to your code, and also the JUCE module code, so for new
# definitions, pick unique names that are unlikely to collide! This is a standard CMake command. # definitions, pick unique names that are unlikely to collide! This is a standard CMake command.
target_compile_definitions(GuiAppExample target_compile_definitions(GuiAppExample
PRIVATE PRIVATE
# JUCE_WEB_BROWSER and JUCE_USE_CURL would be on by default, but you might not need them. # JUCE_WEB_BROWSER and JUCE_USE_CURL would be on by default, but you might not need them.
JUCE_WEB_BROWSER=0 # If you remove this, add `NEEDS_WEB_BROWSER TRUE` to the `juce_add_gui_app` call JUCE_WEB_BROWSER=0 # If you remove this, add `NEEDS_WEB_BROWSER TRUE` to the `juce_add_gui_app` call
JUCE_USE_CURL=0 # If you remove this, add `NEEDS_CURL TRUE` to the `juce_add_gui_app` call JUCE_USE_CURL=0 # If you remove this, add `NEEDS_CURL TRUE` to the `juce_add_gui_app` call
JUCE_APPLICATION_NAME_STRING="$<TARGET_PROPERTY:GuiAppExample,JUCE_PRODUCT_NAME>" JUCE_APPLICATION_NAME_STRING="$<TARGET_PROPERTY:GuiAppExample,JUCE_PRODUCT_NAME>"
JUCE_APPLICATION_VERSION_STRING="$<TARGET_PROPERTY:GuiAppExample,JUCE_VERSION>") JUCE_APPLICATION_VERSION_STRING="$<TARGET_PROPERTY:GuiAppExample,JUCE_VERSION>")
# If your target needs extra binary assets, you can add them here. The first argument is the name of # If your target needs extra binary assets, you can add them here. The first argument is the name of
# a new static library target that will include all the binary resources. There is an optional # a new static library target that will include all the binary resources. There is an optional
# `NAMESPACE` argument that can specify the namespace of the generated binary data class. Finally, # `NAMESPACE` argument that can specify the namespace of the generated binary data class. Finally,
# the SOURCES argument should be followed by a list of source files that should be built into the # the SOURCES argument should be followed by a list of source files that should be built into the
# static library. These source files can be of any kind (wav data, images, fonts, icons etc.). # static library. These source files can be of any kind (wav data, images, fonts, icons etc.).
# Conversion to binary-data will happen when your target is built. # Conversion to binary-data will happen when your target is built.
# juce_add_binary_data(GuiAppData SOURCES ...) # juce_add_binary_data(GuiAppData SOURCES ...)
# `target_link_libraries` links libraries and JUCE modules to other libraries or executables. Here, # `target_link_libraries` links libraries and JUCE modules to other libraries or executables. Here,
# we're linking our executable target to the `juce::juce_gui_extra` module. Inter-module # we're linking our executable target to the `juce::juce_gui_extra` module. Inter-module
# dependencies are resolved automatically, so `juce_core`, `juce_events` and so on will also be # dependencies are resolved automatically, so `juce_core`, `juce_events` and so on will also be
# linked automatically. If we'd generated a binary data target above, we would need to link to it # linked automatically. If we'd generated a binary data target above, we would need to link to it
# here too. This is a standard CMake command. # here too. This is a standard CMake command.
target_link_libraries(GuiAppExample target_link_libraries(GuiAppExample
PRIVATE PRIVATE
# GuiAppData # If we'd created a binary data target, we'd link to it here # GuiAppData # If we'd created a binary data target, we'd link to it here
juce::juce_gui_extra juce::juce_gui_extra
PUBLIC PUBLIC
juce::juce_recommended_config_flags juce::juce_recommended_config_flags
juce::juce_recommended_lto_flags juce::juce_recommended_lto_flags
juce::juce_recommended_warning_flags) juce::juce_recommended_warning_flags)

View file

@ -1,83 +1,83 @@
# ============================================================================== # ==============================================================================
# #
# This file is part of the JUCE framework examples. # This file is part of the JUCE framework examples.
# Copyright (c) Raw Material Software Limited # Copyright (c) Raw Material Software Limited
# #
# The code included in this file is provided under the terms of the ISC license # The code included in this file is provided under the terms of the ISC license
# http://www.isc.org/downloads/software-support-policy/isc-license. Permission # http://www.isc.org/downloads/software-support-policy/isc-license. Permission
# to use, copy, modify, and/or distribute this software for any purpose with or # to use, copy, modify, and/or distribute this software for any purpose with or
# without fee is hereby granted provided that the above copyright notice and # without fee is hereby granted provided that the above copyright notice and
# this permission notice appear in all copies. # this permission notice appear in all copies.
# #
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY # REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
# AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, # AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM # INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR # LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
# OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE. # PERFORMANCE OF THIS SOFTWARE.
# #
# ============================================================================== # ==============================================================================
set(CMAKE_FOLDER examples) set(CMAKE_FOLDER examples)
add_subdirectory(CMake) add_subdirectory(CMake)
add_subdirectory(DemoRunner) add_subdirectory(DemoRunner)
function(_juce_add_pips) function(_juce_add_pips)
file(GLOB headers file(GLOB headers
CONFIGURE_DEPENDS LIST_DIRECTORIES false CONFIGURE_DEPENDS LIST_DIRECTORIES false
"${CMAKE_CURRENT_SOURCE_DIR}/*.h") "${CMAKE_CURRENT_SOURCE_DIR}/*.h")
if((CMAKE_SYSTEM_NAME STREQUAL "Linux") OR (CMAKE_SYSTEM_NAME MATCHES ".*BSD")) if((CMAKE_SYSTEM_NAME STREQUAL "Linux") OR (CMAKE_SYSTEM_NAME MATCHES ".*BSD"))
list(REMOVE_ITEM headers list(REMOVE_ITEM headers
"${CMAKE_CURRENT_SOURCE_DIR}/CameraDemo.h" "${CMAKE_CURRENT_SOURCE_DIR}/CameraDemo.h"
"${CMAKE_CURRENT_SOURCE_DIR}/PushNotificationsDemo.h" "${CMAKE_CURRENT_SOURCE_DIR}/PushNotificationsDemo.h"
"${CMAKE_CURRENT_SOURCE_DIR}/VideoDemo.h") "${CMAKE_CURRENT_SOURCE_DIR}/VideoDemo.h")
elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows") elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows")
list(REMOVE_ITEM headers list(REMOVE_ITEM headers
"${CMAKE_CURRENT_SOURCE_DIR}/PushNotificationsDemo.h") "${CMAKE_CURRENT_SOURCE_DIR}/PushNotificationsDemo.h")
endif() endif()
if(NOT (TARGET juce_ara_sdk if(NOT (TARGET juce_ara_sdk
AND (CMAKE_SYSTEM_NAME STREQUAL "Windows" AND (CMAKE_SYSTEM_NAME STREQUAL "Windows"
OR CMAKE_SYSTEM_NAME STREQUAL "Darwin" OR CMAKE_SYSTEM_NAME STREQUAL "Darwin"
OR CMAKE_SYSTEM_NAME STREQUAL "Linux"))) OR CMAKE_SYSTEM_NAME STREQUAL "Linux")))
list(REMOVE_ITEM headers list(REMOVE_ITEM headers
"${CMAKE_CURRENT_SOURCE_DIR}/ARAPluginDemo.h") "${CMAKE_CURRENT_SOURCE_DIR}/ARAPluginDemo.h")
endif() endif()
if(NOT TARGET juce_vst2_sdk) if(NOT TARGET juce_vst2_sdk)
list(REMOVE_ITEM headers "${CMAKE_CURRENT_SOURCE_DIR}/ReaperEmbeddedViewPluginDemo.h") list(REMOVE_ITEM headers "${CMAKE_CURRENT_SOURCE_DIR}/ReaperEmbeddedViewPluginDemo.h")
endif() endif()
if((CMAKE_SYSTEM_NAME STREQUAL "Windows") if((CMAKE_SYSTEM_NAME STREQUAL "Windows")
AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/WebViewPluginDemo.h") AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/WebViewPluginDemo.h")
if(NOT ("${JUCE_CMAKE_UTILS_DIR}" IN_LIST CMAKE_MODULE_PATH)) if(NOT ("${JUCE_CMAKE_UTILS_DIR}" IN_LIST CMAKE_MODULE_PATH))
list(APPEND CMAKE_MODULE_PATH "${JUCE_CMAKE_UTILS_DIR}") list(APPEND CMAKE_MODULE_PATH "${JUCE_CMAKE_UTILS_DIR}")
endif() endif()
find_package(WebView2) find_package(WebView2)
if(NOT WebView2_FOUND) if(NOT WebView2_FOUND)
list(REMOVE_ITEM headers "${CMAKE_CURRENT_SOURCE_DIR}/WebViewPluginDemo.h") list(REMOVE_ITEM headers "${CMAKE_CURRENT_SOURCE_DIR}/WebViewPluginDemo.h")
message(WARNING "The WebViewPluginDemo was not enabled because the WebView2 package wasn't found.") message(WARNING "The WebViewPluginDemo was not enabled because the WebView2 package wasn't found.")
endif() endif()
endif() endif()
foreach(header IN ITEMS ${headers}) foreach(header IN ITEMS ${headers})
juce_add_pip(${header} added_target) juce_add_pip(${header} added_target)
target_link_libraries(${added_target} PUBLIC target_link_libraries(${added_target} PUBLIC
juce::juce_recommended_config_flags juce::juce_recommended_config_flags
juce::juce_recommended_lto_flags juce::juce_recommended_lto_flags
juce::juce_recommended_warning_flags) juce::juce_recommended_warning_flags)
endforeach() endforeach()
endfunction() endfunction()
add_subdirectory(Audio) add_subdirectory(Audio)
add_subdirectory(DSP) add_subdirectory(DSP)
add_subdirectory(GUI) add_subdirectory(GUI)
add_subdirectory(Plugins) add_subdirectory(Plugins)
add_subdirectory(Utilities) add_subdirectory(Utilities)

View file

@ -1,22 +1,22 @@
# ============================================================================== # ==============================================================================
# #
# This file is part of the JUCE framework examples. # This file is part of the JUCE framework examples.
# Copyright (c) Raw Material Software Limited # Copyright (c) Raw Material Software Limited
# #
# The code included in this file is provided under the terms of the ISC license # The code included in this file is provided under the terms of the ISC license
# http://www.isc.org/downloads/software-support-policy/isc-license. Permission # http://www.isc.org/downloads/software-support-policy/isc-license. Permission
# to use, copy, modify, and/or distribute this software for any purpose with or # to use, copy, modify, and/or distribute this software for any purpose with or
# without fee is hereby granted provided that the above copyright notice and # without fee is hereby granted provided that the above copyright notice and
# this permission notice appear in all copies. # this permission notice appear in all copies.
# #
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY # REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
# AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, # AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM # INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR # LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
# OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE. # PERFORMANCE OF THIS SOFTWARE.
# #
# ============================================================================== # ==============================================================================
_juce_add_pips() _juce_add_pips()

View file

@ -1,86 +1,86 @@
# ============================================================================== # ==============================================================================
# #
# This file is part of the JUCE framework examples. # This file is part of the JUCE framework examples.
# Copyright (c) Raw Material Software Limited # Copyright (c) Raw Material Software Limited
# #
# The code included in this file is provided under the terms of the ISC license # The code included in this file is provided under the terms of the ISC license
# http://www.isc.org/downloads/software-support-policy/isc-license. Permission # http://www.isc.org/downloads/software-support-policy/isc-license. Permission
# to use, copy, modify, and/or distribute this software for any purpose with or # to use, copy, modify, and/or distribute this software for any purpose with or
# without fee is hereby granted provided that the above copyright notice and # without fee is hereby granted provided that the above copyright notice and
# this permission notice appear in all copies. # this permission notice appear in all copies.
# #
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY # REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
# AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, # AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM # INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR # LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
# OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE. # PERFORMANCE OF THIS SOFTWARE.
# #
# ============================================================================== # ==============================================================================
juce_add_gui_app(DemoRunner juce_add_gui_app(DemoRunner
BUNDLE_ID com.juce.demorunner BUNDLE_ID com.juce.demorunner
ICON_BIG ${CMAKE_CURRENT_SOURCE_DIR}/Source/JUCEAppIcon.png ICON_BIG ${CMAKE_CURRENT_SOURCE_DIR}/Source/JUCEAppIcon.png
NEEDS_CURL TRUE NEEDS_CURL TRUE
NEEDS_WEB_BROWSER TRUE NEEDS_WEB_BROWSER TRUE
MICROPHONE_PERMISSION_ENABLED TRUE MICROPHONE_PERMISSION_ENABLED TRUE
CAMERA_PERMISSION_ENABLED TRUE CAMERA_PERMISSION_ENABLED TRUE
BLUETOOTH_PERMISSION_ENABLED TRUE BLUETOOTH_PERMISSION_ENABLED TRUE
FILE_SHARING_ENABLED TRUE FILE_SHARING_ENABLED TRUE
DOCUMENT_BROWSER_ENABLED TRUE DOCUMENT_BROWSER_ENABLED TRUE
REQUIRES_FULL_SCREEN FALSE REQUIRES_FULL_SCREEN FALSE
IPAD_SCREEN_ORIENTATIONS UIInterfaceOrientationPortrait IPAD_SCREEN_ORIENTATIONS UIInterfaceOrientationPortrait
UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationPortraitUpsideDown
UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeLeft
UIInterfaceOrientationLandscapeRight UIInterfaceOrientationLandscapeRight
IPHONE_SCREEN_ORIENTATIONS UIInterfaceOrientationPortrait IPHONE_SCREEN_ORIENTATIONS UIInterfaceOrientationPortrait
UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationPortraitUpsideDown
UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeLeft
UIInterfaceOrientationLandscapeRight) UIInterfaceOrientationLandscapeRight)
juce_generate_juce_header(DemoRunner) juce_generate_juce_header(DemoRunner)
target_sources(DemoRunner PRIVATE target_sources(DemoRunner PRIVATE
Source/Demos/DemoPIPs1.cpp Source/Demos/DemoPIPs1.cpp
Source/Demos/DemoPIPs2.cpp Source/Demos/DemoPIPs2.cpp
Source/Demos/JUCEDemos.cpp Source/Demos/JUCEDemos.cpp
Source/Main.cpp Source/Main.cpp
Source/UI/DemoContentComponent.cpp Source/UI/DemoContentComponent.cpp
Source/UI/MainComponent.cpp) Source/UI/MainComponent.cpp)
target_compile_definitions(DemoRunner PRIVATE target_compile_definitions(DemoRunner PRIVATE
PIP_JUCE_EXAMPLES_DIRECTORY_STRING="${JUCE_SOURCE_DIR}/examples" PIP_JUCE_EXAMPLES_DIRECTORY_STRING="${JUCE_SOURCE_DIR}/examples"
JUCE_ALLOW_STATIC_NULL_VARIABLES=0 JUCE_ALLOW_STATIC_NULL_VARIABLES=0
JUCE_CONTENT_SHARING=1 JUCE_CONTENT_SHARING=1
JUCE_DEMO_RUNNER=1 JUCE_DEMO_RUNNER=1
JUCE_PLUGINHOST_LV2=1 JUCE_PLUGINHOST_LV2=1
JUCE_PLUGINHOST_VST3=1 JUCE_PLUGINHOST_VST3=1
JUCE_STRICT_REFCOUNTEDPOINTER=1 JUCE_STRICT_REFCOUNTEDPOINTER=1
JUCE_UNIT_TESTS=1 JUCE_UNIT_TESTS=1
JUCE_USE_CAMERA=1 JUCE_USE_CAMERA=1
JUCE_USE_CURL=1 JUCE_USE_CURL=1
JUCE_USE_MP3AUDIOFORMAT=1 JUCE_USE_MP3AUDIOFORMAT=1
JUCE_WEB_BROWSER=1 JUCE_WEB_BROWSER=1
# This is a temporary workaround to allow builds to complete on Xcode 15. # This is a temporary workaround to allow builds to complete on Xcode 15.
# Add -Wl,-ld_classic to the OTHER_LDFLAGS build setting if you need to # Add -Wl,-ld_classic to the OTHER_LDFLAGS build setting if you need to
# deploy to older versions of macOS/iOS. # deploy to older versions of macOS/iOS.
JUCE_SILENCE_XCODE_15_LINKER_WARNING=1) JUCE_SILENCE_XCODE_15_LINKER_WARNING=1)
target_link_libraries(DemoRunner PRIVATE target_link_libraries(DemoRunner PRIVATE
juce::juce_analytics juce::juce_analytics
juce::juce_animation juce::juce_animation
juce::juce_audio_utils juce::juce_audio_utils
juce::juce_box2d juce::juce_box2d
juce::juce_dsp juce::juce_dsp
juce::juce_opengl juce::juce_opengl
juce::juce_osc juce::juce_osc
juce::juce_product_unlocking juce::juce_product_unlocking
juce::juce_video juce::juce_video
juce::juce_recommended_config_flags juce::juce_recommended_config_flags
juce::juce_recommended_lto_flags juce::juce_recommended_lto_flags
juce::juce_recommended_warning_flags) juce::juce_recommended_warning_flags)
foreach(folder IN ITEMS ../Assets ../Audio ../DSP ../GUI ../Utilities) foreach(folder IN ITEMS ../Assets ../Audio ../DSP ../GUI ../Utilities)
juce_add_bundle_resources_directory(DemoRunner ${folder}) juce_add_bundle_resources_directory(DemoRunner ${folder})
endforeach() endforeach()

View file

@ -1,22 +1,22 @@
# ============================================================================== # ==============================================================================
# #
# This file is part of the JUCE framework examples. # This file is part of the JUCE framework examples.
# Copyright (c) Raw Material Software Limited # Copyright (c) Raw Material Software Limited
# #
# The code included in this file is provided under the terms of the ISC license # The code included in this file is provided under the terms of the ISC license
# http://www.isc.org/downloads/software-support-policy/isc-license. Permission # http://www.isc.org/downloads/software-support-policy/isc-license. Permission
# to use, copy, modify, and/or distribute this software for any purpose with or # to use, copy, modify, and/or distribute this software for any purpose with or
# without fee is hereby granted provided that the above copyright notice and # without fee is hereby granted provided that the above copyright notice and
# this permission notice appear in all copies. # this permission notice appear in all copies.
# #
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY # REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
# AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, # AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM # INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR # LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
# OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE. # PERFORMANCE OF THIS SOFTWARE.
# #
# ============================================================================== # ==============================================================================
_juce_add_pips() _juce_add_pips()

View file

@ -1,22 +1,22 @@
# ============================================================================== # ==============================================================================
# #
# This file is part of the JUCE framework examples. # This file is part of the JUCE framework examples.
# Copyright (c) Raw Material Software Limited # Copyright (c) Raw Material Software Limited
# #
# The code included in this file is provided under the terms of the ISC license # The code included in this file is provided under the terms of the ISC license
# http://www.isc.org/downloads/software-support-policy/isc-license. Permission # http://www.isc.org/downloads/software-support-policy/isc-license. Permission
# to use, copy, modify, and/or distribute this software for any purpose with or # to use, copy, modify, and/or distribute this software for any purpose with or
# without fee is hereby granted provided that the above copyright notice and # without fee is hereby granted provided that the above copyright notice and
# this permission notice appear in all copies. # this permission notice appear in all copies.
# #
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY # REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
# AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, # AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM # INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR # LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
# OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE. # PERFORMANCE OF THIS SOFTWARE.
# #
# ============================================================================== # ==============================================================================
_juce_add_pips() _juce_add_pips()

View file

@ -1,22 +1,22 @@
# ============================================================================== # ==============================================================================
# #
# This file is part of the JUCE framework examples. # This file is part of the JUCE framework examples.
# Copyright (c) Raw Material Software Limited # Copyright (c) Raw Material Software Limited
# #
# The code included in this file is provided under the terms of the ISC license # The code included in this file is provided under the terms of the ISC license
# http://www.isc.org/downloads/software-support-policy/isc-license. Permission # http://www.isc.org/downloads/software-support-policy/isc-license. Permission
# to use, copy, modify, and/or distribute this software for any purpose with or # to use, copy, modify, and/or distribute this software for any purpose with or
# without fee is hereby granted provided that the above copyright notice and # without fee is hereby granted provided that the above copyright notice and
# this permission notice appear in all copies. # this permission notice appear in all copies.
# #
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY # REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
# AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, # AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM # INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR # LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
# OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE. # PERFORMANCE OF THIS SOFTWARE.
# #
# ============================================================================== # ==============================================================================
_juce_add_pips() _juce_add_pips()

View file

@ -1,47 +1,47 @@
# ============================================================================== # ==============================================================================
# #
# This file is part of the JUCE framework. # This file is part of the JUCE framework.
# Copyright (c) Raw Material Software Limited # Copyright (c) Raw Material Software Limited
# #
# JUCE is an open source framework subject to commercial or open source # JUCE is an open source framework subject to commercial or open source
# licensing. # licensing.
# #
# By downloading, installing, or using the JUCE framework, or combining the # By downloading, installing, or using the JUCE framework, or combining the
# JUCE framework with any other source code, object code, content or any other # JUCE framework with any other source code, object code, content or any other
# copyrightable work, you agree to the terms of the JUCE End User Licence # copyrightable work, you agree to the terms of the JUCE End User Licence
# Agreement, and all incorporated terms including the JUCE Privacy Policy and # Agreement, and all incorporated terms including the JUCE Privacy Policy and
# the JUCE Website Terms of Service, as applicable, which will bind you. If you # the JUCE Website Terms of Service, as applicable, which will bind you. If you
# do not agree to the terms of these agreements, we will not license the JUCE # do not agree to the terms of these agreements, we will not license the JUCE
# framework to you, and you must discontinue the installation or download # framework to you, and you must discontinue the installation or download
# process and cease use of the JUCE framework. # process and cease use of the JUCE framework.
# #
# JUCE End User Licence Agreement: https://juce.com/legal/juce-8-licence/ # JUCE End User Licence Agreement: https://juce.com/legal/juce-8-licence/
# JUCE Privacy Policy: https://juce.com/juce-privacy-policy # JUCE Privacy Policy: https://juce.com/juce-privacy-policy
# JUCE Website Terms of Service: https://juce.com/juce-website-terms-of-service/ # JUCE Website Terms of Service: https://juce.com/juce-website-terms-of-service/
# #
# Or: # Or:
# #
# You may also use this code under the terms of the AGPLv3: # You may also use this code under the terms of the AGPLv3:
# https://www.gnu.org/licenses/agpl-3.0.en.html # https://www.gnu.org/licenses/agpl-3.0.en.html
# #
# THE JUCE FRAMEWORK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL # THE JUCE FRAMEWORK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL
# WARRANTIES, WHETHER EXPRESSED OR IMPLIED, INCLUDING WARRANTY OF # WARRANTIES, WHETHER EXPRESSED OR IMPLIED, INCLUDING WARRANTY OF
# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED. # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED.
# #
# ============================================================================== # ==============================================================================
juce_add_gui_app(AudioPerformanceTest BUNDLE_ID com.juce.AudioPerformanceTest) juce_add_gui_app(AudioPerformanceTest BUNDLE_ID com.juce.AudioPerformanceTest)
juce_generate_juce_header(AudioPerformanceTest) juce_generate_juce_header(AudioPerformanceTest)
target_sources(AudioPerformanceTest PRIVATE target_sources(AudioPerformanceTest PRIVATE
Source/Main.cpp) Source/Main.cpp)
target_compile_definitions(AudioPerformanceTest PRIVATE target_compile_definitions(AudioPerformanceTest PRIVATE
JUCE_USE_CURL=0 JUCE_WEB_BROWSER=0) JUCE_USE_CURL=0 JUCE_WEB_BROWSER=0)
target_link_libraries(AudioPerformanceTest PRIVATE target_link_libraries(AudioPerformanceTest PRIVATE
juce::juce_audio_utils juce::juce_audio_utils
juce::juce_recommended_config_flags juce::juce_recommended_config_flags
juce::juce_recommended_lto_flags juce::juce_recommended_lto_flags
juce::juce_recommended_warning_flags) juce::juce_recommended_warning_flags)

View file

@ -1,93 +1,93 @@
# ============================================================================== # ==============================================================================
# #
# This file is part of the JUCE framework. # This file is part of the JUCE framework.
# Copyright (c) Raw Material Software Limited # Copyright (c) Raw Material Software Limited
# #
# JUCE is an open source framework subject to commercial or open source # JUCE is an open source framework subject to commercial or open source
# licensing. # licensing.
# #
# By downloading, installing, or using the JUCE framework, or combining the # By downloading, installing, or using the JUCE framework, or combining the
# JUCE framework with any other source code, object code, content or any other # JUCE framework with any other source code, object code, content or any other
# copyrightable work, you agree to the terms of the JUCE End User Licence # copyrightable work, you agree to the terms of the JUCE End User Licence
# Agreement, and all incorporated terms including the JUCE Privacy Policy and # Agreement, and all incorporated terms including the JUCE Privacy Policy and
# the JUCE Website Terms of Service, as applicable, which will bind you. If you # the JUCE Website Terms of Service, as applicable, which will bind you. If you
# do not agree to the terms of these agreements, we will not license the JUCE # do not agree to the terms of these agreements, we will not license the JUCE
# framework to you, and you must discontinue the installation or download # framework to you, and you must discontinue the installation or download
# process and cease use of the JUCE framework. # process and cease use of the JUCE framework.
# #
# JUCE End User Licence Agreement: https://juce.com/legal/juce-8-licence/ # JUCE End User Licence Agreement: https://juce.com/legal/juce-8-licence/
# JUCE Privacy Policy: https://juce.com/juce-privacy-policy # JUCE Privacy Policy: https://juce.com/juce-privacy-policy
# JUCE Website Terms of Service: https://juce.com/juce-website-terms-of-service/ # JUCE Website Terms of Service: https://juce.com/juce-website-terms-of-service/
# #
# Or: # Or:
# #
# You may also use this code under the terms of the AGPLv3: # You may also use this code under the terms of the AGPLv3:
# https://www.gnu.org/licenses/agpl-3.0.en.html # https://www.gnu.org/licenses/agpl-3.0.en.html
# #
# THE JUCE FRAMEWORK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL # THE JUCE FRAMEWORK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL
# WARRANTIES, WHETHER EXPRESSED OR IMPLIED, INCLUDING WARRANTY OF # WARRANTIES, WHETHER EXPRESSED OR IMPLIED, INCLUDING WARRANTY OF
# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED. # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED.
# #
# ============================================================================== # ==============================================================================
juce_add_gui_app(AudioPluginHost juce_add_gui_app(AudioPluginHost
BUNDLE_ID com.juce.pluginhost BUNDLE_ID com.juce.pluginhost
ICON_BIG "${CMAKE_CURRENT_SOURCE_DIR}/Source/JUCEAppIcon.png" ICON_BIG "${CMAKE_CURRENT_SOURCE_DIR}/Source/JUCEAppIcon.png"
MICROPHONE_PERMISSION_ENABLED TRUE MICROPHONE_PERMISSION_ENABLED TRUE
PLUGINHOST_AU TRUE) PLUGINHOST_AU TRUE)
juce_generate_juce_header(AudioPluginHost) juce_generate_juce_header(AudioPluginHost)
target_sources(AudioPluginHost PRIVATE target_sources(AudioPluginHost PRIVATE
Source/HostStartup.cpp Source/HostStartup.cpp
Source/Plugins/ARAPlugin.cpp Source/Plugins/ARAPlugin.cpp
Source/Plugins/IOConfigurationWindow.cpp Source/Plugins/IOConfigurationWindow.cpp
Source/Plugins/InternalPlugins.cpp Source/Plugins/InternalPlugins.cpp
Source/Plugins/PluginGraph.cpp Source/Plugins/PluginGraph.cpp
Source/UI/GraphEditorPanel.cpp Source/UI/GraphEditorPanel.cpp
Source/UI/MainHostWindow.cpp) Source/UI/MainHostWindow.cpp)
juce_add_binary_data(AudioPluginHostData SOURCES juce_add_binary_data(AudioPluginHostData SOURCES
../../examples/Assets/cassette_recorder.wav ../../examples/Assets/cassette_recorder.wav
../../examples/Assets/cello.wav ../../examples/Assets/cello.wav
../../examples/Assets/guitar_amp.wav ../../examples/Assets/guitar_amp.wav
../../examples/Assets/proaudio.path ../../examples/Assets/proaudio.path
../../examples/Assets/reverb_ir.wav ../../examples/Assets/reverb_ir.wav
../../examples/Assets/singing.ogg) ../../examples/Assets/singing.ogg)
target_compile_definitions(AudioPluginHost PRIVATE target_compile_definitions(AudioPluginHost PRIVATE
JUCE_ALSA=1 JUCE_ALSA=1
JUCE_CONTENT_SHARING=1 JUCE_CONTENT_SHARING=1
JUCE_DIRECTSOUND=1 JUCE_DIRECTSOUND=1
JUCE_DISABLE_CAUTIOUS_PARAMETER_ID_CHECKING=1 JUCE_DISABLE_CAUTIOUS_PARAMETER_ID_CHECKING=1
JUCE_PLUGINHOST_LADSPA=1 JUCE_PLUGINHOST_LADSPA=1
JUCE_PLUGINHOST_LV2=1 JUCE_PLUGINHOST_LV2=1
JUCE_PLUGINHOST_VST3=1 JUCE_PLUGINHOST_VST3=1
JUCE_PLUGINHOST_VST=0 JUCE_PLUGINHOST_VST=0
JUCE_PLUGINHOST_ARA=0 JUCE_PLUGINHOST_ARA=0
JUCE_USE_CAMERA=0 JUCE_USE_CAMERA=0
JUCE_USE_CDBURNER=0 JUCE_USE_CDBURNER=0
JUCE_USE_CDREADER=0 JUCE_USE_CDREADER=0
JUCE_USE_CURL=0 JUCE_USE_CURL=0
JUCE_USE_FLAC=0 JUCE_USE_FLAC=0
JUCE_USE_OGGVORBIS=1 JUCE_USE_OGGVORBIS=1
JUCE_VST3_HOST_CROSS_PLATFORM_UID=1 JUCE_VST3_HOST_CROSS_PLATFORM_UID=1
JUCE_WASAPI=1 JUCE_WASAPI=1
JUCE_WEB_BROWSER=0 JUCE_WEB_BROWSER=0
PIP_JUCE_EXAMPLES_DIRECTORY_STRING="${JUCE_SOURCE_DIR}/examples" PIP_JUCE_EXAMPLES_DIRECTORY_STRING="${JUCE_SOURCE_DIR}/examples"
# This is a temporary workaround to allow builds to complete on Xcode 15. # This is a temporary workaround to allow builds to complete on Xcode 15.
# Add -Wl,-ld_classic to the OTHER_LDFLAGS build setting if you need to # Add -Wl,-ld_classic to the OTHER_LDFLAGS build setting if you need to
# deploy to older versions of macOS/iOS. # deploy to older versions of macOS/iOS.
JUCE_SILENCE_XCODE_15_LINKER_WARNING=1) JUCE_SILENCE_XCODE_15_LINKER_WARNING=1)
target_link_libraries(AudioPluginHost PRIVATE target_link_libraries(AudioPluginHost PRIVATE
AudioPluginHostData AudioPluginHostData
juce::juce_audio_utils juce::juce_audio_utils
juce::juce_cryptography juce::juce_cryptography
juce::juce_dsp juce::juce_dsp
juce::juce_opengl juce::juce_opengl
juce::juce_recommended_config_flags juce::juce_recommended_config_flags
juce::juce_recommended_lto_flags juce::juce_recommended_lto_flags
juce::juce_recommended_warning_flags) juce::juce_recommended_warning_flags)
juce_add_bundle_resources_directory(AudioPluginHost ../../examples/Assets) juce_add_bundle_resources_directory(AudioPluginHost ../../examples/Assets)

View file

@ -1,50 +1,50 @@
# ============================================================================== # ==============================================================================
# #
# This file is part of the JUCE framework. # This file is part of the JUCE framework.
# Copyright (c) Raw Material Software Limited # Copyright (c) Raw Material Software Limited
# #
# JUCE is an open source framework subject to commercial or open source # JUCE is an open source framework subject to commercial or open source
# licensing. # licensing.
# #
# By downloading, installing, or using the JUCE framework, or combining the # By downloading, installing, or using the JUCE framework, or combining the
# JUCE framework with any other source code, object code, content or any other # JUCE framework with any other source code, object code, content or any other
# copyrightable work, you agree to the terms of the JUCE End User Licence # copyrightable work, you agree to the terms of the JUCE End User Licence
# Agreement, and all incorporated terms including the JUCE Privacy Policy and # Agreement, and all incorporated terms including the JUCE Privacy Policy and
# the JUCE Website Terms of Service, as applicable, which will bind you. If you # the JUCE Website Terms of Service, as applicable, which will bind you. If you
# do not agree to the terms of these agreements, we will not license the JUCE # do not agree to the terms of these agreements, we will not license the JUCE
# framework to you, and you must discontinue the installation or download # framework to you, and you must discontinue the installation or download
# process and cease use of the JUCE framework. # process and cease use of the JUCE framework.
# #
# JUCE End User Licence Agreement: https://juce.com/legal/juce-8-licence/ # JUCE End User Licence Agreement: https://juce.com/legal/juce-8-licence/
# JUCE Privacy Policy: https://juce.com/juce-privacy-policy # JUCE Privacy Policy: https://juce.com/juce-privacy-policy
# JUCE Website Terms of Service: https://juce.com/juce-website-terms-of-service/ # JUCE Website Terms of Service: https://juce.com/juce-website-terms-of-service/
# #
# Or: # Or:
# #
# You may also use this code under the terms of the AGPLv3: # You may also use this code under the terms of the AGPLv3:
# https://www.gnu.org/licenses/agpl-3.0.en.html # https://www.gnu.org/licenses/agpl-3.0.en.html
# #
# THE JUCE FRAMEWORK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL # THE JUCE FRAMEWORK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL
# WARRANTIES, WHETHER EXPRESSED OR IMPLIED, INCLUDING WARRANTY OF # WARRANTIES, WHETHER EXPRESSED OR IMPLIED, INCLUDING WARRANTY OF
# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED. # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED.
# #
# ============================================================================== # ==============================================================================
juce_add_console_app(BinaryBuilder) juce_add_console_app(BinaryBuilder)
juce_generate_juce_header(BinaryBuilder) juce_generate_juce_header(BinaryBuilder)
target_sources(BinaryBuilder PRIVATE Source/Main.cpp) target_sources(BinaryBuilder PRIVATE Source/Main.cpp)
target_compile_definitions(BinaryBuilder PRIVATE target_compile_definitions(BinaryBuilder PRIVATE
JUCE_USE_CURL=0 JUCE_USE_CURL=0
# This is a temporary workaround to allow builds to complete on Xcode 15. # This is a temporary workaround to allow builds to complete on Xcode 15.
# Add -Wl,-ld_classic to the OTHER_LDFLAGS build setting if you need to # Add -Wl,-ld_classic to the OTHER_LDFLAGS build setting if you need to
# deploy to older versions of macOS/iOS. # deploy to older versions of macOS/iOS.
JUCE_SILENCE_XCODE_15_LINKER_WARNING=1) JUCE_SILENCE_XCODE_15_LINKER_WARNING=1)
target_link_libraries(BinaryBuilder PRIVATE target_link_libraries(BinaryBuilder PRIVATE
juce::juce_core juce::juce_core
juce::juce_recommended_config_flags juce::juce_recommended_config_flags
juce::juce_recommended_lto_flags juce::juce_recommended_lto_flags
juce::juce_recommended_warning_flags) juce::juce_recommended_warning_flags)

View file

@ -1,94 +1,94 @@
# ============================================================================== # ==============================================================================
# #
# This file is part of the JUCE framework. # This file is part of the JUCE framework.
# Copyright (c) Raw Material Software Limited # Copyright (c) Raw Material Software Limited
# #
# JUCE is an open source framework subject to commercial or open source # JUCE is an open source framework subject to commercial or open source
# licensing. # licensing.
# #
# By downloading, installing, or using the JUCE framework, or combining the # By downloading, installing, or using the JUCE framework, or combining the
# JUCE framework with any other source code, object code, content or any other # JUCE framework with any other source code, object code, content or any other
# copyrightable work, you agree to the terms of the JUCE End User Licence # copyrightable work, you agree to the terms of the JUCE End User Licence
# Agreement, and all incorporated terms including the JUCE Privacy Policy and # Agreement, and all incorporated terms including the JUCE Privacy Policy and
# the JUCE Website Terms of Service, as applicable, which will bind you. If you # the JUCE Website Terms of Service, as applicable, which will bind you. If you
# do not agree to the terms of these agreements, we will not license the JUCE # do not agree to the terms of these agreements, we will not license the JUCE
# framework to you, and you must discontinue the installation or download # framework to you, and you must discontinue the installation or download
# process and cease use of the JUCE framework. # process and cease use of the JUCE framework.
# #
# JUCE End User Licence Agreement: https://juce.com/legal/juce-8-licence/ # JUCE End User Licence Agreement: https://juce.com/legal/juce-8-licence/
# JUCE Privacy Policy: https://juce.com/juce-privacy-policy # JUCE Privacy Policy: https://juce.com/juce-privacy-policy
# JUCE Website Terms of Service: https://juce.com/juce-website-terms-of-service/ # JUCE Website Terms of Service: https://juce.com/juce-website-terms-of-service/
# #
# Or: # Or:
# #
# You may also use this code under the terms of the AGPLv3: # You may also use this code under the terms of the AGPLv3:
# https://www.gnu.org/licenses/agpl-3.0.en.html # https://www.gnu.org/licenses/agpl-3.0.en.html
# #
# THE JUCE FRAMEWORK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL # THE JUCE FRAMEWORK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL
# WARRANTIES, WHETHER EXPRESSED OR IMPLIED, INCLUDING WARRANTY OF # WARRANTIES, WHETHER EXPRESSED OR IMPLIED, INCLUDING WARRANTY OF
# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED. # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED.
# #
# ============================================================================== # ==============================================================================
include(FindPackageHandleStandardArgs) include(FindPackageHandleStandardArgs)
if(JUCE_WEBVIEW2_PACKAGE_LOCATION) if(JUCE_WEBVIEW2_PACKAGE_LOCATION)
set(initial_search_dir ${JUCE_WEBVIEW2_PACKAGE_LOCATION}) set(initial_search_dir ${JUCE_WEBVIEW2_PACKAGE_LOCATION})
else() else()
set(initial_search_dir "$ENV{USERPROFILE}/AppData/Local/PackageManagement/NuGet/Packages") set(initial_search_dir "$ENV{USERPROFILE}/AppData/Local/PackageManagement/NuGet/Packages")
endif() endif()
file(GLOB subdirs "${initial_search_dir}/*Microsoft.Web.WebView2*") file(GLOB subdirs "${initial_search_dir}/*Microsoft.Web.WebView2*")
if(subdirs) if(subdirs)
list(GET subdirs 0 search_dir) list(GET subdirs 0 search_dir)
list(LENGTH subdirs num_webview2_packages) list(LENGTH subdirs num_webview2_packages)
if(num_webview2_packages GREATER 1) if(num_webview2_packages GREATER 1)
message(WARNING "Multiple WebView2 packages found in the local NuGet folder. Proceeding with ${search_dir}.") message(WARNING "Multiple WebView2 packages found in the local NuGet folder. Proceeding with ${search_dir}.")
endif() endif()
find_path(WebView2_root_dir build/native/include/WebView2.h HINTS ${search_dir}) find_path(WebView2_root_dir build/native/include/WebView2.h HINTS ${search_dir})
set(WebView2_include_dir "${WebView2_root_dir}/build/native/include") set(WebView2_include_dir "${WebView2_root_dir}/build/native/include")
if(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "arm64") if(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "arm64")
set(WebView2_arch arm64) set(WebView2_arch arm64)
else() else()
if(CMAKE_SIZEOF_VOID_P EQUAL 8) if(CMAKE_SIZEOF_VOID_P EQUAL 8)
set(WebView2_arch x64) set(WebView2_arch x64)
elseif(CMAKE_SIZEOF_VOID_P EQUAL 4) elseif(CMAKE_SIZEOF_VOID_P EQUAL 4)
set(WebView2_arch x86) set(WebView2_arch x86)
endif() endif()
endif() endif()
set(WebView2_library "${WebView2_root_dir}/build/native/${WebView2_arch}/WebView2LoaderStatic.lib") set(WebView2_library "${WebView2_root_dir}/build/native/${WebView2_arch}/WebView2LoaderStatic.lib")
elseif(NOT WebView2_FIND_QUIETLY) elseif(NOT WebView2_FIND_QUIETLY)
message(WARNING message(WARNING
"WebView2 wasn't found in the the local NuGet folder." "WebView2 wasn't found in the the local NuGet folder."
"\n" "\n"
"To install NuGet and the WebView2 package containing the statically linked library, " "To install NuGet and the WebView2 package containing the statically linked library, "
"open a PowerShell and issue the following commands" "open a PowerShell and issue the following commands"
"\n" "\n"
"> Register-PackageSource -provider NuGet -name nugetRepository -location https://www.nuget.org/api/v2\n" "> Register-PackageSource -provider NuGet -name nugetRepository -location https://www.nuget.org/api/v2\n"
"> Install-Package Microsoft.Web.WebView2 -Scope CurrentUser -RequiredVersion 1.0.1901.177 -Source nugetRepository\n" "> Install-Package Microsoft.Web.WebView2 -Scope CurrentUser -RequiredVersion 1.0.1901.177 -Source nugetRepository\n"
"\n" "\n"
"Alternatively you can use the JUCE_WEBVIEW2_PACKAGE_LOCATION CMake variable to specify the directory " "Alternatively you can use the JUCE_WEBVIEW2_PACKAGE_LOCATION CMake variable to specify the directory "
"where this find script is looking for the *Microsoft.Web.WebView2* package directory.") "where this find script is looking for the *Microsoft.Web.WebView2* package directory.")
endif() endif()
find_package_handle_standard_args(WebView2 DEFAULT_MSG WebView2_include_dir WebView2_library) find_package_handle_standard_args(WebView2 DEFAULT_MSG WebView2_include_dir WebView2_library)
if(WebView2_FOUND) if(WebView2_FOUND)
set(WebView2_INCLUDE_DIRS ${WebView2_include_dir}) set(WebView2_INCLUDE_DIRS ${WebView2_include_dir})
set(WebView2_LIBRARIES ${WebView2_library}) set(WebView2_LIBRARIES ${WebView2_library})
mark_as_advanced(WebView2_library WebView2_include_dir WebView2_root_dir) mark_as_advanced(WebView2_library WebView2_include_dir WebView2_root_dir)
if(NOT TARGET juce_webview2) if(NOT TARGET juce_webview2)
add_library(juce_webview2 INTERFACE) add_library(juce_webview2 INTERFACE)
add_library(juce::juce_webview2 ALIAS juce_webview2) add_library(juce::juce_webview2 ALIAS juce_webview2)
target_include_directories(juce_webview2 INTERFACE ${WebView2_INCLUDE_DIRS}) target_include_directories(juce_webview2 INTERFACE ${WebView2_INCLUDE_DIRS})
target_link_libraries(juce_webview2 INTERFACE ${WebView2_LIBRARIES}) target_link_libraries(juce_webview2 INTERFACE ${WebView2_LIBRARIES})
endif() endif()
endif() endif()

View file

@ -1,129 +1,128 @@
# ============================================================================== # ==============================================================================
# #
# This file is part of the JUCE framework. # This file is part of the JUCE framework.
# Copyright (c) Raw Material Software Limited # Copyright (c) Raw Material Software Limited
# #
# JUCE is an open source framework subject to commercial or open source # JUCE is an open source framework subject to commercial or open source
# licensing. # licensing.
# #
# By downloading, installing, or using the JUCE framework, or combining the # By downloading, installing, or using the JUCE framework, or combining the
# JUCE framework with any other source code, object code, content or any other # JUCE framework with any other source code, object code, content or any other
# copyrightable work, you agree to the terms of the JUCE End User Licence # copyrightable work, you agree to the terms of the JUCE End User Licence
# Agreement, and all incorporated terms including the JUCE Privacy Policy and # Agreement, and all incorporated terms including the JUCE Privacy Policy and
# the JUCE Website Terms of Service, as applicable, which will bind you. If you # the JUCE Website Terms of Service, as applicable, which will bind you. If you
# do not agree to the terms of these agreements, we will not license the JUCE # do not agree to the terms of these agreements, we will not license the JUCE
# framework to you, and you must discontinue the installation or download # framework to you, and you must discontinue the installation or download
# process and cease use of the JUCE framework. # process and cease use of the JUCE framework.
# #
# JUCE End User Licence Agreement: https://juce.com/legal/juce-8-licence/ # JUCE End User Licence Agreement: https://juce.com/legal/juce-8-licence/
# JUCE Privacy Policy: https://juce.com/juce-privacy-policy # JUCE Privacy Policy: https://juce.com/juce-privacy-policy
# JUCE Website Terms of Service: https://juce.com/juce-website-terms-of-service/ # JUCE Website Terms of Service: https://juce.com/juce-website-terms-of-service/
# #
# Or: # Or:
# #
# You may also use this code under the terms of the AGPLv3: # You may also use this code under the terms of the AGPLv3:
# https://www.gnu.org/licenses/agpl-3.0.en.html # https://www.gnu.org/licenses/agpl-3.0.en.html
# #
# THE JUCE FRAMEWORK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL # THE JUCE FRAMEWORK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL
# WARRANTIES, WHETHER EXPRESSED OR IMPLIED, INCLUDING WARRANTY OF # WARRANTIES, WHETHER EXPRESSED OR IMPLIED, INCLUDING WARRANTY OF
# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED. # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED.
# #
# ============================================================================== # ==============================================================================
function(_juce_create_atomic_target target_name) function(_juce_create_atomic_target target_name)
add_library("${target_name}" INTERFACE) add_library("${target_name}" INTERFACE)
add_library("juce::${target_name}" ALIAS "${target_name}") add_library("juce::${target_name}" ALIAS "${target_name}")
if(NOT ((CMAKE_SYSTEM_NAME STREQUAL "Linux") OR (CMAKE_SYSTEM_NAME MATCHES ".*BSD"))) if(NOT ((CMAKE_SYSTEM_NAME STREQUAL "Linux") OR (CMAKE_SYSTEM_NAME MATCHES ".*BSD")))
return() return()
endif() endif()
set(test_atomic_with_is_lock_free_file_contents set(test_atomic_with_is_lock_free_file_contents
[[ [[
#include <atomic> #include <atomic>
int main (int argc, char** argv) int main (int argc, char** argv)
{ {
std::atomic<long long> ll { static_cast<long long> (argc) }; std::atomic<long long> ll { static_cast<long long> (argc) };
ll ^= static_cast<long long> (ll.is_lock_free()); ll ^= static_cast<long long> (ll.is_lock_free());
return static_cast<int> (ll); return static_cast<int> (ll);
} }
]]) ]])
set(test_simple_atomic_file_contents set(test_simple_atomic_file_contents
[[ [[
#include <atomic> #include <atomic>
int main (int argc, char** argv) int main (int argc, char** argv)
{ {
std::atomic<long long> ll { static_cast<long long> (argc) }; std::atomic<long long> ll { static_cast<long long> (argc) };
ll ^= 1; ll ^= 1;
return static_cast<int> (ll); return static_cast<int> (ll);
} }
]]) ]])
string(RANDOM LENGTH 16 random_file_string) string(RANDOM LENGTH 16 random_file_string)
set(test_file_name "${CMAKE_CURRENT_BINARY_DIR}/check_atomic_${random_file_string}.cpp") set(test_file_name "${CMAKE_CURRENT_BINARY_DIR}/check_atomic_${random_file_string}.cpp")
string(RANDOM LENGTH 16 random_dir_string) string(RANDOM LENGTH 16 random_dir_string)
set(test_bindir "${CMAKE_CURRENT_BINARY_DIR}/check_atomic_dir_${random_dir_string}") set(test_bindir "${CMAKE_CURRENT_BINARY_DIR}/check_atomic_dir_${random_dir_string}")
file(WRITE "${test_file_name}" "${test_atomic_with_is_lock_free_file_contents}") file(WRITE "${test_file_name}" "${test_atomic_with_is_lock_free_file_contents}")
try_compile(compile_result "${test_bindir}" "${test_file_name}" try_compile(compile_result "${test_bindir}" "${test_file_name}"
OUTPUT_VARIABLE test_build_output_0 OUTPUT_VARIABLE test_build_output_0
CXX_STANDARD 17 CXX_STANDARD 17
CXX_STANDARD_REQUIRED TRUE CXX_STANDARD_REQUIRED TRUE
CXX_EXTENSIONS FALSE) CXX_EXTENSIONS FALSE)
if(NOT compile_result) if(NOT compile_result)
try_compile(compile_result "${test_bindir}" "${test_file_name}" try_compile(compile_result "${test_bindir}" "${test_file_name}"
OUTPUT_VARIABLE test_build_output_1 OUTPUT_VARIABLE test_build_output_1
LINK_LIBRARIES atomic LINK_LIBRARIES atomic
CXX_STANDARD 17 CXX_STANDARD 17
CXX_STANDARD_REQUIRED TRUE CXX_STANDARD_REQUIRED TRUE
CXX_EXTENSIONS FALSE) CXX_EXTENSIONS FALSE)
if (NOT compile_result) if (NOT compile_result)
file(WRITE "${test_file_name}" "${test_simple_atomic_file_contents}") file(WRITE "${test_file_name}" "${test_simple_atomic_file_contents}")
try_compile(compile_result "${test_bindir}" "${test_file_name}" try_compile(compile_result "${test_bindir}" "${test_file_name}"
OUTPUT_VARIABLE test_build_output_2 OUTPUT_VARIABLE test_build_output_2
LINK_LIBRARIES atomic LINK_LIBRARIES atomic
CXX_STANDARD 17 CXX_STANDARD 17
CXX_STANDARD_REQUIRED TRUE CXX_STANDARD_REQUIRED TRUE
CXX_EXTENSIONS FALSE) CXX_EXTENSIONS FALSE)
if (NOT compile_result) if (NOT compile_result)
message(FATAL_ERROR message(FATAL_ERROR
"First build output:\n" "First build output:\n"
"${test_build_output_0}" "${test_build_output_0}"
"\n\nSecond build output:\n" "\n\nSecond build output:\n"
"${test_build_output_1}" "${test_build_output_1}"
"\n\nThird build output:\n" "\n\nThird build output:\n"
"${test_build_output_2}" "${test_build_output_2}"
"\n\nJUCE requires support for std::atomic, but this system cannot " "\n\nJUCE requires support for std::atomic, but this system cannot "
"successfully compile a program which uses std::atomic. " "successfully compile a program which uses std::atomic. "
"You may need to install a dedicated libatomic package using your " "You may need to install a dedicated libatomic package using your "
"system's package manager.") "system's package manager.")
else() else()
message(WARNING message(WARNING
"First build output:\n" "First build output:\n"
"${test_build_output_0}" "${test_build_output_0}"
"\n\nSecond build output:\n" "\n\nSecond build output:\n"
"${test_build_output_1}" "${test_build_output_1}"
"\n\nIf you are seeing this warning it means that the libatomic library" "\n\nIf you are seeing this warning it means that the libatomic library"
"on this system doesn't support is_lock_free." "on this system doesn't support is_lock_free."
"Please let the JUCE team know.") "Please let the JUCE team know.")
endif() endif()
endif() endif()
target_link_libraries("${target_name}" INTERFACE atomic) target_link_libraries("${target_name}" INTERFACE atomic)
endif() endif()
file(REMOVE "${test_file_name}") file(REMOVE "${test_file_name}")
file(REMOVE_RECURSE "${test_bindir}") file(REMOVE_RECURSE "${test_bindir}")
endfunction() endfunction()
_juce_create_atomic_target(juce_atomic_wrapper) _juce_create_atomic_target(juce_atomic_wrapper)

View file

@ -1,151 +1,151 @@
# ============================================================================== # ==============================================================================
# #
# This file is part of the JUCE framework. # This file is part of the JUCE framework.
# Copyright (c) Raw Material Software Limited # Copyright (c) Raw Material Software Limited
# #
# JUCE is an open source framework subject to commercial or open source # JUCE is an open source framework subject to commercial or open source
# licensing. # licensing.
# #
# By downloading, installing, or using the JUCE framework, or combining the # By downloading, installing, or using the JUCE framework, or combining the
# JUCE framework with any other source code, object code, content or any other # JUCE framework with any other source code, object code, content or any other
# copyrightable work, you agree to the terms of the JUCE End User Licence # copyrightable work, you agree to the terms of the JUCE End User Licence
# Agreement, and all incorporated terms including the JUCE Privacy Policy and # Agreement, and all incorporated terms including the JUCE Privacy Policy and
# the JUCE Website Terms of Service, as applicable, which will bind you. If you # the JUCE Website Terms of Service, as applicable, which will bind you. If you
# do not agree to the terms of these agreements, we will not license the JUCE # do not agree to the terms of these agreements, we will not license the JUCE
# framework to you, and you must discontinue the installation or download # framework to you, and you must discontinue the installation or download
# process and cease use of the JUCE framework. # process and cease use of the JUCE framework.
# #
# JUCE End User Licence Agreement: https://juce.com/legal/juce-8-licence/ # JUCE End User Licence Agreement: https://juce.com/legal/juce-8-licence/
# JUCE Privacy Policy: https://juce.com/juce-privacy-policy # JUCE Privacy Policy: https://juce.com/juce-privacy-policy
# JUCE Website Terms of Service: https://juce.com/juce-website-terms-of-service/ # JUCE Website Terms of Service: https://juce.com/juce-website-terms-of-service/
# #
# Or: # Or:
# #
# You may also use this code under the terms of the AGPLv3: # You may also use this code under the terms of the AGPLv3:
# https://www.gnu.org/licenses/agpl-3.0.en.html # https://www.gnu.org/licenses/agpl-3.0.en.html
# #
# THE JUCE FRAMEWORK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL # THE JUCE FRAMEWORK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL
# WARRANTIES, WHETHER EXPRESSED OR IMPLIED, INCLUDING WARRANTY OF # WARRANTIES, WHETHER EXPRESSED OR IMPLIED, INCLUDING WARRANTY OF
# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED. # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED.
# #
# ============================================================================== # ==============================================================================
add_library(juce_recommended_warning_flags INTERFACE) add_library(juce_recommended_warning_flags INTERFACE)
add_library(juce::juce_recommended_warning_flags ALIAS juce_recommended_warning_flags) add_library(juce::juce_recommended_warning_flags ALIAS juce_recommended_warning_flags)
function(_juce_get_debug_config_genex result) function(_juce_get_debug_config_genex result)
get_property(debug_configs GLOBAL PROPERTY DEBUG_CONFIGURATIONS) get_property(debug_configs GLOBAL PROPERTY DEBUG_CONFIGURATIONS)
if(NOT debug_configs) if(NOT debug_configs)
set(debug_configs Debug) set(debug_configs Debug)
endif() endif()
list(TRANSFORM debug_configs REPLACE [[^.+$]] [[$<CONFIG:\0>]]) list(TRANSFORM debug_configs REPLACE [[^.+$]] [[$<CONFIG:\0>]])
list(JOIN debug_configs "," debug_configs) list(JOIN debug_configs "," debug_configs)
# $<CONFIG> doesn't accept multiple configurations until CMake 3.19 # $<CONFIG> doesn't accept multiple configurations until CMake 3.19
set(${result} "$<OR:${debug_configs}>" PARENT_SCOPE) set(${result} "$<OR:${debug_configs}>" PARENT_SCOPE)
endfunction() endfunction()
# ================================================================================================== # ==================================================================================================
if((CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") OR (CMAKE_CXX_COMPILER_FRONTEND_VARIANT STREQUAL "MSVC")) if((CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") OR (CMAKE_CXX_COMPILER_FRONTEND_VARIANT STREQUAL "MSVC"))
target_compile_options(juce_recommended_warning_flags INTERFACE "/W4") target_compile_options(juce_recommended_warning_flags INTERFACE "/W4")
elseif((CMAKE_CXX_COMPILER_ID STREQUAL "Clang") OR (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")) elseif((CMAKE_CXX_COMPILER_ID STREQUAL "Clang") OR (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang"))
target_compile_options(juce_recommended_warning_flags INTERFACE target_compile_options(juce_recommended_warning_flags INTERFACE
-Wall -Wall
-Wshadow-all -Wshadow-all
-Wshorten-64-to-32 -Wshorten-64-to-32
-Wstrict-aliasing -Wstrict-aliasing
-Wuninitialized -Wuninitialized
-Wunused-parameter -Wunused-parameter
-Wconversion -Wconversion
-Wsign-compare -Wsign-compare
-Wint-conversion -Wint-conversion
-Wconditional-uninitialized -Wconditional-uninitialized
-Wconstant-conversion -Wconstant-conversion
-Wsign-conversion -Wsign-conversion
-Wbool-conversion -Wbool-conversion
-Wextra-semi -Wextra-semi
-Wunreachable-code -Wunreachable-code
-Wcast-align -Wcast-align
-Wshift-sign-overflow -Wshift-sign-overflow
-Wmissing-prototypes -Wmissing-prototypes
-Wnullable-to-nonnull-conversion -Wnullable-to-nonnull-conversion
-Wno-ignored-qualifiers -Wno-ignored-qualifiers
-Wswitch-enum -Wswitch-enum
-Wpedantic -Wpedantic
-Wdeprecated -Wdeprecated
-Wfloat-equal -Wfloat-equal
-Wmissing-field-initializers -Wmissing-field-initializers
$<$<OR:$<COMPILE_LANGUAGE:CXX>,$<COMPILE_LANGUAGE:OBJCXX>>: $<$<OR:$<COMPILE_LANGUAGE:CXX>,$<COMPILE_LANGUAGE:OBJCXX>>:
-Wzero-as-null-pointer-constant -Wzero-as-null-pointer-constant
-Wunused-private-field -Wunused-private-field
-Woverloaded-virtual -Woverloaded-virtual
-Wreorder -Wreorder
-Winconsistent-missing-destructor-override> -Winconsistent-missing-destructor-override>
$<$<OR:$<COMPILE_LANGUAGE:OBJC>,$<COMPILE_LANGUAGE:OBJCXX>>: $<$<OR:$<COMPILE_LANGUAGE:OBJC>,$<COMPILE_LANGUAGE:OBJCXX>>:
-Wunguarded-availability -Wunguarded-availability
-Wunguarded-availability-new>) -Wunguarded-availability-new>)
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") elseif(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
target_compile_options(juce_recommended_warning_flags INTERFACE target_compile_options(juce_recommended_warning_flags INTERFACE
-Wall -Wall
-Wextra -Wextra
-Wpedantic -Wpedantic
-Wstrict-aliasing -Wstrict-aliasing
-Wuninitialized -Wuninitialized
-Wunused-parameter -Wunused-parameter
-Wsign-compare -Wsign-compare
-Wsign-conversion -Wsign-conversion
-Wunreachable-code -Wunreachable-code
-Wcast-align -Wcast-align
-Wno-implicit-fallthrough -Wno-implicit-fallthrough
-Wno-maybe-uninitialized -Wno-maybe-uninitialized
-Wno-ignored-qualifiers -Wno-ignored-qualifiers
-Wno-multichar -Wno-multichar
-Wswitch-enum -Wswitch-enum
-Wredundant-decls -Wredundant-decls
-Wno-strict-overflow -Wno-strict-overflow
-Wshadow -Wshadow
-Wfloat-equal -Wfloat-equal
-Wmissing-field-initializers -Wmissing-field-initializers
$<$<COMPILE_LANGUAGE:CXX>: $<$<COMPILE_LANGUAGE:CXX>:
-Woverloaded-virtual -Woverloaded-virtual
-Wreorder -Wreorder
-Wzero-as-null-pointer-constant>) -Wzero-as-null-pointer-constant>)
endif() endif()
# ================================================================================================== # ==================================================================================================
add_library(juce_recommended_config_flags INTERFACE) add_library(juce_recommended_config_flags INTERFACE)
add_library(juce::juce_recommended_config_flags ALIAS juce_recommended_config_flags) add_library(juce::juce_recommended_config_flags ALIAS juce_recommended_config_flags)
if((CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") OR (CMAKE_CXX_COMPILER_FRONTEND_VARIANT STREQUAL "MSVC")) if((CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") OR (CMAKE_CXX_COMPILER_FRONTEND_VARIANT STREQUAL "MSVC"))
_juce_get_debug_config_genex(debug_config) _juce_get_debug_config_genex(debug_config)
target_compile_options(juce_recommended_config_flags INTERFACE target_compile_options(juce_recommended_config_flags INTERFACE
$<IF:${debug_config},/Od /Zi,/Ox> $<$<STREQUAL:"${CMAKE_CXX_COMPILER_ID}","MSVC">:/MP> /EHsc) $<IF:${debug_config},/Od /Zi,/Ox> $<$<STREQUAL:"${CMAKE_CXX_COMPILER_ID}","MSVC">:/MP> /EHsc)
elseif((CMAKE_CXX_COMPILER_ID STREQUAL "Clang") elseif((CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
OR (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang") OR (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
OR (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")) OR (CMAKE_CXX_COMPILER_ID STREQUAL "GNU"))
_juce_get_debug_config_genex(debug_config) _juce_get_debug_config_genex(debug_config)
target_compile_options(juce_recommended_config_flags INTERFACE target_compile_options(juce_recommended_config_flags INTERFACE
$<${debug_config}:-g -O0> $<${debug_config}:-g -O0>
$<$<CONFIG:Release>:-O3>) $<$<CONFIG:Release>:-O3>)
endif() endif()
# ================================================================================================== # ==================================================================================================
add_library(juce_recommended_lto_flags INTERFACE) add_library(juce_recommended_lto_flags INTERFACE)
add_library(juce::juce_recommended_lto_flags ALIAS juce_recommended_lto_flags) add_library(juce::juce_recommended_lto_flags ALIAS juce_recommended_lto_flags)
if((CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") OR (CMAKE_CXX_COMPILER_FRONTEND_VARIANT STREQUAL "MSVC")) if((CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") OR (CMAKE_CXX_COMPILER_FRONTEND_VARIANT STREQUAL "MSVC"))
target_compile_options(juce_recommended_lto_flags INTERFACE target_compile_options(juce_recommended_lto_flags INTERFACE
$<$<CONFIG:Release>:$<IF:$<STREQUAL:"${CMAKE_CXX_COMPILER_ID}","MSVC">,-GL,-flto>>) $<$<CONFIG:Release>:$<IF:$<STREQUAL:"${CMAKE_CXX_COMPILER_ID}","MSVC">,-GL,-flto>>)
target_link_libraries(juce_recommended_lto_flags INTERFACE target_link_libraries(juce_recommended_lto_flags INTERFACE
$<$<CONFIG:Release>:$<$<STREQUAL:"${CMAKE_CXX_COMPILER_ID}","MSVC">:-LTCG>>) $<$<CONFIG:Release>:$<$<STREQUAL:"${CMAKE_CXX_COMPILER_ID}","MSVC">:-LTCG>>)
elseif((NOT MINGW) AND ((CMAKE_CXX_COMPILER_ID STREQUAL "Clang") elseif((NOT MINGW) AND ((CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
OR (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang") OR (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
OR (CMAKE_CXX_COMPILER_ID STREQUAL "GNU"))) OR (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")))
target_compile_options(juce_recommended_lto_flags INTERFACE $<$<CONFIG:Release>:-flto>) target_compile_options(juce_recommended_lto_flags INTERFACE $<$<CONFIG:Release>:-flto>)
target_link_libraries(juce_recommended_lto_flags INTERFACE $<$<CONFIG:Release>:-flto>) target_link_libraries(juce_recommended_lto_flags INTERFACE $<$<CONFIG:Release>:-flto>)
# Xcode 15.0 requires this flag to avoid a compiler bug # Xcode 15.0 requires this flag to avoid a compiler bug
target_link_libraries(juce_recommended_lto_flags INTERFACE target_link_libraries(juce_recommended_lto_flags INTERFACE
$<$<CONFIG:Release>:$<$<STREQUAL:"${CMAKE_CXX_COMPILER_ID}","AppleClang">:-Wl,-weak_reference_mismatches,weak>>) $<$<CONFIG:Release>:$<$<STREQUAL:"${CMAKE_CXX_COMPILER_ID}","AppleClang">:-Wl,-weak_reference_mismatches,weak>>)
endif() endif()

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,46 +1,46 @@
# ============================================================================== # ==============================================================================
# #
# This file is part of the JUCE framework. # This file is part of the JUCE framework.
# Copyright (c) Raw Material Software Limited # Copyright (c) Raw Material Software Limited
# #
# JUCE is an open source framework subject to commercial or open source # JUCE is an open source framework subject to commercial or open source
# licensing. # licensing.
# #
# By downloading, installing, or using the JUCE framework, or combining the # By downloading, installing, or using the JUCE framework, or combining the
# JUCE framework with any other source code, object code, content or any other # JUCE framework with any other source code, object code, content or any other
# copyrightable work, you agree to the terms of the JUCE End User Licence # copyrightable work, you agree to the terms of the JUCE End User Licence
# Agreement, and all incorporated terms including the JUCE Privacy Policy and # Agreement, and all incorporated terms including the JUCE Privacy Policy and
# the JUCE Website Terms of Service, as applicable, which will bind you. If you # the JUCE Website Terms of Service, as applicable, which will bind you. If you
# do not agree to the terms of these agreements, we will not license the JUCE # do not agree to the terms of these agreements, we will not license the JUCE
# framework to you, and you must discontinue the installation or download # framework to you, and you must discontinue the installation or download
# process and cease use of the JUCE framework. # process and cease use of the JUCE framework.
# #
# JUCE End User Licence Agreement: https://juce.com/legal/juce-8-licence/ # JUCE End User Licence Agreement: https://juce.com/legal/juce-8-licence/
# JUCE Privacy Policy: https://juce.com/juce-privacy-policy # JUCE Privacy Policy: https://juce.com/juce-privacy-policy
# JUCE Website Terms of Service: https://juce.com/juce-website-terms-of-service/ # JUCE Website Terms of Service: https://juce.com/juce-website-terms-of-service/
# #
# Or: # Or:
# #
# You may also use this code under the terms of the AGPLv3: # You may also use this code under the terms of the AGPLv3:
# https://www.gnu.org/licenses/agpl-3.0.en.html # https://www.gnu.org/licenses/agpl-3.0.en.html
# #
# THE JUCE FRAMEWORK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL # THE JUCE FRAMEWORK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL
# WARRANTIES, WHETHER EXPRESSED OR IMPLIED, INCLUDING WARRANTY OF # WARRANTIES, WHETHER EXPRESSED OR IMPLIED, INCLUDING WARRANTY OF
# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED. # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED.
# #
# ============================================================================== # ==============================================================================
find_program(JUCE_XCRUN xcrun) find_program(JUCE_XCRUN xcrun)
if(NOT JUCE_XCRUN) if(NOT JUCE_XCRUN)
return() return()
endif() endif()
execute_process( execute_process(
COMMAND "${JUCE_XCRUN}" codesign --verify "${src}" COMMAND "${JUCE_XCRUN}" codesign --verify "${src}"
RESULT_VARIABLE result) RESULT_VARIABLE result)
if(result) if(result)
message(STATUS "Replacing invalid signature with ad-hoc signature") message(STATUS "Replacing invalid signature with ad-hoc signature")
execute_process(COMMAND "${JUCE_XCRUN}" codesign -f -s - "${src}") execute_process(COMMAND "${JUCE_XCRUN}" codesign -f -s - "${src}")
endif() endif()

View file

@ -1,45 +1,45 @@
# ============================================================================== # ==============================================================================
# #
# This file is part of the JUCE framework. # This file is part of the JUCE framework.
# Copyright (c) Raw Material Software Limited # Copyright (c) Raw Material Software Limited
# #
# JUCE is an open source framework subject to commercial or open source # JUCE is an open source framework subject to commercial or open source
# licensing. # licensing.
# #
# By downloading, installing, or using the JUCE framework, or combining the # By downloading, installing, or using the JUCE framework, or combining the
# JUCE framework with any other source code, object code, content or any other # JUCE framework with any other source code, object code, content or any other
# copyrightable work, you agree to the terms of the JUCE End User Licence # copyrightable work, you agree to the terms of the JUCE End User Licence
# Agreement, and all incorporated terms including the JUCE Privacy Policy and # Agreement, and all incorporated terms including the JUCE Privacy Policy and
# the JUCE Website Terms of Service, as applicable, which will bind you. If you # the JUCE Website Terms of Service, as applicable, which will bind you. If you
# do not agree to the terms of these agreements, we will not license the JUCE # do not agree to the terms of these agreements, we will not license the JUCE
# framework to you, and you must discontinue the installation or download # framework to you, and you must discontinue the installation or download
# process and cease use of the JUCE framework. # process and cease use of the JUCE framework.
# #
# JUCE End User Licence Agreement: https://juce.com/legal/juce-8-licence/ # JUCE End User Licence Agreement: https://juce.com/legal/juce-8-licence/
# JUCE Privacy Policy: https://juce.com/juce-privacy-policy # JUCE Privacy Policy: https://juce.com/juce-privacy-policy
# JUCE Website Terms of Service: https://juce.com/juce-website-terms-of-service/ # JUCE Website Terms of Service: https://juce.com/juce-website-terms-of-service/
# #
# Or: # Or:
# #
# You may also use this code under the terms of the AGPLv3: # You may also use this code under the terms of the AGPLv3:
# https://www.gnu.org/licenses/agpl-3.0.en.html # https://www.gnu.org/licenses/agpl-3.0.en.html
# #
# THE JUCE FRAMEWORK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL # THE JUCE FRAMEWORK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL
# WARRANTIES, WHETHER EXPRESSED OR IMPLIED, INCLUDING WARRANTY OF # WARRANTIES, WHETHER EXPRESSED OR IMPLIED, INCLUDING WARRANTY OF
# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED. # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED.
# #
# ============================================================================== # ==============================================================================
if(NOT EXISTS "${src}") if(NOT EXISTS "${src}")
message(STATUS "Unable to copy ${src} as it does not exist") message(STATUS "Unable to copy ${src} as it does not exist")
return() return()
endif() endif()
get_filename_component(name "${src}" NAME) get_filename_component(name "${src}" NAME)
if(EXISTS "${dest}/${name}") if(EXISTS "${dest}/${name}")
message(STATUS "Destination ${dest}/${name} exists, overwriting") message(STATUS "Destination ${dest}/${name} exists, overwriting")
file(REMOVE_RECURSE "${dest}/${name}") file(REMOVE_RECURSE "${dest}/${name}")
endif() endif()
file(INSTALL ${src} DESTINATION ${dest} USE_SOURCE_PERMISSIONS) file(INSTALL ${src} DESTINATION ${dest} USE_SOURCE_PERMISSIONS)

View file

@ -1,36 +1,35 @@
# ============================================================================== # ==============================================================================
# #
# This file is part of the JUCE framework. # This file is part of the JUCE framework.
# Copyright (c) Raw Material Software Limited # Copyright (c) Raw Material Software Limited
# #
# JUCE is an open source framework subject to commercial or open source # JUCE is an open source framework subject to commercial or open source
# licensing. # licensing.
# #
# By downloading, installing, or using the JUCE framework, or combining the # By downloading, installing, or using the JUCE framework, or combining the
# JUCE framework with any other source code, object code, content or any other # JUCE framework with any other source code, object code, content or any other
# copyrightable work, you agree to the terms of the JUCE End User Licence # copyrightable work, you agree to the terms of the JUCE End User Licence
# Agreement, and all incorporated terms including the JUCE Privacy Policy and # Agreement, and all incorporated terms including the JUCE Privacy Policy and
# the JUCE Website Terms of Service, as applicable, which will bind you. If you # the JUCE Website Terms of Service, as applicable, which will bind you. If you
# do not agree to the terms of these agreements, we will not license the JUCE # do not agree to the terms of these agreements, we will not license the JUCE
# framework to you, and you must discontinue the installation or download # framework to you, and you must discontinue the installation or download
# process and cease use of the JUCE framework. # process and cease use of the JUCE framework.
# #
# JUCE End User Licence Agreement: https://juce.com/legal/juce-8-licence/ # JUCE End User Licence Agreement: https://juce.com/legal/juce-8-licence/
# JUCE Privacy Policy: https://juce.com/juce-privacy-policy # JUCE Privacy Policy: https://juce.com/juce-privacy-policy
# JUCE Website Terms of Service: https://juce.com/juce-website-terms-of-service/ # JUCE Website Terms of Service: https://juce.com/juce-website-terms-of-service/
# #
# Or: # Or:
# #
# You may also use this code under the terms of the AGPLv3: # You may also use this code under the terms of the AGPLv3:
# https://www.gnu.org/licenses/agpl-3.0.en.html # https://www.gnu.org/licenses/agpl-3.0.en.html
# #
# THE JUCE FRAMEWORK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL # THE JUCE FRAMEWORK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL
# WARRANTIES, WHETHER EXPRESSED OR IMPLIED, INCLUDING WARRANTY OF # WARRANTIES, WHETHER EXPRESSED OR IMPLIED, INCLUDING WARRANTY OF
# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED. # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED.
# #
# ============================================================================== # ==============================================================================
juce_add_module(juce_build_tools ALIAS_NAMESPACE juce) juce_add_module(juce_build_tools ALIAS_NAMESPACE juce)
add_subdirectory(juceaide) add_subdirectory(juceaide)

View file

@ -1,176 +1,176 @@
# ============================================================================== # ==============================================================================
# #
# This file is part of the JUCE framework. # This file is part of the JUCE framework.
# Copyright (c) Raw Material Software Limited # Copyright (c) Raw Material Software Limited
# #
# JUCE is an open source framework subject to commercial or open source # JUCE is an open source framework subject to commercial or open source
# licensing. # licensing.
# #
# By downloading, installing, or using the JUCE framework, or combining the # By downloading, installing, or using the JUCE framework, or combining the
# JUCE framework with any other source code, object code, content or any other # JUCE framework with any other source code, object code, content or any other
# copyrightable work, you agree to the terms of the JUCE End User Licence # copyrightable work, you agree to the terms of the JUCE End User Licence
# Agreement, and all incorporated terms including the JUCE Privacy Policy and # Agreement, and all incorporated terms including the JUCE Privacy Policy and
# the JUCE Website Terms of Service, as applicable, which will bind you. If you # the JUCE Website Terms of Service, as applicable, which will bind you. If you
# do not agree to the terms of these agreements, we will not license the JUCE # do not agree to the terms of these agreements, we will not license the JUCE
# framework to you, and you must discontinue the installation or download # framework to you, and you must discontinue the installation or download
# process and cease use of the JUCE framework. # process and cease use of the JUCE framework.
# #
# JUCE End User Licence Agreement: https://juce.com/legal/juce-8-licence/ # JUCE End User Licence Agreement: https://juce.com/legal/juce-8-licence/
# JUCE Privacy Policy: https://juce.com/juce-privacy-policy # JUCE Privacy Policy: https://juce.com/juce-privacy-policy
# JUCE Website Terms of Service: https://juce.com/juce-website-terms-of-service/ # JUCE Website Terms of Service: https://juce.com/juce-website-terms-of-service/
# #
# Or: # Or:
# #
# You may also use this code under the terms of the AGPLv3: # You may also use this code under the terms of the AGPLv3:
# https://www.gnu.org/licenses/agpl-3.0.en.html # https://www.gnu.org/licenses/agpl-3.0.en.html
# #
# THE JUCE FRAMEWORK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL # THE JUCE FRAMEWORK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL
# WARRANTIES, WHETHER EXPRESSED OR IMPLIED, INCLUDING WARRANTY OF # WARRANTIES, WHETHER EXPRESSED OR IMPLIED, INCLUDING WARRANTY OF
# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED. # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED.
# #
# ============================================================================== # ==============================================================================
# The juceaide program generates intermediate build files including BinaryData sources, icons, and # The juceaide program generates intermediate build files including BinaryData sources, icons, and
# plists. To ensure that we always build it for the host system, and not for, say, a device or # plists. To ensure that we always build it for the host system, and not for, say, a device or
# simulator if we're targeting iOS or Android, we reinvoke cmake here and build juceaide during the # simulator if we're targeting iOS or Android, we reinvoke cmake here and build juceaide during the
# configuration stage of the outer project. # configuration stage of the outer project.
if(JUCE_BUILD_HELPER_TOOLS) if(JUCE_BUILD_HELPER_TOOLS)
# Build the tool for the current system # Build the tool for the current system
juce_add_console_app(juceaide _NO_RESOURCERC) juce_add_console_app(juceaide _NO_RESOURCERC)
target_sources(juceaide PRIVATE Main.cpp) target_sources(juceaide PRIVATE Main.cpp)
target_compile_definitions(juceaide PRIVATE target_compile_definitions(juceaide PRIVATE
JUCE_DISABLE_JUCE_VERSION_PRINTING=1 JUCE_DISABLE_JUCE_VERSION_PRINTING=1
JUCE_USE_CURL=0 JUCE_USE_CURL=0
# This is a temporary workaround to allow builds to complete on Xcode 15. # This is a temporary workaround to allow builds to complete on Xcode 15.
# Add -Wl,-ld_classic to the OTHER_LDFLAGS build setting if you need to # Add -Wl,-ld_classic to the OTHER_LDFLAGS build setting if you need to
# deploy to older versions of macOS. # deploy to older versions of macOS.
JUCE_SILENCE_XCODE_15_LINKER_WARNING=1) JUCE_SILENCE_XCODE_15_LINKER_WARNING=1)
target_link_libraries(juceaide PRIVATE target_link_libraries(juceaide PRIVATE
juce::juce_build_tools juce::juce_build_tools
juce::juce_recommended_config_flags juce::juce_recommended_config_flags
juce::juce_recommended_lto_flags juce::juce_recommended_lto_flags
juce::juce_recommended_warning_flags) juce::juce_recommended_warning_flags)
set_target_properties(juceaide PROPERTIES set_target_properties(juceaide PROPERTIES
MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>") MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
export(TARGETS juceaide export(TARGETS juceaide
NAMESPACE juce_tools:: NAMESPACE juce_tools::
FILE "${JUCE_BINARY_DIR}/JUCEToolsExport.cmake") FILE "${JUCE_BINARY_DIR}/JUCEToolsExport.cmake")
else() else()
message(STATUS "Configuring juceaide") message(STATUS "Configuring juceaide")
if(CMAKE_CROSSCOMPILING) if(CMAKE_CROSSCOMPILING)
unset(ENV{ADDR2LINE}) unset(ENV{ADDR2LINE})
unset(ENV{AR}) unset(ENV{AR})
unset(ENV{ASM}) unset(ENV{ASM})
unset(ENV{AS}) unset(ENV{AS})
unset(ENV{CC}) unset(ENV{CC})
unset(ENV{CPP}) unset(ENV{CPP})
unset(ENV{CXXFILT}) unset(ENV{CXXFILT})
unset(ENV{CXX}) unset(ENV{CXX})
unset(ENV{DLLTOOL}) unset(ENV{DLLTOOL})
unset(ENV{DLLWRAP}) unset(ENV{DLLWRAP})
unset(ENV{ELFEDIT}) unset(ENV{ELFEDIT})
unset(ENV{GCC}) unset(ENV{GCC})
unset(ENV{GCOV_DUMP}) unset(ENV{GCOV_DUMP})
unset(ENV{GCOV_TOOL}) unset(ENV{GCOV_TOOL})
unset(ENV{GCOV}) unset(ENV{GCOV})
unset(ENV{GPROF}) unset(ENV{GPROF})
unset(ENV{GXX}) unset(ENV{GXX})
unset(ENV{LDFLAGS}) unset(ENV{LDFLAGS})
unset(ENV{LD_BFD}) unset(ENV{LD_BFD})
unset(ENV{LD}) unset(ENV{LD})
unset(ENV{LTO_DUMP}) unset(ENV{LTO_DUMP})
unset(ENV{NM}) unset(ENV{NM})
unset(ENV{OBJCOPY}) unset(ENV{OBJCOPY})
unset(ENV{OBJDUMP}) unset(ENV{OBJDUMP})
unset(ENV{PKG_CONFIG_LIBDIR}) unset(ENV{PKG_CONFIG_LIBDIR})
unset(ENV{PKG_CONFIG}) unset(ENV{PKG_CONFIG})
unset(ENV{RANLIB}) unset(ENV{RANLIB})
unset(ENV{RC}) unset(ENV{RC})
unset(ENV{READELF}) unset(ENV{READELF})
unset(ENV{SIZE}) unset(ENV{SIZE})
unset(ENV{STRINGS}) unset(ENV{STRINGS})
unset(ENV{STRIP}) unset(ENV{STRIP})
unset(ENV{WIDL}) unset(ENV{WIDL})
unset(ENV{WINDMC}) unset(ENV{WINDMC})
unset(ENV{WINDRES}) unset(ENV{WINDRES})
if(DEFINED ENV{PATH_ORIG}) if(DEFINED ENV{PATH_ORIG})
set(ENV{PATH} "$ENV{PATH_ORIG}") set(ENV{PATH} "$ENV{PATH_ORIG}")
endif() endif()
endif() endif()
# Generator platform is only supported on specific generators # Generator platform is only supported on specific generators
if(CMAKE_GENERATOR MATCHES "^Visual Studio.*$") if(CMAKE_GENERATOR MATCHES "^Visual Studio.*$")
set(ENV{CMAKE_GENERATOR_PLATFORM} "${CMAKE_HOST_SYSTEM_PROCESSOR}") set(ENV{CMAKE_GENERATOR_PLATFORM} "${CMAKE_HOST_SYSTEM_PROCESSOR}")
endif() endif()
# Looks like we're bootstrapping, reinvoke CMake # Looks like we're bootstrapping, reinvoke CMake
execute_process(COMMAND "${CMAKE_COMMAND}" execute_process(COMMAND "${CMAKE_COMMAND}"
"." "."
"-B${JUCE_BINARY_DIR}/tools" "-B${JUCE_BINARY_DIR}/tools"
"-G${CMAKE_GENERATOR}" "-G${CMAKE_GENERATOR}"
"-DCMAKE_MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM}" "-DCMAKE_MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM}"
"-DCMAKE_BUILD_TYPE=Debug" "-DCMAKE_BUILD_TYPE=Debug"
"-DJUCE_BUILD_HELPER_TOOLS=ON" "-DJUCE_BUILD_HELPER_TOOLS=ON"
"-DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}" "-DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}"
WORKING_DIRECTORY "${JUCE_SOURCE_DIR}" WORKING_DIRECTORY "${JUCE_SOURCE_DIR}"
OUTPUT_VARIABLE command_output OUTPUT_VARIABLE command_output
ERROR_VARIABLE command_output ERROR_VARIABLE command_output
RESULT_VARIABLE result_variable) RESULT_VARIABLE result_variable)
if(result_variable) if(result_variable)
message(FATAL_ERROR "Failed to configure juceaide\n${command_output}") message(FATAL_ERROR "Failed to configure juceaide\n${command_output}")
endif() endif()
message(STATUS "Building juceaide") message(STATUS "Building juceaide")
execute_process(COMMAND "${CMAKE_COMMAND}" execute_process(COMMAND "${CMAKE_COMMAND}"
--build "${JUCE_BINARY_DIR}/tools" --build "${JUCE_BINARY_DIR}/tools"
--config Debug --config Debug
OUTPUT_VARIABLE command_output OUTPUT_VARIABLE command_output
ERROR_VARIABLE command_output ERROR_VARIABLE command_output
RESULT_VARIABLE result_variable) RESULT_VARIABLE result_variable)
if(result_variable) if(result_variable)
message(FATAL_ERROR "Failed to build juceaide\n${command_output}") message(FATAL_ERROR "Failed to build juceaide\n${command_output}")
endif() endif()
message(STATUS "Exporting juceaide") message(STATUS "Exporting juceaide")
# This will be generated by the recursive invocation of CMake (above) # This will be generated by the recursive invocation of CMake (above)
include("${JUCE_BINARY_DIR}/tools/JUCEToolsExport.cmake") include("${JUCE_BINARY_DIR}/tools/JUCEToolsExport.cmake")
add_executable(juceaide IMPORTED GLOBAL) add_executable(juceaide IMPORTED GLOBAL)
get_target_property(imported_location juce_tools::juceaide IMPORTED_LOCATION_DEBUG) get_target_property(imported_location juce_tools::juceaide IMPORTED_LOCATION_DEBUG)
set_target_properties(juceaide PROPERTIES IMPORTED_LOCATION "${imported_location}") set_target_properties(juceaide PROPERTIES IMPORTED_LOCATION "${imported_location}")
add_executable(juce::juceaide ALIAS juceaide) add_executable(juce::juceaide ALIAS juceaide)
set(JUCE_TOOL_INSTALL_DIR "bin/JUCE-${JUCE_VERSION}" CACHE STRING set(JUCE_TOOL_INSTALL_DIR "bin/JUCE-${JUCE_VERSION}" CACHE STRING
"The location, relative to the install prefix, where juceaide will be installed") "The location, relative to the install prefix, where juceaide will be installed")
install(PROGRAMS "${imported_location}" DESTINATION "${JUCE_TOOL_INSTALL_DIR}") install(PROGRAMS "${imported_location}" DESTINATION "${JUCE_TOOL_INSTALL_DIR}")
get_filename_component(binary_name "${imported_location}" NAME) get_filename_component(binary_name "${imported_location}" NAME)
set(JUCE_JUCEAIDE_NAME "${binary_name}" CACHE INTERNAL "The name of the juceaide program") set(JUCE_JUCEAIDE_NAME "${binary_name}" CACHE INTERNAL "The name of the juceaide program")
message(STATUS "Testing juceaide") message(STATUS "Testing juceaide")
execute_process(COMMAND "${imported_location}" version execute_process(COMMAND "${imported_location}" version
RESULT_VARIABLE result_variable RESULT_VARIABLE result_variable
OUTPUT_VARIABLE output OUTPUT_VARIABLE output
ERROR_VARIABLE output) ERROR_VARIABLE output)
if(result_variable) if(result_variable)
message(FATAL_ERROR "Testing juceaide failed:\noutput: ${output}") message(FATAL_ERROR "Testing juceaide failed:\noutput: ${output}")
endif() endif()
message(STATUS "Finished setting up juceaide") message(STATUS "Finished setting up juceaide")
endif() endif()

View file

@ -1,39 +1,39 @@
# ============================================================================== # ==============================================================================
# #
# This file is part of the JUCE framework. # This file is part of the JUCE framework.
# Copyright (c) Raw Material Software Limited # Copyright (c) Raw Material Software Limited
# #
# JUCE is an open source framework subject to commercial or open source # JUCE is an open source framework subject to commercial or open source
# licensing. # licensing.
# #
# By downloading, installing, or using the JUCE framework, or combining the # By downloading, installing, or using the JUCE framework, or combining the
# JUCE framework with any other source code, object code, content or any other # JUCE framework with any other source code, object code, content or any other
# copyrightable work, you agree to the terms of the JUCE End User Licence # copyrightable work, you agree to the terms of the JUCE End User Licence
# Agreement, and all incorporated terms including the JUCE Privacy Policy and # Agreement, and all incorporated terms including the JUCE Privacy Policy and
# the JUCE Website Terms of Service, as applicable, which will bind you. If you # the JUCE Website Terms of Service, as applicable, which will bind you. If you
# do not agree to the terms of these agreements, we will not license the JUCE # do not agree to the terms of these agreements, we will not license the JUCE
# framework to you, and you must discontinue the installation or download # framework to you, and you must discontinue the installation or download
# process and cease use of the JUCE framework. # process and cease use of the JUCE framework.
# #
# JUCE End User Licence Agreement: https://juce.com/legal/juce-8-licence/ # JUCE End User Licence Agreement: https://juce.com/legal/juce-8-licence/
# JUCE Privacy Policy: https://juce.com/juce-privacy-policy # JUCE Privacy Policy: https://juce.com/juce-privacy-policy
# JUCE Website Terms of Service: https://juce.com/juce-website-terms-of-service/ # JUCE Website Terms of Service: https://juce.com/juce-website-terms-of-service/
# #
# Or: # Or:
# #
# You may also use this code under the terms of the AGPLv3: # You may also use this code under the terms of the AGPLv3:
# https://www.gnu.org/licenses/agpl-3.0.en.html # https://www.gnu.org/licenses/agpl-3.0.en.html
# #
# THE JUCE FRAMEWORK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL # THE JUCE FRAMEWORK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL
# WARRANTIES, WHETHER EXPRESSED OR IMPLIED, INCLUDING WARRANTY OF # WARRANTIES, WHETHER EXPRESSED OR IMPLIED, INCLUDING WARRANTY OF
# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED. # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED.
# #
# ============================================================================== # ==============================================================================
set(CMAKE_FOLDER extras) set(CMAKE_FOLDER extras)
add_subdirectory(AudioPerformanceTest) add_subdirectory(AudioPerformanceTest)
add_subdirectory(AudioPluginHost) add_subdirectory(AudioPluginHost)
add_subdirectory(BinaryBuilder) add_subdirectory(BinaryBuilder)
add_subdirectory(NetworkGraphicsDemo) add_subdirectory(NetworkGraphicsDemo)
add_subdirectory(Projucer) add_subdirectory(Projucer)
add_subdirectory(UnitTestRunner) add_subdirectory(UnitTestRunner)

View file

@ -1,49 +1,49 @@
# ============================================================================== # ==============================================================================
# #
# This file is part of the JUCE framework. # This file is part of the JUCE framework.
# Copyright (c) Raw Material Software Limited # Copyright (c) Raw Material Software Limited
# #
# JUCE is an open source framework subject to commercial or open source # JUCE is an open source framework subject to commercial or open source
# licensing. # licensing.
# #
# By downloading, installing, or using the JUCE framework, or combining the # By downloading, installing, or using the JUCE framework, or combining the
# JUCE framework with any other source code, object code, content or any other # JUCE framework with any other source code, object code, content or any other
# copyrightable work, you agree to the terms of the JUCE End User Licence # copyrightable work, you agree to the terms of the JUCE End User Licence
# Agreement, and all incorporated terms including the JUCE Privacy Policy and # Agreement, and all incorporated terms including the JUCE Privacy Policy and
# the JUCE Website Terms of Service, as applicable, which will bind you. If you # the JUCE Website Terms of Service, as applicable, which will bind you. If you
# do not agree to the terms of these agreements, we will not license the JUCE # do not agree to the terms of these agreements, we will not license the JUCE
# framework to you, and you must discontinue the installation or download # framework to you, and you must discontinue the installation or download
# process and cease use of the JUCE framework. # process and cease use of the JUCE framework.
# #
# JUCE End User Licence Agreement: https://juce.com/legal/juce-8-licence/ # JUCE End User Licence Agreement: https://juce.com/legal/juce-8-licence/
# JUCE Privacy Policy: https://juce.com/juce-privacy-policy # JUCE Privacy Policy: https://juce.com/juce-privacy-policy
# JUCE Website Terms of Service: https://juce.com/juce-website-terms-of-service/ # JUCE Website Terms of Service: https://juce.com/juce-website-terms-of-service/
# #
# Or: # Or:
# #
# You may also use this code under the terms of the AGPLv3: # You may also use this code under the terms of the AGPLv3:
# https://www.gnu.org/licenses/agpl-3.0.en.html # https://www.gnu.org/licenses/agpl-3.0.en.html
# #
# THE JUCE FRAMEWORK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL # THE JUCE FRAMEWORK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL
# WARRANTIES, WHETHER EXPRESSED OR IMPLIED, INCLUDING WARRANTY OF # WARRANTIES, WHETHER EXPRESSED OR IMPLIED, INCLUDING WARRANTY OF
# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED. # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED.
# #
# ============================================================================== # ==============================================================================
juce_add_gui_app(NetworkGraphicsDemo) juce_add_gui_app(NetworkGraphicsDemo)
juce_generate_juce_header(NetworkGraphicsDemo) juce_generate_juce_header(NetworkGraphicsDemo)
target_sources(NetworkGraphicsDemo PRIVATE Source/Main.cpp) target_sources(NetworkGraphicsDemo PRIVATE Source/Main.cpp)
target_compile_definitions(NetworkGraphicsDemo PRIVATE target_compile_definitions(NetworkGraphicsDemo PRIVATE
JUCE_USE_CURL=0 JUCE_WEB_BROWSER=0) JUCE_USE_CURL=0 JUCE_WEB_BROWSER=0)
target_link_libraries(NetworkGraphicsDemo PRIVATE target_link_libraries(NetworkGraphicsDemo PRIVATE
juce::juce_audio_utils juce::juce_audio_utils
juce::juce_cryptography juce::juce_cryptography
juce::juce_opengl juce::juce_opengl
juce::juce_osc juce::juce_osc
juce::juce_recommended_config_flags juce::juce_recommended_config_flags
juce::juce_recommended_lto_flags juce::juce_recommended_lto_flags
juce::juce_recommended_warning_flags) juce::juce_recommended_warning_flags)

View file

@ -1,162 +1,162 @@
# ============================================================================== # ==============================================================================
# #
# This file is part of the JUCE framework. # This file is part of the JUCE framework.
# Copyright (c) Raw Material Software Limited # Copyright (c) Raw Material Software Limited
# #
# JUCE is an open source framework subject to commercial or open source # JUCE is an open source framework subject to commercial or open source
# licensing. # licensing.
# #
# By downloading, installing, or using the JUCE framework, or combining the # By downloading, installing, or using the JUCE framework, or combining the
# JUCE framework with any other source code, object code, content or any other # JUCE framework with any other source code, object code, content or any other
# copyrightable work, you agree to the terms of the JUCE End User Licence # copyrightable work, you agree to the terms of the JUCE End User Licence
# Agreement, and all incorporated terms including the JUCE Privacy Policy and # Agreement, and all incorporated terms including the JUCE Privacy Policy and
# the JUCE Website Terms of Service, as applicable, which will bind you. If you # the JUCE Website Terms of Service, as applicable, which will bind you. If you
# do not agree to the terms of these agreements, we will not license the JUCE # do not agree to the terms of these agreements, we will not license the JUCE
# framework to you, and you must discontinue the installation or download # framework to you, and you must discontinue the installation or download
# process and cease use of the JUCE framework. # process and cease use of the JUCE framework.
# #
# JUCE End User Licence Agreement: https://juce.com/legal/juce-8-licence/ # JUCE End User Licence Agreement: https://juce.com/legal/juce-8-licence/
# JUCE Privacy Policy: https://juce.com/juce-privacy-policy # JUCE Privacy Policy: https://juce.com/juce-privacy-policy
# JUCE Website Terms of Service: https://juce.com/juce-website-terms-of-service/ # JUCE Website Terms of Service: https://juce.com/juce-website-terms-of-service/
# #
# Or: # Or:
# #
# You may also use this code under the terms of the AGPLv3: # You may also use this code under the terms of the AGPLv3:
# https://www.gnu.org/licenses/agpl-3.0.en.html # https://www.gnu.org/licenses/agpl-3.0.en.html
# #
# THE JUCE FRAMEWORK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL # THE JUCE FRAMEWORK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL
# WARRANTIES, WHETHER EXPRESSED OR IMPLIED, INCLUDING WARRANTY OF # WARRANTIES, WHETHER EXPRESSED OR IMPLIED, INCLUDING WARRANTY OF
# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED. # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED.
# #
# ============================================================================== # ==============================================================================
juce_add_gui_app(Projucer juce_add_gui_app(Projucer
BUNDLE_ID com.juce.theprojucer BUNDLE_ID com.juce.theprojucer
ICON_BIG ${CMAKE_CURRENT_SOURCE_DIR}/Source/BinaryData/Icons/juce_icon.png ICON_BIG ${CMAKE_CURRENT_SOURCE_DIR}/Source/BinaryData/Icons/juce_icon.png
DOCUMENT_EXTENSIONS jucer DOCUMENT_EXTENSIONS jucer
NEEDS_CURL TRUE NEEDS_CURL TRUE
NEEDS_WEB_BROWSER TRUE) NEEDS_WEB_BROWSER TRUE)
juce_generate_juce_header(Projucer) juce_generate_juce_header(Projucer)
target_sources(Projucer PRIVATE target_sources(Projucer PRIVATE
Source/Application/jucer_AutoUpdater.cpp Source/Application/jucer_AutoUpdater.cpp
Source/Application/jucer_CommandLine.cpp Source/Application/jucer_CommandLine.cpp
Source/Application/jucer_Main.cpp Source/Application/jucer_Main.cpp
Source/Application/jucer_MainWindow.cpp Source/Application/jucer_MainWindow.cpp
Source/Application/StartPage/jucer_StartPageComponent.cpp Source/Application/StartPage/jucer_StartPageComponent.cpp
Source/Application/StartPage/jucer_NewProjectWizard.cpp Source/Application/StartPage/jucer_NewProjectWizard.cpp
Source/CodeEditor/jucer_DocumentEditorComponent.cpp Source/CodeEditor/jucer_DocumentEditorComponent.cpp
Source/CodeEditor/jucer_OpenDocumentManager.cpp Source/CodeEditor/jucer_OpenDocumentManager.cpp
Source/CodeEditor/jucer_SourceCodeEditor.cpp Source/CodeEditor/jucer_SourceCodeEditor.cpp
Source/Project/Modules/jucer_Modules.cpp Source/Project/Modules/jucer_Modules.cpp
Source/Project/UI/jucer_HeaderComponent.cpp Source/Project/UI/jucer_HeaderComponent.cpp
Source/Project/jucer_Project.cpp Source/Project/jucer_Project.cpp
Source/ProjectSaving/jucer_ProjectExporter.cpp Source/ProjectSaving/jucer_ProjectExporter.cpp
Source/ProjectSaving/jucer_ProjectSaver.cpp Source/ProjectSaving/jucer_ProjectSaver.cpp
Source/ProjectSaving/jucer_ResourceFile.cpp Source/ProjectSaving/jucer_ResourceFile.cpp
Source/Settings/jucer_AppearanceSettings.cpp Source/Settings/jucer_AppearanceSettings.cpp
Source/Settings/jucer_StoredSettings.cpp Source/Settings/jucer_StoredSettings.cpp
Source/Utility/Helpers/jucer_CodeHelpers.cpp Source/Utility/Helpers/jucer_CodeHelpers.cpp
Source/Utility/Helpers/jucer_FileHelpers.cpp Source/Utility/Helpers/jucer_FileHelpers.cpp
Source/Utility/Helpers/jucer_MiscUtilities.cpp Source/Utility/Helpers/jucer_MiscUtilities.cpp
Source/Utility/Helpers/jucer_NewFileWizard.cpp Source/Utility/Helpers/jucer_NewFileWizard.cpp
Source/Utility/Helpers/jucer_VersionInfo.cpp Source/Utility/Helpers/jucer_VersionInfo.cpp
Source/Utility/PIPs/jucer_PIPGenerator.cpp Source/Utility/PIPs/jucer_PIPGenerator.cpp
Source/Utility/UI/jucer_Icons.cpp Source/Utility/UI/jucer_Icons.cpp
Source/Utility/UI/jucer_JucerTreeViewBase.cpp Source/Utility/UI/jucer_JucerTreeViewBase.cpp
Source/Utility/UI/jucer_ProjucerLookAndFeel.cpp Source/Utility/UI/jucer_ProjucerLookAndFeel.cpp
Source/Utility/UI/jucer_SlidingPanelComponent.cpp) Source/Utility/UI/jucer_SlidingPanelComponent.cpp)
target_compile_definitions(Projucer PRIVATE target_compile_definitions(Projucer PRIVATE
JUCE_ALLOW_STATIC_NULL_VARIABLES=0 JUCE_ALLOW_STATIC_NULL_VARIABLES=0
JUCE_LOAD_CURL_SYMBOLS_LAZILY=1 JUCE_LOAD_CURL_SYMBOLS_LAZILY=1
JUCE_LOG_ASSERTIONS=1 JUCE_LOG_ASSERTIONS=1
JUCE_STRICT_REFCOUNTEDPOINTER=1 JUCE_STRICT_REFCOUNTEDPOINTER=1
JUCE_USE_CURL=1 JUCE_USE_CURL=1
JUCE_WEB_BROWSER=0 JUCE_WEB_BROWSER=0
# This is a temporary workaround to allow builds to complete on Xcode 15. # This is a temporary workaround to allow builds to complete on Xcode 15.
# Add -Wl,-ld_classic to the OTHER_LDFLAGS build setting if you need to # Add -Wl,-ld_classic to the OTHER_LDFLAGS build setting if you need to
# deploy to older versions of macOS. # deploy to older versions of macOS.
JUCE_SILENCE_XCODE_15_LINKER_WARNING=1) JUCE_SILENCE_XCODE_15_LINKER_WARNING=1)
juce_add_binary_data(ProjucerData SOURCES juce_add_binary_data(ProjucerData SOURCES
Source/BinaryData/Icons/background_logo.svg Source/BinaryData/Icons/background_logo.svg
Source/BinaryData/Icons/export_android.svg Source/BinaryData/Icons/export_android.svg
Source/BinaryData/Icons/export_linux.svg Source/BinaryData/Icons/export_linux.svg
Source/BinaryData/Icons/export_visualStudio.svg Source/BinaryData/Icons/export_visualStudio.svg
Source/BinaryData/Icons/export_xcode.svg Source/BinaryData/Icons/export_xcode.svg
Source/BinaryData/Icons/juce_icon.png Source/BinaryData/Icons/juce_icon.png
Source/BinaryData/Icons/wizard_AnimatedApp.svg Source/BinaryData/Icons/wizard_AnimatedApp.svg
Source/BinaryData/Icons/wizard_AudioApp.svg Source/BinaryData/Icons/wizard_AudioApp.svg
Source/BinaryData/Icons/wizard_AudioPlugin.svg Source/BinaryData/Icons/wizard_AudioPlugin.svg
Source/BinaryData/Icons/wizard_ConsoleApp.svg Source/BinaryData/Icons/wizard_ConsoleApp.svg
Source/BinaryData/Icons/wizard_DLL.svg Source/BinaryData/Icons/wizard_DLL.svg
Source/BinaryData/Icons/wizard_GUI.svg Source/BinaryData/Icons/wizard_GUI.svg
Source/BinaryData/Icons/wizard_Highlight.svg Source/BinaryData/Icons/wizard_Highlight.svg
Source/BinaryData/Icons/wizard_OpenGL.svg Source/BinaryData/Icons/wizard_OpenGL.svg
Source/BinaryData/Icons/wizard_Openfile.svg Source/BinaryData/Icons/wizard_Openfile.svg
Source/BinaryData/Icons/wizard_StaticLibrary.svg Source/BinaryData/Icons/wizard_StaticLibrary.svg
Source/BinaryData/Templates/jucer_AnimatedComponentSimpleTemplate.h Source/BinaryData/Templates/jucer_AnimatedComponentSimpleTemplate.h
Source/BinaryData/Templates/jucer_AnimatedComponentTemplate.cpp Source/BinaryData/Templates/jucer_AnimatedComponentTemplate.cpp
Source/BinaryData/Templates/jucer_AnimatedComponentTemplate.h Source/BinaryData/Templates/jucer_AnimatedComponentTemplate.h
Source/BinaryData/Templates/jucer_AudioComponentSimpleTemplate.h Source/BinaryData/Templates/jucer_AudioComponentSimpleTemplate.h
Source/BinaryData/Templates/jucer_AudioComponentTemplate.cpp Source/BinaryData/Templates/jucer_AudioComponentTemplate.cpp
Source/BinaryData/Templates/jucer_AudioComponentTemplate.h Source/BinaryData/Templates/jucer_AudioComponentTemplate.h
Source/BinaryData/Templates/jucer_AudioPluginARADocumentControllerTemplate.cpp Source/BinaryData/Templates/jucer_AudioPluginARADocumentControllerTemplate.cpp
Source/BinaryData/Templates/jucer_AudioPluginARADocumentControllerTemplate.h Source/BinaryData/Templates/jucer_AudioPluginARADocumentControllerTemplate.h
Source/BinaryData/Templates/jucer_AudioPluginARAPlaybackRendererTemplate.cpp Source/BinaryData/Templates/jucer_AudioPluginARAPlaybackRendererTemplate.cpp
Source/BinaryData/Templates/jucer_AudioPluginARAPlaybackRendererTemplate.h Source/BinaryData/Templates/jucer_AudioPluginARAPlaybackRendererTemplate.h
Source/BinaryData/Templates/jucer_AudioPluginEditorTemplate.cpp Source/BinaryData/Templates/jucer_AudioPluginEditorTemplate.cpp
Source/BinaryData/Templates/jucer_AudioPluginEditorTemplate.h Source/BinaryData/Templates/jucer_AudioPluginEditorTemplate.h
Source/BinaryData/Templates/jucer_AudioPluginARAEditorTemplate.cpp Source/BinaryData/Templates/jucer_AudioPluginARAEditorTemplate.cpp
Source/BinaryData/Templates/jucer_AudioPluginARAEditorTemplate.h Source/BinaryData/Templates/jucer_AudioPluginARAEditorTemplate.h
Source/BinaryData/Templates/jucer_AudioPluginFilterTemplate.cpp Source/BinaryData/Templates/jucer_AudioPluginFilterTemplate.cpp
Source/BinaryData/Templates/jucer_AudioPluginFilterTemplate.h Source/BinaryData/Templates/jucer_AudioPluginFilterTemplate.h
Source/BinaryData/Templates/jucer_AudioPluginARAFilterTemplate.h Source/BinaryData/Templates/jucer_AudioPluginARAFilterTemplate.h
Source/BinaryData/Templates/jucer_ComponentTemplate.cpp Source/BinaryData/Templates/jucer_ComponentTemplate.cpp
Source/BinaryData/Templates/jucer_ComponentTemplate.h Source/BinaryData/Templates/jucer_ComponentTemplate.h
Source/BinaryData/Templates/jucer_ContentCompSimpleTemplate.h Source/BinaryData/Templates/jucer_ContentCompSimpleTemplate.h
Source/BinaryData/Templates/jucer_ContentCompTemplate.cpp Source/BinaryData/Templates/jucer_ContentCompTemplate.cpp
Source/BinaryData/Templates/jucer_ContentCompTemplate.h Source/BinaryData/Templates/jucer_ContentCompTemplate.h
Source/BinaryData/Templates/jucer_InlineComponentTemplate.h Source/BinaryData/Templates/jucer_InlineComponentTemplate.h
Source/BinaryData/Templates/jucer_MainConsoleAppTemplate.cpp Source/BinaryData/Templates/jucer_MainConsoleAppTemplate.cpp
Source/BinaryData/Templates/jucer_MainTemplate_NoWindow.cpp Source/BinaryData/Templates/jucer_MainTemplate_NoWindow.cpp
Source/BinaryData/Templates/jucer_MainTemplate_Window.cpp Source/BinaryData/Templates/jucer_MainTemplate_Window.cpp
Source/BinaryData/Templates/jucer_NewComponentTemplate.cpp Source/BinaryData/Templates/jucer_NewComponentTemplate.cpp
Source/BinaryData/Templates/jucer_NewComponentTemplate.h Source/BinaryData/Templates/jucer_NewComponentTemplate.h
Source/BinaryData/Templates/jucer_NewCppFileTemplate.cpp Source/BinaryData/Templates/jucer_NewCppFileTemplate.cpp
Source/BinaryData/Templates/jucer_NewCppFileTemplate.h Source/BinaryData/Templates/jucer_NewCppFileTemplate.h
Source/BinaryData/Templates/jucer_NewInlineComponentTemplate.h Source/BinaryData/Templates/jucer_NewInlineComponentTemplate.h
Source/BinaryData/Templates/jucer_OpenGLComponentSimpleTemplate.h Source/BinaryData/Templates/jucer_OpenGLComponentSimpleTemplate.h
Source/BinaryData/Templates/jucer_OpenGLComponentTemplate.cpp Source/BinaryData/Templates/jucer_OpenGLComponentTemplate.cpp
Source/BinaryData/Templates/jucer_OpenGLComponentTemplate.h Source/BinaryData/Templates/jucer_OpenGLComponentTemplate.h
Source/BinaryData/Templates/jucer_PIPAudioProcessorTemplate.h Source/BinaryData/Templates/jucer_PIPAudioProcessorTemplate.h
Source/BinaryData/Templates/jucer_PIPTemplate.h Source/BinaryData/Templates/jucer_PIPTemplate.h
Source/BinaryData/colourscheme_dark.xml Source/BinaryData/colourscheme_dark.xml
Source/BinaryData/colourscheme_light.xml Source/BinaryData/colourscheme_light.xml
Source/BinaryData/gradle/LICENSE Source/BinaryData/gradle/LICENSE
Source/BinaryData/gradle/gradle-wrapper.jar Source/BinaryData/gradle/gradle-wrapper.jar
Source/BinaryData/gradle/gradlew Source/BinaryData/gradle/gradlew
Source/BinaryData/gradle/gradlew.bat Source/BinaryData/gradle/gradlew.bat
Source/BinaryData/juce_SimpleBinaryBuilder.cpp Source/BinaryData/juce_SimpleBinaryBuilder.cpp
../Build/CMake/JuceLV2Defines.h.in ../Build/CMake/JuceLV2Defines.h.in
../Build/CMake/LaunchScreen.storyboard ../Build/CMake/LaunchScreen.storyboard
../Build/CMake/PIPAudioProcessor.cpp.in ../Build/CMake/PIPAudioProcessor.cpp.in
../Build/CMake/PIPAudioProcessorWithARA.cpp.in ../Build/CMake/PIPAudioProcessorWithARA.cpp.in
../Build/CMake/PIPComponent.cpp.in ../Build/CMake/PIPComponent.cpp.in
../Build/CMake/PIPConsole.cpp.in ../Build/CMake/PIPConsole.cpp.in
../Build/CMake/RecentFilesMenuTemplate.nib ../Build/CMake/RecentFilesMenuTemplate.nib
../Build/CMake/UnityPluginGUIScript.cs.in ../Build/CMake/UnityPluginGUIScript.cs.in
../Build/CMake/juce_runtime_arch_detection.cpp ../Build/CMake/juce_runtime_arch_detection.cpp
../Build/CMake/juce_LinuxSubprocessHelper.cpp) ../Build/CMake/juce_LinuxSubprocessHelper.cpp)
target_link_libraries(Projucer PRIVATE target_link_libraries(Projucer PRIVATE
ProjucerData ProjucerData
juce::juce_build_tools juce::juce_build_tools
juce::juce_cryptography juce::juce_cryptography
juce::juce_gui_extra juce::juce_gui_extra
juce::juce_recommended_config_flags juce::juce_recommended_config_flags
juce::juce_recommended_lto_flags juce::juce_recommended_lto_flags
juce::juce_recommended_warning_flags) juce::juce_recommended_warning_flags)

View file

@ -1,60 +1,60 @@
# ============================================================================== # ==============================================================================
# #
# This file is part of the JUCE framework. # This file is part of the JUCE framework.
# Copyright (c) Raw Material Software Limited # Copyright (c) Raw Material Software Limited
# #
# JUCE is an open source framework subject to commercial or open source # JUCE is an open source framework subject to commercial or open source
# licensing. # licensing.
# #
# By downloading, installing, or using the JUCE framework, or combining the # By downloading, installing, or using the JUCE framework, or combining the
# JUCE framework with any other source code, object code, content or any other # JUCE framework with any other source code, object code, content or any other
# copyrightable work, you agree to the terms of the JUCE End User Licence # copyrightable work, you agree to the terms of the JUCE End User Licence
# Agreement, and all incorporated terms including the JUCE Privacy Policy and # Agreement, and all incorporated terms including the JUCE Privacy Policy and
# the JUCE Website Terms of Service, as applicable, which will bind you. If you # the JUCE Website Terms of Service, as applicable, which will bind you. If you
# do not agree to the terms of these agreements, we will not license the JUCE # do not agree to the terms of these agreements, we will not license the JUCE
# framework to you, and you must discontinue the installation or download # framework to you, and you must discontinue the installation or download
# process and cease use of the JUCE framework. # process and cease use of the JUCE framework.
# #
# JUCE End User Licence Agreement: https://juce.com/legal/juce-8-licence/ # JUCE End User Licence Agreement: https://juce.com/legal/juce-8-licence/
# JUCE Privacy Policy: https://juce.com/juce-privacy-policy # JUCE Privacy Policy: https://juce.com/juce-privacy-policy
# JUCE Website Terms of Service: https://juce.com/juce-website-terms-of-service/ # JUCE Website Terms of Service: https://juce.com/juce-website-terms-of-service/
# #
# Or: # Or:
# #
# You may also use this code under the terms of the AGPLv3: # You may also use this code under the terms of the AGPLv3:
# https://www.gnu.org/licenses/agpl-3.0.en.html # https://www.gnu.org/licenses/agpl-3.0.en.html
# #
# THE JUCE FRAMEWORK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL # THE JUCE FRAMEWORK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL
# WARRANTIES, WHETHER EXPRESSED OR IMPLIED, INCLUDING WARRANTY OF # WARRANTIES, WHETHER EXPRESSED OR IMPLIED, INCLUDING WARRANTY OF
# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED. # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED.
# #
# ============================================================================== # ==============================================================================
juce_add_console_app(UnitTestRunner) juce_add_console_app(UnitTestRunner)
juce_generate_juce_header(UnitTestRunner) juce_generate_juce_header(UnitTestRunner)
target_sources(UnitTestRunner PRIVATE Source/Main.cpp) target_sources(UnitTestRunner PRIVATE Source/Main.cpp)
target_compile_definitions(UnitTestRunner PRIVATE target_compile_definitions(UnitTestRunner PRIVATE
JUCE_PLUGINHOST_LV2=1 JUCE_PLUGINHOST_LV2=1
JUCE_PLUGINHOST_VST3=1 JUCE_PLUGINHOST_VST3=1
JUCE_UNIT_TESTS=1 JUCE_UNIT_TESTS=1
JUCE_USE_CURL=0 JUCE_USE_CURL=0
JUCE_WEB_BROWSER=0 JUCE_WEB_BROWSER=0
# This is a temporary workaround to allow builds to complete on Xcode 15. # This is a temporary workaround to allow builds to complete on Xcode 15.
# Add -Wl,-ld_classic to the OTHER_LDFLAGS build setting if you need to # Add -Wl,-ld_classic to the OTHER_LDFLAGS build setting if you need to
# deploy to older versions of macOS. # deploy to older versions of macOS.
JUCE_SILENCE_XCODE_15_LINKER_WARNING=1) JUCE_SILENCE_XCODE_15_LINKER_WARNING=1)
target_link_libraries(UnitTestRunner PRIVATE target_link_libraries(UnitTestRunner PRIVATE
juce::juce_analytics juce::juce_analytics
juce::juce_audio_utils juce::juce_audio_utils
juce::juce_dsp juce::juce_dsp
juce::juce_midi_ci juce::juce_midi_ci
juce::juce_opengl juce::juce_opengl
juce::juce_osc juce::juce_osc
juce::juce_product_unlocking juce::juce_product_unlocking
juce::juce_recommended_config_flags juce::juce_recommended_config_flags
juce::juce_recommended_lto_flags juce::juce_recommended_lto_flags
juce::juce_recommended_warning_flags) juce::juce_recommended_warning_flags)