RAM2118 commited on
Commit
a781751
Β·
verified Β·
1 Parent(s): 8aeb4e8

Upload CMakeLists.txt

Browse files
Files changed (1) hide show
  1. CMakeLists.txt +16 -10
CMakeLists.txt CHANGED
@@ -1,5 +1,5 @@
1
  cmake_minimum_required(VERSION 3.22)
2
- project(PluginBridge VERSION 0.3.0 LANGUAGES C CXX)
3
 
4
  set(CMAKE_CXX_STANDARD 17)
5
  set(CMAKE_CXX_STANDARD_REQUIRED ON)
@@ -7,8 +7,9 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
7
  add_subdirectory(JUCE)
8
 
9
  # ─────────────────────────────────────────────────────────────
10
- # Target 1: PluginBridge VST3/AU (the plugin loaded in DAW)
11
- # Hosts plugins IN-PROCESS. GUI embedded inside its own editor.
 
12
  # ─────────────────────────────────────────────────────────────
13
 
14
  juce_add_plugin(PluginBridge
@@ -22,7 +23,7 @@ juce_add_plugin(PluginBridge
22
  NEEDS_MIDI_INPUT TRUE
23
  NEEDS_MIDI_OUTPUT TRUE
24
  IS_MIDI_EFFECT FALSE
25
- EDITOR_WANTS_KEYBOARD_FOCUS FALSE
26
  COPY_PLUGIN_AFTER_BUILD TRUE
27
  VST3_COPY_DIR "$ENV{HOME}/Library/Audio/Plug-Ins/VST3"
28
  AU_COPY_DIR "$ENV{HOME}/Library/Audio/Plug-Ins/Components"
@@ -31,7 +32,8 @@ juce_add_plugin(PluginBridge
31
  target_sources(PluginBridge
32
  PRIVATE
33
  Source/Plugin/PluginBridgeProcessor.cpp
34
- Source/Plugin/PluginBridgeEditor.cpp
 
35
  Source/Plugin/McpServer.cpp
36
  )
37
 
@@ -59,6 +61,7 @@ target_link_libraries(PluginBridge
59
  juce::juce_audio_processors
60
  juce::juce_dsp
61
  juce::juce_gui_basics
 
62
  PUBLIC
63
  juce::juce_recommended_config_flags
64
  juce::juce_recommended_lto_flags
@@ -66,8 +69,9 @@ target_link_libraries(PluginBridge
66
  )
67
 
68
  # ─────────────────────────────────────────────────────────────
69
- # Target 2: PluginBridgeHelper (used ONLY for test-loading plugins)
70
- # Spawned briefly to check if a plugin is safe. Does NOT host audio.
 
71
  # ─────────────────────────────────────────────────────────────
72
 
73
  juce_add_gui_app(PluginBridgeHelper
@@ -79,7 +83,8 @@ juce_add_gui_app(PluginBridgeHelper
79
  target_sources(PluginBridgeHelper
80
  PRIVATE
81
  Source/Helper/main.cpp
82
- Source/Helper/HelperPluginHost.cpp
 
83
  )
84
 
85
  target_include_directories(PluginBridgeHelper
@@ -103,8 +108,10 @@ target_link_libraries(PluginBridgeHelper
103
  PRIVATE
104
  juce::juce_audio_utils
105
  juce::juce_audio_processors
 
106
  juce::juce_gui_basics
107
  juce::juce_events
 
108
  PUBLIC
109
  juce::juce_recommended_config_flags
110
  juce::juce_recommended_lto_flags
@@ -112,8 +119,7 @@ target_link_libraries(PluginBridgeHelper
112
  )
113
 
114
  # ─────────────────────────────────────────────────────────────
115
- # Post-build: Copy full PluginBridgeHelper.app into the .vst3 bundle
116
- # The .app structure is required for JUCE to initialize properly.
117
  # ─────────────────────────────────────────────────────────────
118
 
119
  add_dependencies(PluginBridge PluginBridgeHelper)
 
1
  cmake_minimum_required(VERSION 3.22)
2
+ project(PluginBridge VERSION 0.4.0 LANGUAGES C CXX OBJCXX)
3
 
4
  set(CMAKE_CXX_STANDARD 17)
5
  set(CMAKE_CXX_STANDARD_REQUIRED ON)
 
7
  add_subdirectory(JUCE)
8
 
9
  # ─────────────────────────────────────────────────────────────
10
+ # Target 1: PluginBridge VST3/AU (loaded in DAW)
11
+ # Thin shell: shared memory audio bridge + MCP server
12
+ # GUI via CARemoteLayerClient (receives remote layer from Helper)
13
  # ─────────────────────────────────────────────────────────────
14
 
15
  juce_add_plugin(PluginBridge
 
23
  NEEDS_MIDI_INPUT TRUE
24
  NEEDS_MIDI_OUTPUT TRUE
25
  IS_MIDI_EFFECT FALSE
26
+ EDITOR_WANTS_KEYBOARD_FOCUS TRUE
27
  COPY_PLUGIN_AFTER_BUILD TRUE
28
  VST3_COPY_DIR "$ENV{HOME}/Library/Audio/Plug-Ins/VST3"
29
  AU_COPY_DIR "$ENV{HOME}/Library/Audio/Plug-Ins/Components"
 
32
  target_sources(PluginBridge
33
  PRIVATE
34
  Source/Plugin/PluginBridgeProcessor.cpp
35
+ Source/Plugin/PluginBridgeEditor.mm
36
+ Source/Plugin/HelperConnection.cpp
37
  Source/Plugin/McpServer.cpp
38
  )
39
 
 
61
  juce::juce_audio_processors
62
  juce::juce_dsp
63
  juce::juce_gui_basics
64
+ "-framework QuartzCore"
65
  PUBLIC
66
  juce::juce_recommended_config_flags
67
  juce::juce_recommended_lto_flags
 
69
  )
70
 
71
  # ─────────────────────────────────────────────────────────────
72
+ # Target 2: PluginBridgeHelper (separate process)
73
+ # Hosts the actual plugin: audio processing + GUI rendering
74
+ # GUI served via CARemoteLayerServer
75
  # ─────────────────────────────────────────────────────────────
76
 
77
  juce_add_gui_app(PluginBridgeHelper
 
83
  target_sources(PluginBridgeHelper
84
  PRIVATE
85
  Source/Helper/main.cpp
86
+ Source/Helper/HelperPluginHost.mm
87
+ Source/Helper/HelperIPC.cpp
88
  )
89
 
90
  target_include_directories(PluginBridgeHelper
 
108
  PRIVATE
109
  juce::juce_audio_utils
110
  juce::juce_audio_processors
111
+ juce::juce_dsp
112
  juce::juce_gui_basics
113
  juce::juce_events
114
+ "-framework QuartzCore"
115
  PUBLIC
116
  juce::juce_recommended_config_flags
117
  juce::juce_recommended_lto_flags
 
119
  )
120
 
121
  # ─────────────────────────────────────────────────────────────
122
+ # Post-build: Copy full PluginBridgeHelper.app into .vst3 bundle
 
123
  # ─────────────────────────────────────────────────────────────
124
 
125
  add_dependencies(PluginBridge PluginBridgeHelper)