Download CMakeLists.txt from RAM2118/pluginbridge: direct link, hf CLI and curl.
- Browser
- Download file 4.99 kB
-
https://huggingface.co/RAM2118/pluginbridge/resolve/main/CMakeLists.txt
- Command line
-
hf download hf://RAM2118/pluginbridge/CMakeLists.txt
-
curl -L -o CMakeLists.txt https://huggingface.co/RAM2118/pluginbridge/resolve/main/CMakeLists.txt
4.99 kB
| cmake_minimum_required(VERSION 3.22) | |
| project(PluginBridge VERSION 0.4.0 LANGUAGES C CXX OBJCXX) | |
| set(CMAKE_CXX_STANDARD 17) | |
| set(CMAKE_CXX_STANDARD_REQUIRED ON) | |
| add_subdirectory(JUCE) | |
| # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| # Target 1: PluginBridge VST3/AU (loaded in DAW) | |
| # Thin shell: shared memory audio bridge + MCP server | |
| # GUI via CARemoteLayerClient (receives remote layer from Helper) | |
| # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| juce_add_plugin(PluginBridge | |
| COMPANY_NAME "PluginBridge" | |
| BUNDLE_ID "com.pluginbridge.pluginbridge" | |
| PLUGIN_MANUFACTURER_CODE Plbr | |
| PLUGIN_CODE Plbr | |
| FORMATS VST3 AU | |
| PRODUCT_NAME "PluginBridge" | |
| IS_SYNTH FALSE | |
| NEEDS_MIDI_INPUT TRUE | |
| NEEDS_MIDI_OUTPUT TRUE | |
| IS_MIDI_EFFECT FALSE | |
| EDITOR_WANTS_KEYBOARD_FOCUS TRUE | |
| COPY_PLUGIN_AFTER_BUILD TRUE | |
| VST3_COPY_DIR "$ENV{HOME}/Library/Audio/Plug-Ins/VST3" | |
| AU_COPY_DIR "$ENV{HOME}/Library/Audio/Plug-Ins/Components" | |
| ) | |
| target_sources(PluginBridge | |
| PRIVATE | |
| Source/Plugin/PluginBridgeProcessor.cpp | |
| Source/Plugin/PluginBridgeEditor.mm | |
| Source/Plugin/PluginPickerComponent.mm | |
| Source/Plugin/HelperConnection.cpp | |
| Source/Plugin/McpServer.cpp | |
| ) | |
| target_include_directories(PluginBridge | |
| PRIVATE | |
| ${CMAKE_CURRENT_SOURCE_DIR}/libs | |
| ${CMAKE_CURRENT_SOURCE_DIR}/Source/Plugin | |
| ${CMAKE_CURRENT_SOURCE_DIR}/Source/Shared | |
| ) | |
| target_compile_definitions(PluginBridge | |
| PUBLIC | |
| JUCE_PLUGINHOST_VST3=1 | |
| JUCE_PLUGINHOST_AU=1 | |
| JUCE_WEB_BROWSER=0 | |
| JUCE_USE_CURL=0 | |
| JUCE_VST3_CAN_REPLACE_VST2=0 | |
| JUCE_DISPLAY_SPLASH_SCREEN=0 | |
| JUCE_REPORT_APP_USAGE=0 | |
| ) | |
| target_link_libraries(PluginBridge | |
| PRIVATE | |
| juce::juce_audio_utils | |
| juce::juce_audio_processors | |
| juce::juce_dsp | |
| juce::juce_gui_basics | |
| "-framework QuartzCore" | |
| PUBLIC | |
| juce::juce_recommended_config_flags | |
| juce::juce_recommended_lto_flags | |
| juce::juce_recommended_warning_flags | |
| ) | |
| # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| # Target 2: PluginBridgeHelper (separate process) | |
| # Hosts the actual plugin: audio processing + GUI rendering | |
| # GUI served via CARemoteLayerServer | |
| # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| juce_add_gui_app(PluginBridgeHelper | |
| PRODUCT_NAME "PluginBridgeHelper" | |
| BUNDLE_ID "com.pluginbridge.helper" | |
| COMPANY_NAME "PluginBridge" | |
| ) | |
| target_sources(PluginBridgeHelper | |
| PRIVATE | |
| Source/Helper/main.cpp | |
| Source/Helper/HelperPluginHost.mm | |
| Source/Helper/HelperIPC.cpp | |
| ) | |
| target_include_directories(PluginBridgeHelper | |
| PRIVATE | |
| ${CMAKE_CURRENT_SOURCE_DIR}/libs | |
| ${CMAKE_CURRENT_SOURCE_DIR}/Source/Helper | |
| ${CMAKE_CURRENT_SOURCE_DIR}/Source/Shared | |
| ) | |
| target_compile_definitions(PluginBridgeHelper | |
| PRIVATE | |
| JUCE_PLUGINHOST_VST3=1 | |
| JUCE_PLUGINHOST_AU=1 | |
| JUCE_WEB_BROWSER=0 | |
| JUCE_USE_CURL=0 | |
| JUCE_DISPLAY_SPLASH_SCREEN=0 | |
| JUCE_REPORT_APP_USAGE=0 | |
| ) | |
| target_link_libraries(PluginBridgeHelper | |
| PRIVATE | |
| juce::juce_audio_utils | |
| juce::juce_audio_processors | |
| juce::juce_dsp | |
| juce::juce_gui_basics | |
| juce::juce_events | |
| "-framework QuartzCore" | |
| PUBLIC | |
| juce::juce_recommended_config_flags | |
| juce::juce_recommended_lto_flags | |
| juce::juce_recommended_warning_flags | |
| ) | |
| # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| # Post-build: Copy full PluginBridgeHelper.app into .vst3 bundle | |
| # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| add_dependencies(PluginBridge PluginBridgeHelper) | |
| add_custom_command(TARGET PluginBridge POST_BUILD | |
| COMMAND ${CMAKE_COMMAND} -E make_directory | |
| "$<TARGET_BUNDLE_DIR:PluginBridge_VST3>/Contents/Resources" | |
| COMMAND ${CMAKE_COMMAND} -E rm -rf | |
| "$<TARGET_BUNDLE_DIR:PluginBridge_VST3>/Contents/Resources/PluginBridgeHelper.app" | |
| COMMAND ${CMAKE_COMMAND} -E copy_directory | |
| "$<TARGET_BUNDLE_DIR:PluginBridgeHelper>" | |
| "$<TARGET_BUNDLE_DIR:PluginBridge_VST3>/Contents/Resources/PluginBridgeHelper.app" | |
| COMMENT "Bundling PluginBridgeHelper.app inside PluginBridge.vst3" | |
| ) | |