Browse Source

CMake: Add support for ARA plugin PIPs

pull/22/head
attila 3 years ago
parent
commit
4f4e5b6c04
3 changed files with 55 additions and 14 deletions
  1. +1
    -0
      CMakeLists.txt
  2. +31
    -14
      extras/Build/CMake/JUCEUtils.cmake
  3. +23
    -0
      extras/Build/CMake/PIPAudioProcessorWithARA.cpp.in

+ 1
- 0
CMakeLists.txt View File

@@ -149,6 +149,7 @@ install(FILES "${JUCE_BINARY_DIR}/JUCEConfigVersion.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}/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"


+ 31
- 14
extras/Build/CMake/JUCEUtils.cmake View File

@@ -1888,26 +1888,43 @@ function(juce_add_pip header)
endif() endif()


if(pip_kind STREQUAL "AudioProcessor") if(pip_kind STREQUAL "AudioProcessor")
set(source_main "${JUCE_CMAKE_UTILS_DIR}/PIPAudioProcessor.cpp.in")
_juce_get_metadata("${metadata_dict}" documentControllerClass JUCE_PIP_DOCUMENTCONTROLLER_CLASS)

if(JUCE_PIP_DOCUMENTCONTROLLER_CLASS)
if(NOT TARGET juce_ara_sdk)
message(WARNING
"${header} specifies a documentControllerClass, but the ARA SDK could not be located. "
"Use juce_set_ara_sdk_path to specify the ARA SDK location. "
"This PIP will not be configured.")
endif()


# We add AAX/VST2 targets too, if the user has set up those SDKs
set(source_main "${JUCE_CMAKE_UTILS_DIR}/PIPAudioProcessorWithARA.cpp.in")


set(extra_formats)
juce_add_plugin(${JUCE_PIP_NAME}
FORMATS AU VST3
IS_ARA_EFFECT TRUE)
else()
set(source_main "${JUCE_CMAKE_UTILS_DIR}/PIPAudioProcessor.cpp.in")


if(TARGET juce_aax_sdk)
list(APPEND extra_formats AAX)
endif()
# We add AAX/VST2 targets too, if the user has set up those SDKs


if(TARGET juce_vst2_sdk)
list(APPEND extra_formats VST)
endif()
set(extra_formats)


# Standalone plugins might want to access the mic
list(APPEND extra_target_args MICROPHONE_PERMISSION_ENABLED TRUE)
if(TARGET juce_aax_sdk)
list(APPEND extra_formats AAX)
endif()


juce_add_plugin(${JUCE_PIP_NAME}
FORMATS AU AUv3 LV2 Standalone Unity VST3 ${extra_formats}
${extra_target_args})
if(TARGET juce_vst2_sdk)
list(APPEND extra_formats VST)
endif()

# Standalone plugins might want to access the mic
list(APPEND extra_target_args MICROPHONE_PERMISSION_ENABLED TRUE)

juce_add_plugin(${JUCE_PIP_NAME}
FORMATS AU AUv3 LV2 Standalone Unity VST3 ${extra_formats}
${extra_target_args})
endif()
elseif(pip_kind STREQUAL "Component") elseif(pip_kind STREQUAL "Component")
set(source_main "${JUCE_CMAKE_UTILS_DIR}/PIPComponent.cpp.in") set(source_main "${JUCE_CMAKE_UTILS_DIR}/PIPComponent.cpp.in")
juce_add_gui_app(${JUCE_PIP_NAME} ${extra_target_args}) juce_add_gui_app(${JUCE_PIP_NAME} ${extra_target_args})


+ 23
- 0
extras/Build/CMake/PIPAudioProcessorWithARA.cpp.in View File

@@ -0,0 +1,23 @@
/*
==============================================================================

This file was auto-generated and contains the startup code for a PIP.

==============================================================================
*/

#include <JuceHeader.h>
#include "${JUCE_PIP_HEADER}"

//==============================================================================
juce::AudioProcessor* JUCE_CALLTYPE createPluginFilter()
{
return new ${JUCE_PIP_MAIN_CLASS}();
}

#if JucePlugin_Enable_ARA
const ARA::ARAFactory* JUCE_CALLTYPE createARAFactory()
{
return juce::ARADocumentControllerSpecialisation::createARAFactory<${JUCE_PIP_DOCUMENTCONTROLLER_CLASS}>();
}
#endif

Loading…
Cancel
Save