cmake_minimum_required(VERSION 3.22) project(ChromaFlock VERSION 1.0.0 LANGUAGES C CXX) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) include(FetchContent) if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/JUCE/CMakeLists.txt") message(STATUS "JUCE not found locally — fetching from GitHub...") FetchContent_Declare( JUCE GIT_REPOSITORY https://github.com/juce-framework/JUCE.git GIT_TAG 8.0.6 GIT_SHALLOW TRUE ) FetchContent_MakeAvailable(JUCE) else() add_subdirectory(JUCE) endif() juce_add_binary_data(ChromaFlockBinaryData NAMESPACE BinaryData SOURCES bg.png cf3d.png newlogo.png ) if(APPLE) set(CHROMAFLOCK_FORMATS VST3 AU Standalone) set(CHROMAFLOCK_COPY TRUE) set(CHROMAFLOCK_AU_MAIN_TYPE AU_MAIN_TYPE kAudioUnitType_MusicDevice) elseif(WIN32) set(CHROMAFLOCK_FORMATS VST3 Standalone) set(CHROMAFLOCK_COPY FALSE) set(CHROMAFLOCK_AU_MAIN_TYPE "") else() set(CHROMAFLOCK_FORMATS VST3 Standalone) set(CHROMAFLOCK_COPY FALSE) set(CHROMAFLOCK_AU_MAIN_TYPE "") endif() juce_add_plugin(ChromaFlock COMPANY_NAME "ChromaFlock" PLUGIN_MANUFACTURER_CODE CFlk PLUGIN_CODE CFlk FORMATS ${CHROMAFLOCK_FORMATS} PRODUCT_NAME "ChromaFlock" IS_SYNTH TRUE NEEDS_MIDI_INPUT TRUE IS_MIDI_EFFECT FALSE EDITOR_WANTS_KEYBOARD_FOCUS FALSE COPY_PLUGIN_AFTER_BUILD ${CHROMAFLOCK_COPY} VST3_CATEGORIES Synth ${CHROMAFLOCK_AU_MAIN_TYPE} DESCRIPTION "Subtractive Synthesizer" ) target_sources(ChromaFlock PRIVATE Source/PluginProcessor.cpp Source/PluginEditor.cpp ) target_compile_definitions(ChromaFlock PUBLIC JUCE_VST3_CAN_REPLACE_VST2=0 JUCE_WEB_BROWSER=0 JUCE_USE_CURL=0 JUCE_DISPLAY_SPLASH_SCREEN=0 JUCE_PLUGIN_WANTS_MIDI=1 JUCE_MODAL_LOOPS_PERMITTED=0 ) target_link_libraries(ChromaFlock PRIVATE ChromaFlockBinaryData juce::juce_audio_basics juce::juce_audio_devices juce::juce_audio_formats juce::juce_audio_plugin_client juce::juce_audio_processors juce::juce_audio_utils juce::juce_core juce::juce_data_structures juce::juce_dsp juce::juce_events juce::juce_graphics juce::juce_gui_basics juce::juce_gui_extra )