mirror of
https://codeberg.org/armin/monoslicer.git
synced 2026-09-01 12:10:46 +02:00
94 lines
2.4 KiB
CMake
94 lines
2.4 KiB
CMake
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 TRUE
|
|
VST3_CATEGORIES Instrument Sampler
|
|
)
|
|
|
|
target_sources(Monoslicer PRIVATE
|
|
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
|
|
JUCE_WEB_BROWSER=0
|
|
JUCE_USE_CURL=0
|
|
JUCE_VST3_CAN_REPLACE_VST2=0
|
|
GIT_VERSION="${GIT_VERSION}"
|
|
)
|
|
|
|
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} -fcolor-diagnostics -Wno-deprecated-declarations -Wno-implicit-int-conversion-on-negation")
|