From 200851c17f2f4e804811d2c961bb1e2da0fc1542 Mon Sep 17 00:00:00 2001 From: Paul Date: Sat, 24 Aug 2024 10:57:41 -0400 Subject: [PATCH] Revert "A Unity Build for surge (#7771)" (#7773) This reverts commit 980c98a333b5acccd49ade1850ab380153bc34d5. This reversion is, I hope, temporary while we hunt and sort out the crash in #7772 --- .github/workflows/build-pr.yml | 21 --- src/CMakeLists.txt | 90 +++++++++- src/cmake/setup-juce.cmake | 163 ------------------ src/common/CMakeLists.txt | 16 +- src/common/dsp/oscillators/ModernOscillator.h | 4 - .../dsp/oscillators/WavetableOscillator.cpp | 4 +- src/surge-fx/CMakeLists.txt | 19 +- src/surge-testrunner/CMakeLists.txt | 2 + src/surge-testrunner/UnitTestUtilities.cpp | 6 +- src/surge-xt/CMakeLists.txt | 68 +++----- src/surge-xt/cli/CMakeLists.txt | 7 +- src/surge-xt/gui/SkinImageMaps.h | 6 - .../gui/SurgeGUIEditorMenuStructures.cpp | 1 - 13 files changed, 133 insertions(+), 274 deletions(-) delete mode 100644 src/cmake/setup-juce.cmake diff --git a/.github/workflows/build-pr.yml b/.github/workflows/build-pr.yml index 34e964dd011..5f83bcff07f 100644 --- a/.github/workflows/build-pr.yml +++ b/.github/workflows/build-pr.yml @@ -62,27 +62,6 @@ jobs: cmakeOpt: RELEASE runTests: true - - name: "windows unity clang" - os: windows-latest - target: surge-xt surge-fx - cmakeConfig: -GNinja -DCMAKE_UNITY_BUILD=TRUE -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang - cmakeOpt: DEBUG - runTests: false - - - name: "ubuntu unity" - os: ubuntu-latest - target: surge-xt surge-fx - cmakeConfig: -GNinja -DCMAKE_UNITY_BUILD=TRUE - cmakeOpt: DEBUG - runTests: false - - - name: "macos unity" - os: macos-latest - target: surge-xt surge-fx - cmakeConfig: -GNinja -DCMAKE_UNITY_BUILD=TRUE -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" - cmakeOpt: DEBUG - runTests: false - steps: - name: Checkout code uses: actions/checkout@v4 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index f7c5b6ce629..31bee8d51db 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -47,7 +47,95 @@ add_library(simde INTERFACE) target_include_directories(simde INTERFACE ${SURGE_SIMDE_PATH}) add_library(surge::simde ALIAS simde) -include (cmake/setup-juce.cmake) +add_library(surge-juce INTERFACE) +target_compile_definitions(surge-juce INTERFACE + JUCE_ALLOW_STATIC_NULL_VARIABLES=0 + JUCE_STRICT_REFCOUNTEDPOINTER=1 + + JUCE_VST3_CAN_REPLACE_VST2=0 + JUCE_USE_CURL=0 + JUCE_WEB_BROWSER=0 + JUCE_USE_CAMERA=disabled + + JUCE_DISPLAY_SPLASH_SCREEN=0 + JUCE_REPORT_APP_USAGE=0 + + JUCE_MODAL_LOOPS_PERMITTED=0 + + JUCE_COREGRAPHICS_DRAW_ASYNC=1 + + JUCE_ALSA=$,1,0> + JUCE_JACK=$>,1,0> + + JUCE_WASAPI=$>,1,0> + JUCE_DIRECTSOUND=$>,1,0> + + JUCE_CATCH_UNHANDLED_EXCEPTIONS=0 + ) + +if (NOT SURGE_SKIP_JUCE_FOR_RACK) + target_link_libraries(surge-juce INTERFACE melatonin_inspector) +endif() + +if(NOT SURGE_SKIP_VST3) + list(APPEND SURGE_JUCE_FORMATS VST3) +endif() + +if(NOT SURGE_SKIP_STANDALONE) + list(APPEND SURGE_JUCE_FORMATS Standalone) +endif() + +if(APPLE AND NOT CMAKE_CROSSCOMPILING) + # AU requires the Rez resource compiler, which seems to be unavailable on osxcross + list(APPEND SURGE_JUCE_FORMATS AU) +endif() + +if(SURGE_XT_BUILD_AUV3) + list(APPEND SURGE_JUCE_FORMATS AUv3) +endif() + +if(DEFINED ENV{VST2SDK_DIR}) + file(TO_CMAKE_PATH "$ENV{VST2SDK_DIR}" JUCE_VST2_DIR) + juce_set_vst2_sdk_path(${JUCE_VST2_DIR}) + list(APPEND SURGE_JUCE_FORMATS VST) + message(STATUS "VST2 SDK path is $ENV{VST2SDK_DIR}") + # VST2 headers are invalid UTF-8 + add_compile_options($<$:/wd4828>) +endif() + +if(SURGE_BUILD_LV2) + list(APPEND SURGE_JUCE_FORMATS LV2) + message(STATUS "Including JUCE7 LV2 support.") +endif() + + +if(DEFINED ENV{ASIOSDK_DIR} OR BUILD_USING_MY_ASIO_LICENSE) + if(BUILD_USING_MY_ASIO_LICENSE) + message(STATUS "** BUILD USING OWN ASIO LICENSE **") + message(STATUS "The resulting Surge standalone executable is not licensed for distribution!") + message(STATUS "Fetching ASIO SDK...") + + set(ASIOSDK_DIR ${CMAKE_BINARY_DIR}/asio/asiosdk) + add_custom_target(surge-get-local-asio) + add_custom_command( + TARGET surge-get-local-asio + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/asio + COMMAND ${CMAKE_COMMAND} -D ASIO_SDK_DESTINATION=${CMAKE_BINARY_DIR}/asio -P cmake/get-asio.cmake + ) + add_dependencies(surge-juce surge-get-local-asio) + else() + file(TO_CMAKE_PATH "$ENV{ASIOSDK_DIR}" ASIOSDK_DIR) + message(STATUS "ASIO SDK found at ${ASIOSDK_DIR}") + message(STATUS "The resulting Surge standalone executable is not licensed for distribution!") + endif() + + target_compile_definitions(surge-juce INTERFACE JUCE_ASIO=1) + target_include_directories(surge-juce INTERFACE ${ASIOSDK_DIR}/common) + set(JUCE_ASIO_SUPPORT TRUE) +endif() + +message(STATUS "Building Surge XT using the following JUCE wrappers: ${SURGE_JUCE_FORMATS}") add_subdirectory(common) add_subdirectory(lua) diff --git a/src/cmake/setup-juce.cmake b/src/cmake/setup-juce.cmake deleted file mode 100644 index bb4e637decc..00000000000 --- a/src/cmake/setup-juce.cmake +++ /dev/null @@ -1,163 +0,0 @@ - -if (${CMAKE_UNITY_BUILD}) - add_library(surge-juce STATIC) - target_link_libraries(surge-juce PRIVATE - juce::juce_dsp - juce::juce_osc - juce::juce_graphics - juce::juce_audio_utils - melatonin_inspector - ) - - target_compile_definitions(surge-juce - INTERFACE - $) - - target_include_directories(surge-juce - INTERFACE - $) - - - target_include_directories(surge-juce PUBLIC ${incl}) - target_compile_definitions(surge-juce PUBLIC - JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1 - - JUCE_ALLOW_STATIC_NULL_VARIABLES=0 - JUCE_STRICT_REFCOUNTEDPOINTER=1 - - JUCE_VST3_CAN_REPLACE_VST2=0 - JUCE_USE_CURL=0 - JUCE_WEB_BROWSER=0 - JUCE_USE_CAMERA=disabled - - JUCE_DISPLAY_SPLASH_SCREEN=0 - JUCE_REPORT_APP_USAGE=0 - - JUCE_MODAL_LOOPS_PERMITTED=0 - - JUCE_COREGRAPHICS_DRAW_ASYNC=1 - - JUCE_ALSA=$,1,0> - JUCE_JACK=$>,1,0> - - JUCE_WASAPI=$>,1,0> - JUCE_DIRECTSOUND=$>,1,0> - - JUCE_CATCH_UNHANDLED_EXCEPTIONS=0 - ) - - set_target_properties(surge-juce PROPERTIES UNITY_BUILD FALSE) - - if (WIN32) - target_compile_definitions(surge-juce PUBLIC NOMINMAX=1) - endif() -else() - add_library(surge-juce INTERFACE) - target_compile_definitions(surge-juce INTERFACE - JUCE_ALLOW_STATIC_NULL_VARIABLES=0 - JUCE_STRICT_REFCOUNTEDPOINTER=1 - - JUCE_VST3_CAN_REPLACE_VST2=0 - JUCE_USE_CURL=0 - JUCE_WEB_BROWSER=0 - JUCE_USE_CAMERA=disabled - - JUCE_DISPLAY_SPLASH_SCREEN=0 - JUCE_REPORT_APP_USAGE=0 - - JUCE_MODAL_LOOPS_PERMITTED=0 - - JUCE_COREGRAPHICS_DRAW_ASYNC=1 - - JUCE_ALSA=$,1,0> - JUCE_JACK=$>,1,0> - - JUCE_WASAPI=$>,1,0> - JUCE_DIRECTSOUND=$>,1,0> - - JUCE_CATCH_UNHANDLED_EXCEPTIONS=0 - ) - - if (WIN32) - target_compile_definitions(surge-juce INTERFACE NOMINMAX=1) - endif() -endif() - - -add_library(surge-juce-for-surge-common INTERFACE) -target_link_libraries(surge-juce-for-surge-common INTERFACE surge-juce) -if (NOT CMAKE_UNITY_BUILD) - target_link_libraries(surge-juce-for-surge-common INTERFACE surge-juce juce::juce_dsp) -endif() - - -add_library(surge-juce-for-surge-xt INTERFACE) -target_link_libraries(surge-juce-for-surge-xt INTERFACE surge-juce) -if (NOT CMAKE_UNITY_BUILD) - target_link_libraries(surge-juce-for-surge-xt INTERFACE surge-juce - juce::juce_gui_basics - juce::juce_osc - juce::juce_audio_utils - melatonin_inspector - ) -endif() - -if(NOT SURGE_SKIP_VST3) - list(APPEND SURGE_JUCE_FORMATS VST3) -endif() - -if(NOT SURGE_SKIP_STANDALONE) - list(APPEND SURGE_JUCE_FORMATS Standalone) -endif() - -if(APPLE AND NOT CMAKE_CROSSCOMPILING) - # AU requires the Rez resource compiler, which seems to be unavailable on osxcross - list(APPEND SURGE_JUCE_FORMATS AU) -endif() - -if(SURGE_XT_BUILD_AUV3) - list(APPEND SURGE_JUCE_FORMATS AUv3) -endif() - -if(DEFINED ENV{VST2SDK_DIR}) - file(TO_CMAKE_PATH "$ENV{VST2SDK_DIR}" JUCE_VST2_DIR) - juce_set_vst2_sdk_path(${JUCE_VST2_DIR}) - list(APPEND SURGE_JUCE_FORMATS VST) - message(STATUS "VST2 SDK path is $ENV{VST2SDK_DIR}") - # VST2 headers are invalid UTF-8 - add_compile_options($<$:/wd4828>) -endif() - -if(SURGE_BUILD_LV2) - list(APPEND SURGE_JUCE_FORMATS LV2) - message(STATUS "Including JUCE7 LV2 support.") -endif() - - -if(DEFINED ENV{ASIOSDK_DIR} OR BUILD_USING_MY_ASIO_LICENSE) - if(BUILD_USING_MY_ASIO_LICENSE) - message(STATUS "** BUILD USING OWN ASIO LICENSE **") - message(STATUS "The resulting Surge standalone executable is not licensed for distribution!") - message(STATUS "Fetching ASIO SDK...") - - set(ASIOSDK_DIR ${CMAKE_BINARY_DIR}/asio/asiosdk) - add_custom_target(surge-get-local-asio) - add_custom_command( - TARGET surge-get-local-asio - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} - COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/asio - COMMAND ${CMAKE_COMMAND} -D ASIO_SDK_DESTINATION=${CMAKE_BINARY_DIR}/asio -P cmake/get-asio.cmake - ) - add_dependencies(surge-juce surge-get-local-asio) - else() - file(TO_CMAKE_PATH "$ENV{ASIOSDK_DIR}" ASIOSDK_DIR) - message(STATUS "ASIO SDK found at ${ASIOSDK_DIR}") - message(STATUS "The resulting Surge standalone executable is not licensed for distribution!") - endif() - - target_compile_definitions(surge-juce INTERFACE JUCE_ASIO=1) - target_include_directories(surge-juce INTERFACE ${ASIOSDK_DIR}/common) - set(JUCE_ASIO_SUPPORT TRUE) -endif() - -message(STATUS "Building Surge XT using the following JUCE wrappers: ${SURGE_JUCE_FORMATS}") diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt index 8f93428a007..db2dc799611 100644 --- a/src/common/CMakeLists.txt +++ b/src/common/CMakeLists.txt @@ -8,7 +8,6 @@ surge_add_lib_subdirectory(fmt) # Make MTS optional if(NOT SURGE_SKIP_ODDSOUND_MTS) surge_add_lib_subdirectory(oddsound-mts) - set_target_properties(oddsound-mts PROPERTIES UNITY_BUILD FALSE) else() add_library(oddsound-mts INTERFACE) target_compile_definitions(oddsound-mts INTERFACE SURGE_SKIP_ODDSOUND_MTS) @@ -31,8 +30,6 @@ endif() surge_add_lib_subdirectory(sst/sst-basic-blocks) surge_add_lib_subdirectory(sst/sst-cpputils) surge_add_lib_subdirectory(sst/sst-plugininfra) -set_target_properties(sst-plugininfra PROPERTIES UNITY_BUILD FALSE) - surge_add_lib_subdirectory(sst/sst-filters) surge_add_lib_subdirectory(sst/sst-waveshapers) surge_add_lib_subdirectory(sst/sst-effects) @@ -53,11 +50,8 @@ if(NOT SURGE_SKIP_JUCE_FOR_RACK) ${SURGE_SOURCE_DIR}/resources/surge-shared/README_UserArea.txt ${SURGE_SOURCE_DIR}/resources/surge-shared/windows.wt ) - set_target_properties(surge-common-binary PROPERTIES UNITY_BUILD FALSE) target_compile_definitions(surge-common-binary PUBLIC HAS_JUCE=1 SKIP_JUCE=0) - add_library(local_common_juce_libs INTERFACE) - target_link_libraries(local_common_juce_libs INTERFACE surge-juce-for-surge-common) else() # So what the heck is this? Well a few effects use juce_dsp so this # is code which skips the entire juce build infrastructure but buids the @@ -99,7 +93,7 @@ else() ) target_include_directories(juce_dsp_rack_sub PUBLIC ${SURGE_JUCE_PATH}/modules) - add_library(local_common_juce_libs ALIAS juce_dsp_rack_sub) + add_library(juce::juce_dsp ALIAS juce_dsp_rack_sub) endif() add_library(${PROJECT_NAME} @@ -356,8 +350,6 @@ if(SURGE_RELIABLE_VERSION_INFO) -D CMAKE_CXX_COMPILER_VERSION=${CMAKE_CXX_COMPILER_VERSION} -P ${SURGE_SOURCE_DIR}/cmake/versiontools.cmake ) - set_source_files_properties(${CMAKE_BINARY_DIR}/geninclude/version.cpp - PROPERTIES SKIP_UNITY_BUILD_INCLUSION ON) add_dependencies(${PROJECT_NAME} version-info) else() set(SURGESRC ${SURGE_SOURCE_DIR}) @@ -390,13 +382,13 @@ target_link_libraries(${PROJECT_NAME} surge::sqlite surge-common-binary tuning-library - surge-lua-src - PRIVATE + surge-lua-src surge-platform + surge-juce taocpp::pegtl PRIVATE - local_common_juce_libs + juce::juce_dsp ) target_compile_definitions(${PROJECT_NAME} PRIVATE diff --git a/src/common/dsp/oscillators/ModernOscillator.h b/src/common/dsp/oscillators/ModernOscillator.h index 05ecd6a347e..8923438a48c 100644 --- a/src/common/dsp/oscillators/ModernOscillator.h +++ b/src/common/dsp/oscillators/ModernOscillator.h @@ -20,9 +20,6 @@ * https://github.com/surge-synthesizer/surge */ -#ifndef SURGE_SRC_MODERN_OSC_H -#define SURGE_SRC_MODERN_OSC_H - #include "OscillatorBase.h" #include "DSPUtils.h" #include "OscillatorCommonFunctions.h" @@ -101,4 +98,3 @@ class ModernOscillator : public Oscillator }; const char mo_multitype_names[3][16] = {"Triangle", "Square", "Sine"}; -#endif \ No newline at end of file diff --git a/src/common/dsp/oscillators/WavetableOscillator.cpp b/src/common/dsp/oscillators/WavetableOscillator.cpp index cb2e45b5b57..742361198d6 100644 --- a/src/common/dsp/oscillators/WavetableOscillator.cpp +++ b/src/common/dsp/oscillators/WavetableOscillator.cpp @@ -29,7 +29,7 @@ namespace mech = sst::basic_blocks::mechanics; using namespace std; -const float wavetable_hpf_cycle_loss = 0.99f; +const float hpf_cycle_loss = 0.99f; WavetableOscillator::WavetableOscillator(SurgeStorage *storage, OscillatorStorage *oscdata, pdata *localcopy) @@ -376,7 +376,7 @@ template void WavetableOscillator::update_lagvals() float invt = min(1.0, (8.175798915 * storage->note_to_pitch_tuningctr(pitch_t)) * storage->dsamplerate_os_inv); // TODO: Make a lookup table - float hpf2 = min(integrator_hpf, powf(wavetable_hpf_cycle_loss, 4 * invt)); + float hpf2 = min(integrator_hpf, powf(hpf_cycle_loss, 4 * invt)); hpf_coeff.newValue(hpf2); integrator_mult.newValue(invt); diff --git a/src/surge-fx/CMakeLists.txt b/src/surge-fx/CMakeLists.txt index 57c00e197da..ff9c96aeb6e 100644 --- a/src/surge-fx/CMakeLists.txt +++ b/src/surge-fx/CMakeLists.txt @@ -64,11 +64,13 @@ target_sources(${PROJECT_NAME} PRIVATE FXOpenSoundControl.h ) - target_link_libraries(${PROJECT_NAME} PRIVATE surge::surge-common surge-fx-binary - surge-juce-for-surge-xt + surge-juce + juce::juce_audio_utils + juce::juce_audio_processors + juce::juce_osc ) if(SURGE_BUILD_CLAP) @@ -92,17 +94,4 @@ if(SURGE_BUILD_CLAP) "free and open source") endif() - -function(nouni sfx) - if (TARGET "${PROJECT_NAME}_${sfx}") - set_target_properties(${PROJECT_NAME}_${sfx} PROPERTIES UNITY_BUILD FALSE) - endif() -endfunction() -set_target_properties(${PROJECT_NAME} PROPERTIES UNITY_BUILD FALSE) -nouni(Standalone) -nouni(VST3) -nouni(CLAP) -nouni(AU) -nouni(LV2) - surge_juce_package(${PROJECT_NAME} "Surge XT Effects") diff --git a/src/surge-testrunner/CMakeLists.txt b/src/surge-testrunner/CMakeLists.txt index c267882a218..3769067eef4 100644 --- a/src/surge-testrunner/CMakeLists.txt +++ b/src/surge-testrunner/CMakeLists.txt @@ -32,8 +32,10 @@ add_executable(${PROJECT_NAME} ) target_link_libraries(${PROJECT_NAME} PRIVATE + surge-lua-src surge::catch2_v3 surge::surge-common + juce::juce_audio_basics ) target_compile_definitions(${PROJECT_NAME} PUBLIC diff --git a/src/surge-testrunner/UnitTestUtilities.cpp b/src/surge-testrunner/UnitTestUtilities.cpp index f899987ed91..f755d0080bf 100644 --- a/src/surge-testrunner/UnitTestUtilities.cpp +++ b/src/surge-testrunner/UnitTestUtilities.cpp @@ -220,7 +220,7 @@ std::shared_ptr surgeOnPatch(const std::string &otp) return surge; } -std::shared_ptr surgeOnTemplate(const std::string &otp, float sr) +std::shared_ptr surgeOnTemplate(const std::string &otp, float sr = 44100) { auto surge = Surge::Headless::createSurge(sr); @@ -249,7 +249,7 @@ std::shared_ptr surgeOnTemplate(const std::string &otp, float return surge; } -std::shared_ptr surgeOnSine(float sr) +std::shared_ptr surgeOnSine(float sr = 44100) { auto surge = Surge::Headless::createSurge(sr); @@ -260,7 +260,7 @@ std::shared_ptr surgeOnSine(float sr) surge->loadPatchByPath(path_to_string(isin).c_str(), -1, "Test"); return surge; } -std::shared_ptr surgeOnSaw(float sr) +std::shared_ptr surgeOnSaw(float sr = 44100) { auto surge = Surge::Headless::createSurge(sr); diff --git a/src/surge-xt/CMakeLists.txt b/src/surge-xt/CMakeLists.txt index c5b6a24e45f..25897a35f56 100644 --- a/src/surge-xt/CMakeLists.txt +++ b/src/surge-xt/CMakeLists.txt @@ -14,7 +14,6 @@ juce_add_binary_data(surge-xt-binary HEADER_NAME SurgeXTBinary.h SOURCES ${SURGE_XT_JUCE_RESOURCES_GLOB} ) -set_target_properties(surge-xt-binary PROPERTIES UNITY_BUILD FALSE) if(WIN32 AND ${CMAKE_SIZEOF_VOID_P} EQUAL 4) set(SURGE_XT_PRODUCT_NAME "Surge XT (32-bit)") @@ -78,8 +77,14 @@ if (SURGE_EXPOSE_PRESETS) target_compile_definitions(${PROJECT_NAME} PUBLIC SURGE_EXPOSE_PRESETS=1) endif() -add_library(${PROJECT_NAME}-impl STATIC) -target_sources(${PROJECT_NAME}-impl PRIVATE +target_sources(${PROJECT_NAME} PRIVATE + SurgeSynthEditor.cpp + SurgeSynthEditor.h + SurgeSynthProcessor.cpp + SurgeSynthProcessor.h + + SurgeCLAPPresetDiscovery.cpp + util/LockFreeStack.h gui/AccessibleHelpers.h @@ -186,31 +191,6 @@ target_sources(${PROJECT_NAME}-impl PRIVATE osc/OpenSoundControl.cpp osc/OpenSoundControl.h ) -target_link_libraries(${PROJECT_NAME}-impl - PUBLIC - surge-common - surge-platform - surge-xt-binary - sst-filters-extras - surge-juce-for-surge-xt) - -target_include_directories(${PROJECT_NAME}-impl - PUBLIC - ${CMAKE_CURRENT_SOURCE_DIR}/gui - ${CMAKE_CURRENT_SOURCE_DIR}/osc - ${CMAKE_CURRENT_SOURCE_DIR} -) -target_compile_definitions(${PROJECT_NAME}-impl PUBLIC - $,BUILD_IS_DEBUG,BUILD_IS_RELEASE>=1 -) - -target_sources(${PROJECT_NAME} PRIVATE - SurgeSynthEditor.cpp - SurgeSynthEditor.h - SurgeSynthProcessor.cpp - SurgeSynthProcessor.h - SurgeCLAPPresetDiscovery.cpp -) if(NOT EXISTS ${SURGE_JUCE_PATH}/modules/juce_gui_basics/accessibility/juce_AccessibilityHandler.h) message(FATAL_ERROR "You must build against at least JUCE 6.1 with accessibility support!") @@ -230,23 +210,29 @@ else() message(STATUS "No JUCE VST3 client extensions in this version!") endif() +target_compile_definitions(${PROJECT_NAME} PUBLIC + $,BUILD_IS_DEBUG,BUILD_IS_RELEASE>=1 +) target_link_libraries(${PROJECT_NAME} PRIVATE - ${PROJECT_NAME}-impl + surge-common + surge-platform + surge-juce + juce::juce_graphics + juce::juce_audio_utils + juce::juce_audio_processors + juce::juce_audio_plugin_client + juce::juce_osc + surge-xt-binary + sst-filters-extras ) -function(nouni sfx) - if (TARGET "${PROJECT_NAME}_${sfx}") - set_target_properties(${PROJECT_NAME}_${sfx} PROPERTIES UNITY_BUILD FALSE) - endif() -endfunction() - -set_target_properties(${PROJECT_NAME} PROPERTIES UNITY_BUILD FALSE) -nouni(Standalone) -nouni(VST3) -nouni(CLAP) -nouni(AU) -nouni(LV2) +target_include_directories(${PROJECT_NAME} + PUBLIC + ${CMAKE_CURRENT_SOURCE_DIR}/gui + ${CMAKE_CURRENT_SOURCE_DIR}/osc + ${CMAKE_CURRENT_SOURCE_DIR} +) add_subdirectory(cli) diff --git a/src/surge-xt/cli/CMakeLists.txt b/src/surge-xt/cli/CMakeLists.txt index 55dd0e86628..e3bd9a7765a 100644 --- a/src/surge-xt/cli/CMakeLists.txt +++ b/src/surge-xt/cli/CMakeLists.txt @@ -10,9 +10,6 @@ get_target_property(output_dir surge-xt RUNTIME_OUTPUT_DIRECTORY) set_property(TARGET ${PROJECT_NAME} PROPERTY RUNTIME_OUTPUT_DIRECTORY ${output_dir}/CLI) target_link_libraries(${PROJECT_NAME} PRIVATE surge-xt - surge-xt-impl surge-common - surge-juce-for-surge-xt - CLI11) -# AppKit and unity are unhappy together -set_target_properties(${PROJECT_NAME} PROPERTIES UNITY_BUILD FALSE) \ No newline at end of file + juce::juce_core + CLI11) \ No newline at end of file diff --git a/src/surge-xt/gui/SkinImageMaps.h b/src/surge-xt/gui/SkinImageMaps.h index 65961074a25..7a6fd212f92 100644 --- a/src/surge-xt/gui/SkinImageMaps.h +++ b/src/surge-xt/gui/SkinImageMaps.h @@ -19,10 +19,6 @@ * All source for Surge XT is available at * https://github.com/surge-synthesizer/surge */ - -#ifndef SURGE_SKINIMAGEMAPS_H -#define SURGE_SKINIMAGEMAPS_H - inline std::unordered_map createIdNameMap() { std::unordered_map res; @@ -173,5 +169,3 @@ inline std::unordered_set allowedImageIds() return allowed; } - -#endif \ No newline at end of file diff --git a/src/surge-xt/gui/SurgeGUIEditorMenuStructures.cpp b/src/surge-xt/gui/SurgeGUIEditorMenuStructures.cpp index 96449210ba0..b8d7afe236a 100644 --- a/src/surge-xt/gui/SurgeGUIEditorMenuStructures.cpp +++ b/src/surge-xt/gui/SurgeGUIEditorMenuStructures.cpp @@ -21,7 +21,6 @@ */ #include "melatonin_inspector/melatonin_inspector.h" - #include "SurgeGUIEditor.h" #include "SurgeGUIEditorTags.h" #include "SurgeGUIUtils.h"