monoslicer/CMakeLists.txt

94 lines
2.4 KiB
Text
Raw Normal View History

2026-07-21 02:06:45 +02:00
cmake_minimum_required(VERSION 3.22)
project(Monoslicer VERSION 1.0.0 LANGUAGES C CXX)
2026-07-21 02:06:45 +02:00
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
add_subdirectory(lib/JUCE)
juce_add_plugin(Monoslicer
COMPANY_NAME "Monoslicer"
2026-07-21 02:06:45 +02:00
PLUGIN_MANUFACTURER_CODE RcSp
PLUGIN_CODE MsP1
FORMATS AU VST3 Standalone
PRODUCT_NAME "Monoslicer"
2026-07-21 02:06:45 +02:00
IS_SYNTH TRUE
NEEDS_MIDI_INPUT TRUE
NEEDS_MIDI_OUTPUT FALSE
IS_MIDI_EFFECT FALSE
EDITOR_WANTS_KEYBOARD_FOCUS TRUE
COPY_PLUGIN_AFTER_BUILD TRUE
2026-07-21 02:06:45 +02:00
VST3_CATEGORIES Instrument Sampler
)
target_sources(Monoslicer PRIVATE
2026-07-21 02:06:45 +02:00
Source/PluginProcessor.cpp
Source/PluginEditor.cpp
Source/SliceManager.cpp
Source/WaveformDisplay.cpp
Source/PianoRollDisplay.cpp
)
execute_process(
COMMAND git rev-parse --short HEAD
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
OUTPUT_VARIABLE GIT_COMMIT_HASH
OUTPUT_STRIP_TRAILING_WHITESPACE
ERROR_QUIET
)
if(NOT GIT_COMMIT_HASH)
set(GIT_COMMIT_HASH "unknown")
endif()
execute_process(
COMMAND git symbolic-ref --short HEAD
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
OUTPUT_VARIABLE GIT_BRANCH
OUTPUT_STRIP_TRAILING_WHITESPACE
ERROR_QUIET
)
execute_process(
COMMAND git diff --quiet HEAD
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
RESULT_VARIABLE GIT_DIRTY_RESULT
)
execute_process(
COMMAND git diff --cached --quiet
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
RESULT_VARIABLE GIT_CACHED_DIRTY_RESULT
)
set(GIT_DIRTY "")
if(NOT GIT_DIRTY_RESULT EQUAL 0 OR NOT GIT_CACHED_DIRTY_RESULT EQUAL 0)
set(GIT_DIRTY "-dirty")
endif()
if(GIT_BRANCH)
set(GIT_VERSION "${GIT_BRANCH} @ ${GIT_COMMIT_HASH}${GIT_DIRTY}")
else()
set(GIT_VERSION "detached @ ${GIT_COMMIT_HASH}${GIT_DIRTY}")
endif()
target_compile_definitions(Monoslicer PUBLIC
2026-07-21 02:06:45 +02:00
JUCE_WEB_BROWSER=0
JUCE_USE_CURL=0
JUCE_VST3_CAN_REPLACE_VST2=0
GIT_VERSION="${GIT_VERSION}"
2026-07-21 02:06:45 +02:00
)
target_link_libraries(Monoslicer
2026-07-21 02:06:45 +02:00
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")