Proteus

Guitar amp and pedal capture plugin using neural networks
Log | Files | Refs | Submodules | README

CMakeLists.txt (1903B)


      1 add_subdirectory(JUCE)
      2 
      3 include(cmake/SubprojectVersion.cmake)
      4 subproject_version(JUCE juce_version)
      5 message(STATUS "VERSION for JUCE: ${juce_version}")
      6 
      7 # Link to libsamplerate
      8 set(BUILD_TESTING OFF CACHE BOOL "Don't build libsamplerate tests!")
      9 add_subdirectory(libsamplerate)
     10 subproject_version(libsamplerate libsamplerate_version)
     11 message(STATUS "VERSION for libsamplerate: ${libsamplerate_version}")
     12 
     13 # link to RTNeural
     14 set(RTNEURAL_XSIMD ON CACHE BOOL "Use RTNeural with this backend" FORCE)
     15 add_subdirectory(RTNeural)
     16 
     17 include(cmake/WarningFlags.cmake)
     18 add_library(juce_plugin_modules STATIC)
     19 add_subdirectory(json)
     20 add_subdirectory(chowdsp_utils)
     21 
     22 target_link_libraries(juce_plugin_modules
     23     PRIVATE
     24         BinaryData
     25         juce::juce_audio_utils
     26         juce::juce_audio_plugin_client
     27         juce::juce_dsp
     28 	nlohmann_json::nlohmann_json
     29 	RTNeural
     30 	samplerate
     31 	chowdsp_dsp
     32     PUBLIC
     33         juce::juce_recommended_config_flags
     34         juce::juce_recommended_lto_flags
     35         warning_flags
     36 )
     37 
     38 target_compile_definitions(juce_plugin_modules
     39     PUBLIC
     40         JUCE_DISPLAY_SPLASH_SCREEN=0
     41         JUCE_REPORT_APP_USAGE=0
     42         JUCE_WEB_BROWSER=0
     43         JUCE_USE_CURL=0
     44         JUCE_VST3_CAN_REPLACE_VST2=0
     45         JucePlugin_Manufacturer="GuitarML"
     46         JucePlugin_VersionString="${CMAKE_PROJECT_VERSION}"
     47         JucePlugin_Name="${CMAKE_PROJECT_NAME}"
     48 	CHOWDSP_USE_LIBSAMPLERATE=1
     49     INTERFACE
     50         $<TARGET_PROPERTY:juce_plugin_modules,COMPILE_DEFINITIONS>
     51 )
     52 
     53 target_include_directories(juce_plugin_modules
     54     PUBLIC
     55         RTNeural
     56         RTNeural/modules/xsimd/include
     57         libsamplerate/include
     58     INTERFACE
     59         $<TARGET_PROPERTY:juce_plugin_modules,INCLUDE_DIRECTORIES>
     60 )
     61 
     62 set_target_properties(juce_plugin_modules PROPERTIES
     63     POSITION_INDEPENDENT_CODE TRUE
     64     VISIBILITY_INLINES_HIDDEN TRUE
     65     C_VISBILITY_PRESET hidden
     66     CXX_VISIBILITY_PRESET hidden
     67 )