chromaflock/CMakeLists.txt

89 lines
2.2 KiB
Text
Raw Normal View History

2026-07-13 20:57:38 +02:00
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()
2026-07-13 20:57:38 +02:00
juce_add_binary_data(ChromaFlockBinaryData
NAMESPACE BinaryData
SOURCES
2026-07-14 11:21:57 +02:00
bg.png
cf3d.png
newlogo.png
)
2026-07-13 20:57:38 +02:00
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()
2026-07-13 20:57:38 +02:00
juce_add_plugin(ChromaFlock
COMPANY_NAME "ChromaFlock"
PLUGIN_MANUFACTURER_CODE CFlk
PLUGIN_CODE CFlk
FORMATS ${CHROMAFLOCK_FORMATS}
2026-07-13 20:57:38 +02:00
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}
2026-07-13 20:57:38 +02:00
VST3_CATEGORIES Synth
${CHROMAFLOCK_AU_MAIN_TYPE}
2026-07-13 20:57:38 +02:00
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
)