migrating to the latest JUCE version
This commit is contained in:
76
deps/juce/docs/ARA.md
vendored
Normal file
76
deps/juce/docs/ARA.md
vendored
Normal file
@ -0,0 +1,76 @@
|
||||
# ARA plugin support
|
||||
|
||||
JUCE supports the development of ARA enabled hosts and plugins. Since the ARA SDK is not included
|
||||
in JUCE there are some steps you need to take to enable all ARA related functionality.
|
||||
|
||||
## External dependencies
|
||||
|
||||
- ARA SDK 2.1.0
|
||||
|
||||
You can download the ARA SDK from Celemony's Github. The command below will recursively clone the
|
||||
right version into the `ARA_SDK` directory
|
||||
|
||||
git clone --recursive --branch releases/2.1.0 https://github.com/Celemony/ARA_SDK
|
||||
|
||||
## Enabling ARA features in JUCE
|
||||
|
||||
Once you have downloaded the ARA SDK you need to configure JUCE to use it.
|
||||
|
||||
### The Projucer
|
||||
|
||||
Add the path to the Global Paths settings.
|
||||
|
||||
### CMake
|
||||
|
||||
Use the `juce_set_ara_sdk_path` function in your CMakeLists file.
|
||||
|
||||
Alternatively, if you are building the examples and extras with CMake from the JUCE repo directory
|
||||
you can also specify `-DJUCE_GLOBAL_ARA_SDK_PATH=/your/path/to/ARA_SDK` parameter to CMake to
|
||||
enable ARA.
|
||||
|
||||
## Building the AudioPluginHost with ARA
|
||||
|
||||
The AudioPluginHost has simple ARA hosting features, but you need to modify its build configuration
|
||||
to enable them.
|
||||
|
||||
### The Projucer
|
||||
|
||||
After opening `AudioPluginHost.jucer` go to *Modules* → *juce_audio_processors* and enable the
|
||||
*JUCE_PLUGINHOST_ARA* setting.
|
||||
|
||||
### CMake
|
||||
|
||||
Set `JUCE_PLUGINHOST_ARA=1` inside `AudioPluginHost/CMakeLists.txt`.
|
||||
|
||||
### Loading ARA plugins
|
||||
|
||||
ARA capable plugins will now have two entries in the Create plugin menu, and the one saying (ARA)
|
||||
will activate additional ARA features. If you right click on the plugin in the graph, you can use
|
||||
the “Show ARA host control” item to assign an audio file that the plugin can read through the ARA
|
||||
interfaces.
|
||||
|
||||
## Adding ARA features to existing plugins
|
||||
|
||||
### The Projucer
|
||||
|
||||
Check the Enable ARA option in the Plugin Formats settings. ARA is an extension to VST3 and AU
|
||||
plugins, hence you need to have at least one of those options enabled too for valid build targets.
|
||||
|
||||
### CMake
|
||||
|
||||
Add the property `IS_ARA_EFFECT TRUE` to your `juce_add_plugin` call.
|
||||
|
||||
### Modifying the plugin code
|
||||
|
||||
In addition to the `createPluginFilter()` function that is needed for all audio plugins, you will
|
||||
now need to provide an implementation to the `createARAFactory()` function as well. You can do this
|
||||
by inheriting from `juce::ARADocumentControllerSpecialisation` and using its helper function. The
|
||||
class documentation should make this clear by also providing an example. You can also find an
|
||||
example in the ARAPluginDemo.
|
||||
|
||||
## Learning about ARA
|
||||
|
||||
ARA provides an extensive API that allows you to exchange information with the host in completely
|
||||
new ways. To understand the basics and to build up your knowledge it’s best to read the official
|
||||
ARA documentation, which has approachable introductory sections. You can find the documentation in
|
||||
the SDK directory at `ARA_SDK/ARA_Library/html_docs/index.html`.
|
729
deps/juce/docs/CMake API.md
vendored
729
deps/juce/docs/CMake API.md
vendored
@ -213,6 +213,10 @@ that the call to `juce_add_module` which adds a specific module happens *before*
|
||||
The modules will be placed in a group named "JUCE Modules" within the group for each target,
|
||||
alongside the "Source Files" and "Header Files" groups.
|
||||
|
||||
Note: Source groups will only work when all JUCE-dependent targets are created using the
|
||||
`juce_add_*` functions. The standard `add_executable` and `add_library` commands are likely to
|
||||
result in broken builds when source groups are enabled!
|
||||
|
||||
#### `JUCE_COPY_PLUGIN_AFTER_BUILD`
|
||||
|
||||
Controls whether plugin targets should be installed to the system after building. Note that the
|
||||
@ -243,341 +247,393 @@ commands, properties beginning with `JUCE_` can be _queried_, but changing their
|
||||
have any effect (or might even break things in unexpected ways!), so always pass JUCE target
|
||||
attributes directly to these creation functions, rather than adding them later.
|
||||
|
||||
- `PRODUCT_NAME`
|
||||
- The name of the output built by this target, similar to CMake's `OUTPUT_NAME` property. If not
|
||||
specified, this will default to the target name.
|
||||
`PRODUCT_NAME`
|
||||
- The name of the output built by this target, similar to CMake's `OUTPUT_NAME` property. If not
|
||||
specified, this will default to the target name.
|
||||
|
||||
- `VERSION`
|
||||
- A version number string in the format "major.minor.bugfix". If not specified, the `VERSION` of
|
||||
the project containing the target will be used instead. On Apple platforms, this is the
|
||||
user-facing version string. This option corresponds to the `CFBundleShortVersionString` field in
|
||||
the target's plist.
|
||||
`VERSION`
|
||||
- A version number string in the format "major.minor.bugfix". If not specified, the `VERSION` of
|
||||
the project containing the target will be used instead. On Apple platforms, this is the
|
||||
user-facing version string. This option corresponds to the `CFBundleShortVersionString` field in
|
||||
the target's plist.
|
||||
|
||||
- `BUILD_VERSION`
|
||||
- A version number string in the format "major.minor.bugfix". If not specified, this will match
|
||||
the `VERSION` of the target. On Apple platforms, this is the private version string used to
|
||||
distinguish between App Store builds. This option corresponds to the `CFBundleVersion` field in
|
||||
the target's plist.
|
||||
|
||||
- `BUNDLE_ID`
|
||||
- An identifier string in the form "com.yourcompany.productname" which should uniquely identify
|
||||
this target. Mainly used for macOS builds. If not specified, a default will be generated using
|
||||
the target's `COMPANY_NAME` and `PRODUCT_NAME`.
|
||||
|
||||
- `MICROPHONE_PERMISSION_ENABLED`
|
||||
- May be either TRUE or FALSE. Adds the appropriate entries to an app's Info.plist.
|
||||
|
||||
- `MICROPHONE_PERMISSION_TEXT`
|
||||
- The text your app will display when it requests microphone permissions.
|
||||
|
||||
- `CAMERA_PERMISSION_ENABLED`
|
||||
- May be either TRUE or FALSE. Adds the appropriate entries to an app's Info.plist.
|
||||
|
||||
- `CAMERA_PERMISSION_TEXT`
|
||||
- The text your app will display when it requests camera permissions.
|
||||
|
||||
- `BLUETOOTH_PERMISSION_ENABLED`
|
||||
- May be either TRUE or FALSE. Adds the appropriate entries to an app's Info.plist.
|
||||
|
||||
- `BLUETOOTH_PERMISSION_TEXT`
|
||||
- The text your app will display when it requests bluetooth permissions.
|
||||
|
||||
- `SEND_APPLE_EVENTS_PERMISSION_ENABLED`
|
||||
- May be either TRUE or FALSE. Enable this to allow your app to send Apple events.
|
||||
|
||||
- `SEND_APPLE_EVENTS_PERMISSION_TEXT`
|
||||
- The text your app will display when it requests permission to send Apple events.
|
||||
|
||||
- `FILE_SHARING_ENABLED`
|
||||
- May be either TRUE or FALSE. Adds the appropriate entries to an iOS app's Info.plist.
|
||||
|
||||
- `DOCUMENT_BROWSER_ENABLED`
|
||||
- May be either TRUE or FALSE. Adds the appropriate entries to an iOS app's Info.plist.
|
||||
|
||||
- `STATUS_BAR_HIDDEN`
|
||||
- May be either TRUE or FALSE. Adds the appropriate entries to an iOS app's Info.plist.
|
||||
|
||||
- `REQUIRES_FULL_SCREEN`
|
||||
- May be either TRUE or FALSE. Adds the appropriate entries to an iOS app's Info.plist.
|
||||
|
||||
- `BACKGROUND_AUDIO_ENABLED`
|
||||
- May be either TRUE or FALSE. Adds the appropriate entries to an iOS app's Info.plist.
|
||||
|
||||
- `BACKGROUND_BLE_ENABLED`
|
||||
- May be either TRUE or FALSE. Adds the appropriate entries to an iOS app's Info.plist.
|
||||
|
||||
- `APP_GROUPS_ENABLED`
|
||||
- May be either TRUE or FALSE. Adds the appropriate entries to an iOS app's entitlements.
|
||||
|
||||
- `APP_GROUP_IDS`
|
||||
- The app groups to which your iOS app belongs. These will be added to your app's entitlements.
|
||||
|
||||
- `ICLOUD_PERMISSIONS_ENABLED`
|
||||
- May be either TRUE or FALSE. Adds the appropriate entries to an iOS app's entitlements.
|
||||
|
||||
- `IPHONE_SCREEN_ORIENTATIONS`
|
||||
- May be one or more of `UIInterfaceOrientationUnknown`, `UIInterfaceOrientationPortrait`,
|
||||
`UIInterfaceOrientationPortraitUpsideDown`, `UIInterfaceOrientationLandscapeLeft`, or
|
||||
`UIInterfaceOrientationLandscapeRight`. Adds appropriate entries to an iOS app's plist.
|
||||
|
||||
- `IPAD_SCREEN_ORIENTATIONS`
|
||||
- May be one or more of `UIInterfaceOrientationUnknown`, `UIInterfaceOrientationPortrait`,
|
||||
`UIInterfaceOrientationPortraitUpsideDown`, `UIInterfaceOrientationLandscapeLeft`, or
|
||||
`UIInterfaceOrientationLandscapeRight`. Adds appropriate entries to an iOS app's plist.
|
||||
|
||||
- `LAUNCH_STORYBOARD_FILE`
|
||||
- A custom launch storyboard file to use on iOS. If not supplied, a default storyboard will be
|
||||
used.
|
||||
|
||||
- `CUSTOM_XCASSETS_FOLDER`
|
||||
- A path to an xcassets directory, containing icons and/or launch images for this target. If this
|
||||
is specified, the ICON_BIG and ICON_SMALL arguments will not have an effect on iOS, and a launch
|
||||
storyboard will not be used.
|
||||
|
||||
- `TARGETED_DEVICE_FAMILY`
|
||||
- Specifies the device families on which the product must be capable of running. Allowed values
|
||||
are "1", "2", and "1,2"; these correspond to "iPhone/iPod touch", "iPad", and "iPhone/iPod and
|
||||
iPad" respectively. This will default to "1,2", meaning that the target will target iPhone,
|
||||
iPod, and iPad.
|
||||
|
||||
- `ICON_BIG`, `ICON_SMALL`
|
||||
- Paths to image files that will be used to generate app icons. If only one of these parameters
|
||||
is specified, then that image will be used for all icon resolutions. If both arguments are
|
||||
specified, then the appropriate image will be picked for each icon resolution.
|
||||
|
||||
- `COMPANY_COPYRIGHT`
|
||||
- Copyright text which will be added to the app/plugin's Info.plist. The value of this argument
|
||||
will be inherited from the `JUCE_COMPANY_COPYRIGHT` property, so if you want to use the same
|
||||
`COMPANY_COPYRIGHT` for several targets in a build tree, you can call
|
||||
`set_directory_properties(PROPERTIES JUCE_COMPANY_COPYRIGHT ...)` after including JUCE but
|
||||
before adding the targets, and then omit the `COMPANY_COPYRIGHT` argument when creating the
|
||||
individual targets.
|
||||
|
||||
- `COMPANY_NAME`
|
||||
- The name of this target's author. Will be added to the app/plugin's Info.plist, and may be used
|
||||
to generate part of the `BUNDLE_ID` if no ID was given explicitly. The value of this argument
|
||||
will be inherited from the `JUCE_COMPANY_NAME` property, so if you want to use the same
|
||||
`COMPANY_NAME` for several targets in a build tree, you can call
|
||||
`set_directory_properties(PROPERTIES JUCE_COMPANY_NAME ...)` after including JUCE but before
|
||||
adding the targets, and then omit the `COMPANY_NAME` argument when creating the individual
|
||||
targets.
|
||||
|
||||
- `COMPANY_WEBSITE`
|
||||
- The address of a website related to this target in some way. The value of this argument will be
|
||||
inherited from the `JUCE_COMPANY_WEBSITE` property, so if you want to use the same
|
||||
`COMPANY_WEBSITE` for several targets in a build tree, you can call
|
||||
`set_directory_properties(PROPERTIES JUCE_COMPANY_WEBSITE ...)` after including JUCE but before
|
||||
adding the targets, and then omit the `COMPANY_WEBSITE` argument when creating the individual
|
||||
targets.
|
||||
|
||||
- `COMPANY_EMAIL`
|
||||
- An email address for this target's author. The value of this argument will be inherited from the
|
||||
`JUCE_COMPANY_EMAIL` property, so if you want to use the same `COMPANY_EMAIL` for several
|
||||
targets in a build tree, you can call `set_directory_properties(PROPERTIES JUCE_COMPANY_EMAIL
|
||||
...)` after including JUCE but before adding the targets, and then omit the `COMPANY_EMAIL`
|
||||
argument when creating the individual targets.
|
||||
|
||||
- `DOCUMENT_EXTENSIONS`
|
||||
- File extensions that should be associated with this target. For example, the Projucer passes
|
||||
the string `jucer` because it wants to open `.jucer` files. If your target has several different
|
||||
document types, you can pass them as multiple arguments, e.g. `DOCUMENT_EXTENSIONS wav mp3 aif`.
|
||||
|
||||
- `NEEDS_CURL`
|
||||
- On Linux, JUCE may or may not need to link to Curl depending on the compile definitions that are
|
||||
set on a JUCE target. By default, we don't link Curl because you might not need it, but if you
|
||||
get linker or include errors that reference Curl, just set this argument to `TRUE`.
|
||||
|
||||
- `NEEDS_WEB_BROWSER`
|
||||
- On Linux, JUCE may or may not need to link to Webkit depending on the compile definitions that
|
||||
are set on a JUCE target. By default, we don't link Webkit because you might not need it, but
|
||||
if you get linker or include errors that reference Webkit, just set this argument to `TRUE`.
|
||||
|
||||
- `NEEDS_STORE_KIT`
|
||||
- On macOS, JUCE may or may not need to link to StoreKit depending on the compile definitions that
|
||||
are set on a JUCE target. By default, we don't link StoreKit because you might not need it, but
|
||||
if you get linker or include errors that reference StoreKit, just set this argument to `TRUE`.
|
||||
|
||||
- `PUSH_NOTIFICATIONS_ENABLED`
|
||||
- Sets app entitlements to allow push notifications. False by default.
|
||||
|
||||
- `NETWORK_MULTICAST_ENABLED`
|
||||
- Sets app entitlements to allow IP multicast or broadcast on macOS/iOS. False by default.
|
||||
|
||||
- `HARDENED_RUNTIME_ENABLED`
|
||||
- Enables macOS' hardened runtime for this target. Required for notarisation. False by default.
|
||||
|
||||
- `HARDENED_RUNTIME_OPTIONS`
|
||||
- A set of space-separated entitlement keys that will be added to this target's entitlements
|
||||
plist if `HARDENED_RUNTIME_ENABLED` is `TRUE`. Each key should be in the form
|
||||
`com.apple.security.*` where `*` is a specific entitlement.
|
||||
|
||||
- `APP_SANDBOX_ENABLED`
|
||||
- Enables macOS' app sandbox for this target. False by default.
|
||||
|
||||
- `APP_SANDBOX_INHERIT`
|
||||
- Allows child processes to inherit the static entitlements of their parent process. If this
|
||||
is set to `TRUE`, no other app sandbox entitlements will be set on this target.
|
||||
|
||||
- `APP_SANDBOX_OPTIONS`
|
||||
- A set of space-separated entitlement keys that will be added to this target's entitlements
|
||||
plist if `APP_SANDBOX_ENABLED` is `TRUE`. Each key should be in the form `com.apple.security.*`
|
||||
where `*` is a specific entitlement.
|
||||
|
||||
- `PLIST_TO_MERGE`
|
||||
- A string to insert into an app/plugin's Info.plist.
|
||||
|
||||
- `FORMATS`
|
||||
- For plugin targets, specifies the plugin targets to build. Should be provided as a
|
||||
space-separated list. Valid values are `Standalone Unity VST3 AU AUv3 AAX VST`. `AU` and `AUv3`
|
||||
plugins will only be enabled when building on macOS. It is an error to pass `AAX` or `VST`
|
||||
without first calling `juce_set_aax_sdk_path` or `juce_set_vst2_sdk_path` respectively.
|
||||
|
||||
- `PLUGIN_NAME`
|
||||
- The name of the plugin. In a DAW environment, this is the name that will be displayed to the
|
||||
user when they go to load a plugin. This name may differ from the name of the physical plugin
|
||||
file (to set the name of the plugin file, use the `PRODUCT_NAME` option). If not specified,
|
||||
the `PLUGIN_NAME` will default to match the `PRODUCT_NAME`.
|
||||
|
||||
- `PLUGIN_MANUFACTURER_CODE`
|
||||
- A four-character unique ID for your company. For AU compatibility, this must contain at least
|
||||
one upper-case letter. GarageBand 10.3 requires the first letter to be upper-case, and the
|
||||
remaining letters to be lower-case.
|
||||
|
||||
- `PLUGIN_CODE`
|
||||
- A four-character unique ID for your plugin. For AU compatibility, this must contain exactly one
|
||||
upper-case letter. GarageBand 10.3 requires the first letter to be upper-case, and the remaining
|
||||
letters to be lower-case.
|
||||
|
||||
- `DESCRIPTION`
|
||||
- A short description of your plugin.
|
||||
|
||||
- `IS_SYNTH`
|
||||
- Whether the plugin is a synth. Will be used to set sensible plugin category values if they
|
||||
are not provided explicitly.
|
||||
|
||||
- `NEEDS_MIDI_INPUT`
|
||||
- Whether the plugin should provide a midi input.
|
||||
|
||||
- `NEEDS_MIDI_OUTPUT`
|
||||
- Whether the plugin should provide a midi output.
|
||||
|
||||
- `IS_MIDI_EFFECT`
|
||||
- Whether the plugin is a MIDI effect (some hosts provide a special channel-strip location for
|
||||
MIDI effect plugins).
|
||||
|
||||
- `EDITOR_WANTS_KEYBOARD_FOCUS`
|
||||
- Whether the plugin requires keyboard focus, or should defer all keyboard handling to the host.
|
||||
|
||||
- `DISABLE_AAX_BYPASS`
|
||||
- Whether the AAX bypass function should be disabled.
|
||||
|
||||
- `DISABLE_AAX_MULTI_MONO`
|
||||
- Whether the AAX multi mono bus layout should be disabled.
|
||||
|
||||
- `AAX_IDENTIFIER`
|
||||
- The bundle ID for the AAX plugin target. Matches the `BUNDLE_ID` by default.
|
||||
|
||||
- `VST_NUM_MIDI_INS`
|
||||
- For VST2 and VST3 plugins that accept midi, this allows you to configure the number of inputs.
|
||||
|
||||
- `VST_NUM_MIDI_OUTS`
|
||||
- For VST2 and VST3 plugins that produce midi, this allows you to configure the number of outputs.
|
||||
|
||||
- `VST2_CATEGORY`
|
||||
- Should be one of: `kPlugCategUnknown`, `kPlugCategEffect`, `kPlugCategSynth`,
|
||||
`kPlugCategAnalysis`, `kPlugCategMatering`, `kPlugCategSpacializer`, `kPlugCategRoomFx`,
|
||||
`kPlugSurroundFx`, `kPlugCategRestoration`, `kPlugCategOfflineProcess`, `kPlugCategShell`,
|
||||
`kPlugCategGenerator`.
|
||||
|
||||
- `VST3_CATEGORIES`
|
||||
- Should be one or more, separated by spaces, of the following: `Fx`, `Instrument`, `Analyzer`,
|
||||
`Delay`, `Distortion`, `Drum`, `Dynamics`, `EQ`, `External`, `Filter`, `Generator`, `Mastering`,
|
||||
`Modulation`, `Mono`, `Network`, `NoOfflineProcess`, `OnlyOfflineProcess`, `OnlyRT`,
|
||||
`Pitch Shift`, `Restoration`, `Reverb`, `Sampler`, `Spatial`, `Stereo`, `Surround`, `Synth`,
|
||||
`Tools`, `Up-Downmix`
|
||||
|
||||
- `AU_MAIN_TYPE`
|
||||
- Should be one of: `kAudioUnitType_Effect`, `kAudioUnitType_FormatConverter`,
|
||||
`kAudioUnitType_Generator`, `kAudioUnitType_MIDIProcessor`, `kAudioUnitType_Mixer`,
|
||||
`kAudioUnitType_MusicDevice`, `kAudioUnitType_MusicEffect`, `kAudioUnitType_OfflineEffect`,
|
||||
`kAudioUnitType_Output`, `kAudioUnitType_Panner`
|
||||
|
||||
- `AU_EXPORT_PREFIX`
|
||||
- A prefix for the names of entry-point functions that your component exposes. Typically this
|
||||
will be a version of your plugin's name that can be used as part of a C++ token. Defaults
|
||||
to your plugin's name with the suffix 'AU'.
|
||||
|
||||
- `AU_SANDBOX_SAFE`
|
||||
- May be either TRUE or FALSE. Adds the appropriate entries to an AU plugin's Info.plist.
|
||||
|
||||
- `SUPPRESS_AU_PLIST_RESOURCE_USAGE`
|
||||
- May be either TRUE or FALSE. Defaults to FALSE. Set this to TRUE to disable the `resourceUsage`
|
||||
key in the target's plist. This is useful for AU plugins that must access resources which cannot
|
||||
be declared in the resourceUsage block, such as UNIX domain sockets. In particular,
|
||||
PACE-protected AU plugins may require this option to be enabled in order for the plugin to load
|
||||
in GarageBand.
|
||||
|
||||
- `AAX_CATEGORY`
|
||||
- Should be one or more of: `AAX_ePlugInCategory_None`, `AAX_ePlugInCategory_EQ`,
|
||||
`AAX_ePlugInCategory_Dynamics`, `AAX_ePlugInCategory_PitchShift`, `AAX_ePlugInCategory_Reverb`,
|
||||
`AAX_ePlugInCategory_Delay`, `AAX_ePlugInCategory_Modulation`, `AAX_ePlugInCategory_Harmonic`,
|
||||
`AAX_ePlugInCategory_NoiseReduction`, `AAX_ePlugInCategory_Dither`,
|
||||
`AAX_ePlugInCategory_SoundField`, `AAX_ePlugInCategory_HWGenerators`,
|
||||
`AAX_ePlugInCategory_SWGenerators`, `AAX_ePlugInCategory_WrappedPlugin`,
|
||||
`AAX_ePlugInCategory_Effect`
|
||||
|
||||
- `PLUGINHOST_AU`
|
||||
- May be either TRUE or FALSE (defaults to FALSE). If TRUE, will add the preprocessor definition
|
||||
`JUCE_PLUGINHOST_AU=1` to the new target, and will link the macOS frameworks necessary for
|
||||
hosting plugins. Using this parameter should be preferred over using
|
||||
`target_compile_definitions` to manually set the `JUCE_PLUGINHOST_AU` preprocessor definition.
|
||||
|
||||
- `USE_LEGACY_COMPATIBILITY_PLUGIN_CODE`
|
||||
- May be either TRUE or FALSE (defaults to FALSE). If TRUE, will override the value of the
|
||||
preprocessor definition "JucePlugin_ManufacturerCode" with the hex equivalent of "proj". This
|
||||
option exists to maintain compatiblity with a previous, buggy version of JUCE's CMake support
|
||||
which mishandled the manufacturer code property. Most projects should leave this option set to
|
||||
its default value.
|
||||
|
||||
- `COPY_PLUGIN_AFTER_BUILD`
|
||||
- Whether or not to install the plugin to the current system after building. False by default.
|
||||
If you want all of the plugins in a subdirectory to be installed automatically after building,
|
||||
you can set the property `JUCE_COPY_PLUGIN_AFTER_BUILD` on the directory before adding the
|
||||
plugins, rather than setting this argument on each individual target. Note that on Windows,
|
||||
the default install locations may not be writable by normal user accounts.
|
||||
|
||||
- `VST_COPY_DIR`
|
||||
- The location to which VST2 (legacy) plugins will be copied after building if
|
||||
`COPY_PLUGIN_AFTER_BUILD` is set on this target. If you want to install all of the VST2 plugins
|
||||
in a subdirectory to a non-default location, you can set the `JUCE_VST_COPY_DIR` property on
|
||||
the directory before adding the plugin targets, rather than setting this argument on each
|
||||
individual target.
|
||||
|
||||
- `VST3_COPY_DIR`
|
||||
- The location to which VST3 plugins will be copied after building if `COPY_PLUGIN_AFTER_BUILD`
|
||||
is set on this target. If you want to install all of the VST3 plugins in a subdirectory to a
|
||||
non-default location, you can set the `JUCE_VST3_COPY_DIR` property on the directory before
|
||||
adding the plugin targets, rather than setting this argument on each individual target.
|
||||
|
||||
- `AAX_COPY_DIR`
|
||||
- The location to which AAX plugins will be copied after building if `COPY_PLUGIN_AFTER_BUILD`
|
||||
is set on this target. If you want to install all of the AAX plugins in a subdirectory to a
|
||||
non-default location, you can set the `JUCE_AAX_COPY_DIR` property on the directory before
|
||||
adding the plugin targets, rather than setting this argument on each individual target.
|
||||
|
||||
- `AU_COPY_DIR`
|
||||
- The location to which AU plugins will be copied after building if `COPY_PLUGIN_AFTER_BUILD`
|
||||
is set on this target. If you want to install all of the AU plugins in a subdirectory to a
|
||||
non-default location, you can set the `JUCE_AU_COPY_DIR` property on the directory before
|
||||
adding the plugin targets, rather than setting this argument on each individual target.
|
||||
|
||||
- `UNITY_COPY_DIR`
|
||||
- The location to which Unity plugins will be copied after building if `COPY_PLUGIN_AFTER_BUILD`
|
||||
is set on this target. If you want to install all of the Unity plugins in a subdirectory to a
|
||||
non-default location, you can set the `JUCE_UNITY_COPY_DIR` property on the directory before
|
||||
adding the plugin targets, rather than setting this argument on each individual target.
|
||||
Unlike the other `COPY_DIR` arguments, this argument does not have a default value so be sure
|
||||
to set it if you have enabled `COPY_PLUGIN_AFTER_BUILD` and the `Unity` format.
|
||||
`BUILD_VERSION`
|
||||
- A version number string in the format "major.minor.bugfix". If not specified, this will match
|
||||
the `VERSION` of the target. On Apple platforms, this is the private version string used to
|
||||
distinguish between App Store builds. This option corresponds to the `CFBundleVersion` field in
|
||||
the target's plist.
|
||||
|
||||
`BUNDLE_ID`
|
||||
- An identifier string in the form "com.yourcompany.productname" which should uniquely identify
|
||||
this target. Mainly used for macOS builds. If not specified, a default will be generated using
|
||||
the target's `COMPANY_NAME` and `PRODUCT_NAME`.
|
||||
|
||||
`MICROPHONE_PERMISSION_ENABLED`
|
||||
- May be either TRUE or FALSE. Adds the appropriate entries to an app's Info.plist.
|
||||
|
||||
`MICROPHONE_PERMISSION_TEXT`
|
||||
- The text your app will display when it requests microphone permissions.
|
||||
|
||||
`CAMERA_PERMISSION_ENABLED`
|
||||
- May be either TRUE or FALSE. Adds the appropriate entries to an app's Info.plist.
|
||||
|
||||
`CAMERA_PERMISSION_TEXT`
|
||||
- The text your app will display when it requests camera permissions.
|
||||
|
||||
`BLUETOOTH_PERMISSION_ENABLED`
|
||||
- May be either TRUE or FALSE. Adds the appropriate entries to an app's Info.plist.
|
||||
|
||||
`BLUETOOTH_PERMISSION_TEXT`
|
||||
- The text your app will display when it requests bluetooth permissions.
|
||||
|
||||
`SEND_APPLE_EVENTS_PERMISSION_ENABLED`
|
||||
- May be either TRUE or FALSE. Enable this to allow your app to send Apple events.
|
||||
|
||||
`SEND_APPLE_EVENTS_PERMISSION_TEXT`
|
||||
- The text your app will display when it requests permission to send Apple events.
|
||||
|
||||
`FILE_SHARING_ENABLED`
|
||||
- May be either TRUE or FALSE. Adds the appropriate entries to an iOS app's Info.plist.
|
||||
|
||||
`DOCUMENT_BROWSER_ENABLED`
|
||||
- May be either TRUE or FALSE. Adds the appropriate entries to an iOS app's Info.plist.
|
||||
|
||||
`STATUS_BAR_HIDDEN`
|
||||
- May be either TRUE or FALSE. Adds the appropriate entries to an iOS app's Info.plist.
|
||||
|
||||
`REQUIRES_FULL_SCREEN`
|
||||
- May be either TRUE or FALSE. Adds the appropriate entries to an iOS app's Info.plist.
|
||||
|
||||
`BACKGROUND_AUDIO_ENABLED`
|
||||
- May be either TRUE or FALSE. Adds the appropriate entries to an iOS app's Info.plist.
|
||||
|
||||
`BACKGROUND_BLE_ENABLED`
|
||||
- May be either TRUE or FALSE. Adds the appropriate entries to an iOS app's Info.plist.
|
||||
|
||||
`APP_GROUPS_ENABLED`
|
||||
- May be either TRUE or FALSE. Adds the appropriate entries to an iOS app's entitlements.
|
||||
|
||||
`APP_GROUP_IDS`
|
||||
- The app groups to which your iOS app belongs. These will be added to your app's entitlements.
|
||||
|
||||
`ICLOUD_PERMISSIONS_ENABLED`
|
||||
- May be either TRUE or FALSE. Adds the appropriate entries to an iOS app's entitlements.
|
||||
|
||||
`IPHONE_SCREEN_ORIENTATIONS`
|
||||
- May be one or more of `UIInterfaceOrientationUnknown`, `UIInterfaceOrientationPortrait`,
|
||||
`UIInterfaceOrientationPortraitUpsideDown`, `UIInterfaceOrientationLandscapeLeft`, or
|
||||
`UIInterfaceOrientationLandscapeRight`. Adds appropriate entries to an iOS app's plist.
|
||||
|
||||
`IPAD_SCREEN_ORIENTATIONS`
|
||||
- May be one or more of `UIInterfaceOrientationUnknown`, `UIInterfaceOrientationPortrait`,
|
||||
`UIInterfaceOrientationPortraitUpsideDown`, `UIInterfaceOrientationLandscapeLeft`, or
|
||||
`UIInterfaceOrientationLandscapeRight`. Adds appropriate entries to an iOS app's plist.
|
||||
|
||||
`LAUNCH_STORYBOARD_FILE`
|
||||
- A custom launch storyboard file to use on iOS. If not supplied, a default storyboard will be
|
||||
used. If this is specified, then this will take precedence over a LaunchImage inside a custom
|
||||
xcassets directory.
|
||||
|
||||
`CUSTOM_XCASSETS_FOLDER`
|
||||
- A path to an xcassets directory, containing icons and/or launch images for this target. If this
|
||||
is specified, the ICON_BIG and ICON_SMALL arguments will not have an effect on iOS. LaunchImages
|
||||
have been deprecated from iOS 13 onward, but if your xcassets folder contains a LaunchImage and
|
||||
a custom storyboard hasn't been specified, then it will be used.
|
||||
|
||||
`TARGETED_DEVICE_FAMILY`
|
||||
- Specifies the device families on which the product must be capable of running. Allowed values
|
||||
are "1", "2", and "1,2"; these correspond to "iPhone/iPod touch", "iPad", and "iPhone/iPod and
|
||||
iPad" respectively. This will default to "1,2", meaning that the target will target iPhone,
|
||||
iPod, and iPad.
|
||||
|
||||
`ICON_BIG`, `ICON_SMALL`
|
||||
- Paths to image files that will be used to generate app icons. If only one of these parameters
|
||||
is specified, then that image will be used for all icon resolutions. If both arguments are
|
||||
specified, then the appropriate image will be picked for each icon resolution.
|
||||
|
||||
`COMPANY_COPYRIGHT`
|
||||
- Copyright text which will be added to the app/plugin's Info.plist. The value of this argument
|
||||
will be inherited from the `JUCE_COMPANY_COPYRIGHT` property, so if you want to use the same
|
||||
`COMPANY_COPYRIGHT` for several targets in a build tree, you can call
|
||||
`set_directory_properties(PROPERTIES JUCE_COMPANY_COPYRIGHT ...)` after including JUCE but
|
||||
before adding the targets, and then omit the `COMPANY_COPYRIGHT` argument when creating the
|
||||
individual targets.
|
||||
|
||||
`COMPANY_NAME`
|
||||
- The name of this target's author. Will be added to the app/plugin's Info.plist, and may be used
|
||||
to generate part of the `BUNDLE_ID` if no ID was given explicitly. The value of this argument
|
||||
will be inherited from the `JUCE_COMPANY_NAME` property, so if you want to use the same
|
||||
`COMPANY_NAME` for several targets in a build tree, you can call
|
||||
`set_directory_properties(PROPERTIES JUCE_COMPANY_NAME ...)` after including JUCE but before
|
||||
adding the targets, and then omit the `COMPANY_NAME` argument when creating the individual
|
||||
targets.
|
||||
|
||||
`COMPANY_WEBSITE`
|
||||
- The address of a website related to this target in some way. The value of this argument will be
|
||||
inherited from the `JUCE_COMPANY_WEBSITE` property, so if you want to use the same
|
||||
`COMPANY_WEBSITE` for several targets in a build tree, you can call
|
||||
`set_directory_properties(PROPERTIES JUCE_COMPANY_WEBSITE ...)` after including JUCE but before
|
||||
adding the targets, and then omit the `COMPANY_WEBSITE` argument when creating the individual
|
||||
targets.
|
||||
|
||||
`COMPANY_EMAIL`
|
||||
- An email address for this target's author. The value of this argument will be inherited from the
|
||||
`JUCE_COMPANY_EMAIL` property, so if you want to use the same `COMPANY_EMAIL` for several
|
||||
targets in a build tree, you can call `set_directory_properties(PROPERTIES JUCE_COMPANY_EMAIL
|
||||
...)` after including JUCE but before adding the targets, and then omit the `COMPANY_EMAIL`
|
||||
argument when creating the individual targets.
|
||||
|
||||
`DOCUMENT_EXTENSIONS`
|
||||
- File extensions that should be associated with this target. For example, the Projucer passes
|
||||
the string `jucer` because it wants to open `.jucer` files. If your target has several different
|
||||
document types, you can pass them as multiple arguments, e.g. `DOCUMENT_EXTENSIONS wav mp3 aif`.
|
||||
|
||||
`NEEDS_CURL`
|
||||
- On Linux, JUCE may or may not need to link to Curl depending on the compile definitions that are
|
||||
set on a JUCE target. By default, we don't link Curl because you might not need it, but if you
|
||||
get linker or include errors that reference Curl, just set this argument to `TRUE`.
|
||||
|
||||
`NEEDS_WEB_BROWSER`
|
||||
- On Linux, JUCE may or may not need to link to Webkit depending on the compile definitions that
|
||||
are set on a JUCE target. By default, we don't link Webkit because you might not need it, but
|
||||
if you get linker or include errors that reference Webkit, just set this argument to `TRUE`.
|
||||
|
||||
`NEEDS_STORE_KIT`
|
||||
- On macOS, JUCE may or may not need to link to StoreKit depending on the compile definitions that
|
||||
are set on a JUCE target. By default, we don't link StoreKit because you might not need it, but
|
||||
if you get linker or include errors that reference StoreKit, just set this argument to `TRUE`.
|
||||
|
||||
`PUSH_NOTIFICATIONS_ENABLED`
|
||||
- Sets app entitlements to allow push notifications. False by default.
|
||||
|
||||
`NETWORK_MULTICAST_ENABLED`
|
||||
- Sets app entitlements to allow IP multicast or broadcast on macOS/iOS. False by default.
|
||||
|
||||
`HARDENED_RUNTIME_ENABLED`
|
||||
- Enables macOS' hardened runtime for this target. Required for notarisation. False by default.
|
||||
|
||||
`HARDENED_RUNTIME_OPTIONS`
|
||||
- A set of space-separated entitlement keys that will be added to this target's entitlements
|
||||
plist if `HARDENED_RUNTIME_ENABLED` is `TRUE`. Each key should be in the form
|
||||
`com.apple.security.*` where `*` is a specific entitlement.
|
||||
|
||||
`APP_SANDBOX_ENABLED`
|
||||
- Enables macOS' app sandbox for this target. False by default.
|
||||
|
||||
`APP_SANDBOX_INHERIT`
|
||||
- Allows child processes to inherit the static entitlements of their parent process. If this
|
||||
is set to `TRUE`, no other app sandbox entitlements will be set on this target.
|
||||
|
||||
`APP_SANDBOX_OPTIONS`
|
||||
- A set of space-separated entitlement keys that will be added to this target's entitlements
|
||||
plist if `APP_SANDBOX_ENABLED` is `TRUE`. Each key should be in the form `com.apple.security.*`
|
||||
where `*` is a specific entitlement.
|
||||
|
||||
`APP_SANDBOX_FILE_ACCESS_HOME_RO`
|
||||
- A set of space-separated paths that will be added to this target's entitlements plist for
|
||||
accessing read-only paths relative to the home directory if `APP_SANDBOX_ENABLED` is `TRUE`.
|
||||
|
||||
`APP_SANDBOX_FILE_ACCESS_HOME_RW`
|
||||
- A set of space-separated paths that will be added to this target's entitlements plist for
|
||||
accessing read/write paths relative to the home directory if `APP_SANDBOX_ENABLED` is `TRUE`.
|
||||
|
||||
`APP_SANDBOX_FILE_ACCESS_ABS_RO`
|
||||
- A set of space-separated paths that will be added to this target's entitlements plist for
|
||||
accessing read-only absolute paths if `APP_SANDBOX_ENABLED` is `TRUE`.
|
||||
|
||||
`APP_SANDBOX_FILE_ACCESS_ABS_RW`
|
||||
- A set of space-separated paths that will be added to this target's entitlements plist for
|
||||
accessing read/write absolute paths if `APP_SANDBOX_ENABLED` is `TRUE`.
|
||||
|
||||
`PLIST_TO_MERGE`
|
||||
- A string to insert into an app/plugin's Info.plist.
|
||||
|
||||
`FORMATS`
|
||||
- For plugin targets, specifies the plugin targets to build. Should be provided as a
|
||||
space-separated list. Valid values are `Standalone Unity VST3 AU AUv3 AAX VST`. `AU` and `AUv3`
|
||||
plugins will only be enabled when building on macOS. It is an error to pass `AAX` or `VST`
|
||||
without first calling `juce_set_aax_sdk_path` or `juce_set_vst2_sdk_path` respectively.
|
||||
|
||||
`PLUGIN_NAME`
|
||||
- The name of the plugin. In a DAW environment, this is the name that will be displayed to the
|
||||
user when they go to load a plugin. This name may differ from the name of the physical plugin
|
||||
file (to set the name of the plugin file, use the `PRODUCT_NAME` option). If not specified,
|
||||
the `PLUGIN_NAME` will default to match the `PRODUCT_NAME`.
|
||||
|
||||
`PLUGIN_MANUFACTURER_CODE`
|
||||
- A four-character unique ID for your company. For AU compatibility, this must contain at least
|
||||
one upper-case letter. GarageBand 10.3 requires the first letter to be upper-case, and the
|
||||
remaining letters to be lower-case.
|
||||
|
||||
`PLUGIN_CODE`
|
||||
- A four-character unique ID for your plugin. For AU compatibility, this must contain exactly one
|
||||
upper-case letter. GarageBand 10.3 requires the first letter to be upper-case, and the remaining
|
||||
letters to be lower-case.
|
||||
|
||||
`DESCRIPTION`
|
||||
- A short description of your plugin.
|
||||
|
||||
`IS_SYNTH`
|
||||
- Whether the plugin is a synth. Will be used to set sensible plugin category values if they
|
||||
are not provided explicitly.
|
||||
|
||||
`NEEDS_MIDI_INPUT`
|
||||
- Whether the plugin should provide a midi input.
|
||||
|
||||
`NEEDS_MIDI_OUTPUT`
|
||||
- Whether the plugin should provide a midi output.
|
||||
|
||||
`IS_MIDI_EFFECT`
|
||||
- Whether the plugin is a MIDI effect (some hosts provide a special channel-strip location for
|
||||
MIDI effect plugins).
|
||||
|
||||
`EDITOR_WANTS_KEYBOARD_FOCUS`
|
||||
- Whether the plugin requires keyboard focus, or should defer all keyboard handling to the host.
|
||||
|
||||
`DISABLE_AAX_BYPASS`
|
||||
- Whether the AAX bypass function should be disabled.
|
||||
|
||||
`DISABLE_AAX_MULTI_MONO`
|
||||
- Whether the AAX multi mono bus layout should be disabled.
|
||||
|
||||
`AAX_IDENTIFIER`
|
||||
- The bundle ID for the AAX plugin target. Matches the `BUNDLE_ID` by default.
|
||||
|
||||
`VST_NUM_MIDI_INS`
|
||||
- For VST2 and VST3 plugins that accept midi, this allows you to configure the number of inputs.
|
||||
|
||||
`VST_NUM_MIDI_OUTS`
|
||||
- For VST2 and VST3 plugins that produce midi, this allows you to configure the number of outputs.
|
||||
|
||||
`VST2_CATEGORY`
|
||||
- Should be one of: `kPlugCategUnknown`, `kPlugCategEffect`, `kPlugCategSynth`,
|
||||
`kPlugCategAnalysis`, `kPlugCategMatering`, `kPlugCategSpacializer`, `kPlugCategRoomFx`,
|
||||
`kPlugSurroundFx`, `kPlugCategRestoration`, `kPlugCategOfflineProcess`, `kPlugCategShell`,
|
||||
`kPlugCategGenerator`.
|
||||
|
||||
`VST3_CATEGORIES`
|
||||
- Should be one or more, separated by spaces, of the following: `Fx`, `Instrument`, `Analyzer`,
|
||||
`Delay`, `Distortion`, `Drum`, `Dynamics`, `EQ`, `External`, `Filter`, `Generator`, `Mastering`,
|
||||
`Modulation`, `Mono`, `Network`, `NoOfflineProcess`, `OnlyOfflineProcess`, `OnlyRT`,
|
||||
`Pitch Shift`, `Restoration`, `Reverb`, `Sampler`, `Spatial`, `Stereo`, `Surround`, `Synth`,
|
||||
`Tools`, `Up-Downmix`
|
||||
|
||||
`AU_MAIN_TYPE`
|
||||
- Should be one of: `kAudioUnitType_Effect`, `kAudioUnitType_FormatConverter`,
|
||||
`kAudioUnitType_Generator`, `kAudioUnitType_MIDIProcessor`, `kAudioUnitType_Mixer`,
|
||||
`kAudioUnitType_MusicDevice`, `kAudioUnitType_MusicEffect`, `kAudioUnitType_OfflineEffect`,
|
||||
`kAudioUnitType_Output`, `kAudioUnitType_Panner`
|
||||
|
||||
`AU_EXPORT_PREFIX`
|
||||
- A prefix for the names of entry-point functions that your component exposes. Typically this
|
||||
will be a version of your plugin's name that can be used as part of a C++ token. Defaults
|
||||
to your plugin's name with the suffix 'AU'.
|
||||
|
||||
`AU_SANDBOX_SAFE`
|
||||
- May be either TRUE or FALSE. Adds the appropriate entries to an AU plugin's Info.plist.
|
||||
|
||||
`SUPPRESS_AU_PLIST_RESOURCE_USAGE`
|
||||
- May be either TRUE or FALSE. Defaults to FALSE. Set this to TRUE to disable the `resourceUsage`
|
||||
key in the target's plist. This is useful for AU plugins that must access resources which cannot
|
||||
be declared in the resourceUsage block, such as UNIX domain sockets. In particular,
|
||||
PACE-protected AU plugins may require this option to be enabled in order for the plugin to load
|
||||
in GarageBand.
|
||||
|
||||
`AAX_CATEGORY`
|
||||
- Should be one or more of: `AAX_ePlugInCategory_None`, `AAX_ePlugInCategory_EQ`,
|
||||
`AAX_ePlugInCategory_Dynamics`, `AAX_ePlugInCategory_PitchShift`, `AAX_ePlugInCategory_Reverb`,
|
||||
`AAX_ePlugInCategory_Delay`, `AAX_ePlugInCategory_Modulation`, `AAX_ePlugInCategory_Harmonic`,
|
||||
`AAX_ePlugInCategory_NoiseReduction`, `AAX_ePlugInCategory_Dither`,
|
||||
`AAX_ePlugInCategory_SoundField`, `AAX_ePlugInCategory_HWGenerators`,
|
||||
`AAX_ePlugInCategory_SWGenerators`, `AAX_ePlugInCategory_WrappedPlugin`,
|
||||
`AAX_EPlugInCategory_Effect`
|
||||
|
||||
`PLUGINHOST_AU`
|
||||
- May be either TRUE or FALSE (defaults to FALSE). If TRUE, will add the preprocessor definition
|
||||
`JUCE_PLUGINHOST_AU=1` to the new target, and will link the macOS frameworks necessary for
|
||||
hosting plugins. Using this parameter should be preferred over using
|
||||
`target_compile_definitions` to manually set the `JUCE_PLUGINHOST_AU` preprocessor definition.
|
||||
|
||||
`USE_LEGACY_COMPATIBILITY_PLUGIN_CODE`
|
||||
- May be either TRUE or FALSE (defaults to FALSE). If TRUE, will override the value of the
|
||||
preprocessor definition "JucePlugin_ManufacturerCode" with the hex equivalent of "proj". This
|
||||
option exists to maintain compatibility with a previous, buggy version of JUCE's CMake support
|
||||
which mishandled the manufacturer code property. Most projects should leave this option set to
|
||||
its default value.
|
||||
|
||||
`COPY_PLUGIN_AFTER_BUILD`
|
||||
- Whether or not to install the plugin to the current system after building. False by default.
|
||||
If you want all of the plugins in a subdirectory to be installed automatically after building,
|
||||
you can set the property `JUCE_COPY_PLUGIN_AFTER_BUILD` on the directory before adding the
|
||||
plugins, rather than setting this argument on each individual target. Note that on Windows,
|
||||
the default install locations may not be writable by normal user accounts.
|
||||
|
||||
`VST_COPY_DIR`
|
||||
- The location to which VST2 (legacy) plugins will be copied after building if
|
||||
`COPY_PLUGIN_AFTER_BUILD` is set on this target. If you want to install all of the VST2 plugins
|
||||
in a subdirectory to a non-default location, you can set the `JUCE_VST_COPY_DIR` property on
|
||||
the directory before adding the plugin targets, rather than setting this argument on each
|
||||
individual target.
|
||||
|
||||
`VST3_COPY_DIR`
|
||||
- The location to which VST3 plugins will be copied after building if `COPY_PLUGIN_AFTER_BUILD`
|
||||
is set on this target. If you want to install all of the VST3 plugins in a subdirectory to a
|
||||
non-default location, you can set the `JUCE_VST3_COPY_DIR` property on the directory before
|
||||
adding the plugin targets, rather than setting this argument on each individual target.
|
||||
|
||||
`AAX_COPY_DIR`
|
||||
- The location to which AAX plugins will be copied after building if `COPY_PLUGIN_AFTER_BUILD`
|
||||
is set on this target. If you want to install all of the AAX plugins in a subdirectory to a
|
||||
non-default location, you can set the `JUCE_AAX_COPY_DIR` property on the directory before
|
||||
adding the plugin targets, rather than setting this argument on each individual target.
|
||||
|
||||
`AU_COPY_DIR`
|
||||
- The location to which AU plugins will be copied after building if `COPY_PLUGIN_AFTER_BUILD`
|
||||
is set on this target. If you want to install all of the AU plugins in a subdirectory to a
|
||||
non-default location, you can set the `JUCE_AU_COPY_DIR` property on the directory before
|
||||
adding the plugin targets, rather than setting this argument on each individual target.
|
||||
|
||||
`UNITY_COPY_DIR`
|
||||
- The location to which Unity plugins will be copied after building if `COPY_PLUGIN_AFTER_BUILD`
|
||||
is set on this target. If you want to install all of the Unity plugins in a subdirectory to a
|
||||
non-default location, you can set the `JUCE_UNITY_COPY_DIR` property on the directory before
|
||||
adding the plugin targets, rather than setting this argument on each individual target.
|
||||
Unlike the other `COPY_DIR` arguments, this argument does not have a default value so be sure
|
||||
to set it if you have enabled `COPY_PLUGIN_AFTER_BUILD` and the `Unity` format.
|
||||
|
||||
`IS_ARA_EFFECT`
|
||||
- May be either TRUE or FALSE (defaults to FALSE). If TRUE it enables additional codepaths in the
|
||||
VST3 and AU plugin wrappers allowing compatible hosts to load the plugin with additional ARA
|
||||
functionality. It will also add the preprocessor definition `JucePlugin_Enable_ARA=1`, which can
|
||||
be used in preprocessor conditions inside the plugin code. You should not add this definition
|
||||
using `target_compile_definitions` manually.
|
||||
|
||||
`ARA_FACTORY_ID`
|
||||
- A globally unique and versioned identifier string. If not provided a sensible default will be
|
||||
generated using the `BUNDLE_ID` and `VERSION` values. The version must be updated if e.g. the
|
||||
plugin's (compatible) document archive ID(s) or its analysis or playback transformation
|
||||
capabilities change.
|
||||
|
||||
`ARA_DOCUMENT_ARCHIVE_ID`
|
||||
- Identifier string for document archives created by the document controller. This ID must be
|
||||
globally unique and is shared only amongst document controllers that create the same archives and
|
||||
produce the same render results based upon the same input data. This means that the ID must be
|
||||
updated if the archive format changes in any way that is no longer downwards compatible. If not
|
||||
provided a version independent default will be created that is only appropriate as long as the
|
||||
format remains unchanged.
|
||||
|
||||
`ARA_ANALYSIS_TYPES`
|
||||
- Defaults to having no analyzable types. Should be one or more of the following values if the
|
||||
document controller has the corresponding analysis capability: `kARAContentTypeNotes`,
|
||||
`kARAContentTypeTempoEntries`, `kARAContentTypeBarSignatures`, `kARAContentTypeStaticTuning `,
|
||||
`kARAContentTypeKeySignatures`, `kARAContentTypeSheetChords`
|
||||
|
||||
`ARA_TRANSFORMATION_FLAGS`
|
||||
- Defaults to `kARAPlaybackTransformationNoChanges`. If the document controller has the ability to
|
||||
provide the corresponding change it should be one or more of:
|
||||
`kARAPlaybackTransformationTimestretch`, `kARAPlaybackTransformationTimestretchReflectingTempo`,
|
||||
`kARAPlaybackTransformationContentBasedFadeAtTail`,
|
||||
`kARAPlaybackTransformationContentBasedFadeAtHead`
|
||||
|
||||
#### `juce_add_binary_data`
|
||||
|
||||
@ -644,10 +700,11 @@ target!).
|
||||
juce_set_aax_sdk_path(<absolute path>)
|
||||
juce_set_vst2_sdk_path(<absolute path>)
|
||||
juce_set_vst3_sdk_path(<absolute path>)
|
||||
juce_set_ara_sdk_path(<absolute path>)
|
||||
|
||||
Call these functions from your CMakeLists to set up your local AAX, VST2, and VST3 SDKs. These
|
||||
functions should be called *before* adding any targets that may depend on the AAX/VST2/VST3 SDKs
|
||||
(plugin hosts, AAX/VST2/VST3 plugins etc.).
|
||||
Call these functions from your CMakeLists to set up your local AAX, VST2, VST3 and ARA SDKs. These
|
||||
functions should be called *before* adding any targets that may depend on the AAX/VST2/VST3/ARA SDKs
|
||||
(plugin hosts, AAX/VST2/VST3/ARA plugins etc.).
|
||||
|
||||
#### `juce_add_module`
|
||||
|
||||
|
13
deps/juce/docs/JUCE Module Format.md
vendored
13
deps/juce/docs/JUCE Module Format.md
vendored
@ -17,7 +17,7 @@ JUCE convention for naming modules is lower-case with underscores, e.g.
|
||||
juce_events
|
||||
juce_graphics
|
||||
|
||||
But any name that is a valid C++ identifer is OK.
|
||||
But any name that is a valid C++ identifier is OK.
|
||||
|
||||
Inside the root of this folder, there must be a set of public header and source files which
|
||||
the user's' project will include. The module may have as many other internal source files as
|
||||
@ -185,11 +185,18 @@ Possible values:
|
||||
parent folder, which need to be added to a project's header search path
|
||||
|
||||
- OSXFrameworks
|
||||
- (Optional) A list (space or comma-separated) of OSX frameworks that are needed
|
||||
- (Optional) A list (space or comma-separated) of OSX frameworks that are needed by this module
|
||||
|
||||
- WeakOSXFrameworks
|
||||
- (Optional) A list (space or comma-separated) of weak linked OSX frameworks that are needed
|
||||
by this module
|
||||
|
||||
- iOSFrameworks
|
||||
- (Optional) Like OSXFrameworks, but for iOS targets
|
||||
- (Optional) A list (space or comma-separated) of iOS frameworks that are needed by this module
|
||||
|
||||
- WeakiOSFrameworks
|
||||
- (Optional) A list (space or comma-separated) of weak linked iOS frameworks that are needed
|
||||
by this module
|
||||
|
||||
- linuxPackages
|
||||
- (Optional) A list (space or comma-separated) pkg-config packages that should be used to pass
|
||||
|
2
deps/juce/docs/Linux Dependencies.md
vendored
2
deps/juce/docs/Linux Dependencies.md
vendored
@ -6,7 +6,7 @@ flag used to disable it is noted.
|
||||
|
||||
This has been tested on Ubuntu 16.04 LTS (Xenial Xerus), 18.04 LTS (Bionic
|
||||
Beaver), and 20.04 LTS (Focal Fossa). Packages may differ in name or not be
|
||||
available on other distrubutions.
|
||||
available on other distributions.
|
||||
|
||||
## Compiler
|
||||
A C++ compiler is required. JUCE has been tested thoroughly with Clang and GCC:
|
||||
|
4
deps/juce/docs/doxygen/Doxyfile
vendored
4
deps/juce/docs/doxygen/Doxyfile
vendored
@ -802,8 +802,8 @@ WARN_LOGFILE =
|
||||
# Note: If this tag is empty the current directory is searched.
|
||||
|
||||
INPUT = build \
|
||||
"../JUCE Module Format.md" \
|
||||
"../CMake API.md"
|
||||
"build/JUCE Module Format.md" \
|
||||
"build/CMake API.md"
|
||||
|
||||
# This tag can be used to specify the character encoding of the source files
|
||||
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
|
||||
|
@ -173,3 +173,8 @@ if __name__ == "__main__":
|
||||
# Create an extra header file containing the module hierarchy.
|
||||
with open(os.path.join(args.dest_dir, "juce_modules.dox"), "w") as f:
|
||||
f.write("\r\n\r\n".join(module_definitions))
|
||||
|
||||
# Copy markdown docs
|
||||
for name in ["JUCE Module Format.md", "CMake API.md"]:
|
||||
shutil.copyfile(os.path.join(args.source_dir, "..", "docs", name),
|
||||
os.path.join(args.dest_dir, name))
|
||||
|
Reference in New Issue
Block a user