cmake_minimum_required(VERSION 3.22) project(Monoslicer VERSION 1.0.0 LANGUAGES C CXX) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) add_subdirectory(lib/JUCE) juce_add_plugin(Monoslicer COMPANY_NAME "Monoslicer" PLUGIN_MANUFACTURER_CODE RcSp PLUGIN_CODE MsP1 FORMATS AU VST3 Standalone PRODUCT_NAME "Monoslicer" IS_SYNTH TRUE NEEDS_MIDI_INPUT TRUE NEEDS_MIDI_OUTPUT FALSE IS_MIDI_EFFECT FALSE EDITOR_WANTS_KEYBOARD_FOCUS TRUE COPY_PLUGIN_AFTER_BUILD FALSE VST3_CATEGORIES Instrument Sampler ) target_sources(Monoslicer PRIVATE Source/PluginProcessor.cpp Source/PluginEditor.cpp Source/SliceManager.cpp Source/WaveformDisplay.cpp Source/PianoRollDisplay.cpp ) target_compile_definitions(Monoslicer PUBLIC JUCE_WEB_BROWSER=0 JUCE_USE_CURL=0 JUCE_VST3_CAN_REPLACE_VST2=0 ) target_link_libraries(Monoslicer PRIVATE juce::juce_audio_utils juce::juce_audio_processors juce::juce_audio_formats juce::juce_dsp PUBLIC juce::juce_recommended_config_flags juce::juce_recommended_lto_flags ) # Suppress JUCE / VST3 SDK warnings globally for all targets. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-declarations -Wno-implicit-int-conversion-on-negation")