mirror of
https://codeberg.org/armin/monostep.git
synced 2026-09-01 04:10:46 +02:00
MonoStep: monophonic 2-oscillator step-sequencer synth
This commit is contained in:
commit
e52e5cb161
14 changed files with 2674 additions and 0 deletions
97
CMakeLists.txt
Normal file
97
CMakeLists.txt
Normal file
|
|
@ -0,0 +1,97 @@
|
|||
cmake_minimum_required(VERSION 3.22)
|
||||
|
||||
project(MonoStep VERSION 1.0.0 LANGUAGES C CXX)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_OSX_DEPLOYMENT_TARGET "12.0")
|
||||
set(CMAKE_OSX_ARCHITECTURES "arm64")
|
||||
|
||||
# --- build metadata (git info + build date) ----------------------------------
|
||||
set(MONOSTEP_GIT_STRING "no-vcs")
|
||||
|
||||
find_package(Git QUIET)
|
||||
if(Git_FOUND)
|
||||
execute_process(
|
||||
COMMAND ${GIT_EXECUTABLE} -C "${CMAKE_CURRENT_LIST_DIR}" rev-parse --short HEAD
|
||||
OUTPUT_VARIABLE MONOSTEP_GIT_HASH
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
ERROR_QUIET
|
||||
)
|
||||
execute_process(
|
||||
COMMAND ${GIT_EXECUTABLE} -C "${CMAKE_CURRENT_LIST_DIR}" status --porcelain
|
||||
OUTPUT_VARIABLE MONOSTEP_GIT_PORCELAIN
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
ERROR_QUIET
|
||||
)
|
||||
|
||||
if(MONOSTEP_GIT_HASH)
|
||||
set(MONOSTEP_GIT_STRING "${MONOSTEP_GIT_HASH}")
|
||||
if(NOT MONOSTEP_GIT_PORCELAIN STREQUAL "")
|
||||
string(APPEND MONOSTEP_GIT_STRING "-dirty")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT DEFINED JUCE_DIR)
|
||||
set(JUCE_DIR "${CMAKE_CURRENT_LIST_DIR}/../juce")
|
||||
endif()
|
||||
|
||||
if(NOT EXISTS "${JUCE_DIR}/CMakeLists.txt")
|
||||
message(FATAL_ERROR "JUCE not found at ${JUCE_DIR}. Pass -DJUCE_DIR=<path> or clone it next to this project.")
|
||||
endif()
|
||||
|
||||
add_subdirectory("${JUCE_DIR}" juce_build)
|
||||
|
||||
juce_add_plugin(MonoStep
|
||||
VERSION 1.0.0
|
||||
COMPANY_NAME "armin"
|
||||
BUNDLE_ID "com.armin.monostep"
|
||||
FORMATS VST3
|
||||
PRODUCT_NAME "MonoStep"
|
||||
PLUGIN_MANUFACTURER_CODE Armn
|
||||
PLUGIN_CODE MStp
|
||||
DESCRIPTION "Monophonic 2-oscillator step-sequencer synth"
|
||||
EDITOR_NAME MonoStepAudioProcessorEditor
|
||||
IS_SYNTH TRUE
|
||||
NEEDS_MIDI_INPUT TRUE
|
||||
VST3_AUTO_MANIFEST TRUE
|
||||
)
|
||||
|
||||
juce_generate_juce_header(MonoStep)
|
||||
|
||||
target_sources(MonoStep PRIVATE
|
||||
Source/PluginProcessor.cpp
|
||||
Source/PluginEditor.cpp
|
||||
Source/ui/SequencerMatrix.cpp
|
||||
)
|
||||
|
||||
target_include_directories(MonoStep PRIVATE Source)
|
||||
|
||||
target_compile_definitions(MonoStep PRIVATE
|
||||
JUCE_WEB_BROWSER=0
|
||||
JUCE_VST3_CAN_REPLACE_VST2=0
|
||||
MONOSTEP_GIT_INFO="${MONOSTEP_GIT_STRING}"
|
||||
)
|
||||
|
||||
option(MONOSTEP_BUILD_TESTS "Build the headless host test" ON)
|
||||
|
||||
if(MONOSTEP_BUILD_TESTS)
|
||||
juce_add_console_app(MonoStepTestHost
|
||||
PRODUCT_NAME MonoStepTestHost
|
||||
)
|
||||
juce_generate_juce_header(MonoStepTestHost)
|
||||
target_link_libraries(MonoStepTestHost PRIVATE
|
||||
juce::juce_audio_processors
|
||||
juce::juce_audio_formats
|
||||
)
|
||||
target_include_directories(MonoStepTestHost PRIVATE Source)
|
||||
target_sources(MonoStepTestHost PRIVATE
|
||||
Source/PluginProcessor.cpp
|
||||
tests/TestHost.cpp
|
||||
)
|
||||
target_compile_definitions(MonoStepTestHost PRIVATE
|
||||
MONOSTEP_HEADLESS=1
|
||||
JUCE_PLUGINHOST_VST3=1
|
||||
)
|
||||
endif()
|
||||
Loading…
Add table
Add a link
Reference in a new issue