horizont/CMakeLists.txt

76 lines
2.3 KiB
Text
Raw Normal View History

2026-08-10 12:55:02 +02:00
cmake_minimum_required(VERSION 3.22)
project(Horizont
VERSION 1.0.0
LANGUAGES C CXX)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Release)
endif()
if(DEFINED JUCE_ROOT AND EXISTS "${JUCE_ROOT}/CMakeLists.txt")
message(STATUS "Using JUCE from ${JUCE_ROOT}")
add_subdirectory("${JUCE_ROOT}" "${CMAKE_BINARY_DIR}/JUCE")
elseif(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/JUCE/CMakeLists.txt")
message(STATUS "Using JUCE from ${CMAKE_CURRENT_SOURCE_DIR}/JUCE")
add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/JUCE")
else()
list(APPEND CMAKE_PREFIX_PATH "${CMAKE_CURRENT_SOURCE_DIR}/JUCE")
find_package(JUCE CONFIG REQUIRED)
endif()
juce_add_plugin(Horizont
VERSION "1.0.0"
PRODUCT_NAME "Horizont"
COMPANY_NAME "Horizont"
BUNDLE_ID "com.horizont.Horizont"
PLUGIN_MANUFACTURER_CODE "ARMN"
PLUGIN_CODE "RVRB"
DESCRIPTION "Algorithmic stereo reverb with feedback pitch shifting"
IS_SYNTH FALSE
IS_MIDI_EFFECT FALSE
NEEDS_MIDI_INPUT FALSE
NEEDS_MIDI_OUTPUT FALSE
FORMATS "VST3" "AU"
COPY_PLUGIN_AFTER_BUILD FALSE
)
juce_generate_juce_header(Horizont)
# We only ship a VST3 (never released a VST2), so tell JUCE it doesn't need to
# keep parameter IDs compatible with a VST2 version of this plugin.
target_compile_definitions(Horizont PUBLIC JUCE_VST3_CAN_REPLACE_VST2=0)
string(TIMESTAMP BUILD_TIMESTAMP "%Y-%m-%d__%H-%M-%S")
set(HORIZONT_GIT_REVISION "unknown")
find_package(Git QUIET)
if(Git_FOUND)
execute_process(
COMMAND ${GIT_EXECUTABLE} describe --tags --always --dirty
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
OUTPUT_VARIABLE HORIZONT_GIT_REVISION
OUTPUT_STRIP_TRAILING_WHITESPACE
ERROR_QUIET)
endif()
target_compile_definitions(Horizont PRIVATE
HORIZONT_VERSION="${PROJECT_VERSION}"
HORIZONT_GIT_REVISION="${HORIZONT_GIT_REVISION}"
HORIZONT_BUILD_TIMESTAMP="${BUILD_TIMESTAMP}")
target_sources(Horizont PRIVATE
Source/PluginProcessor.cpp
Source/PluginEditor.cpp
Source/HorizontEngine.cpp
Source/PitchShifter.cpp
Source/HorizontLookAndFeel.cpp
Source/Knob.cpp
Source/SpectrumDisplay.cpp
Source/Presets.h
)
target_link_libraries(Horizont PRIVATE juce::juce_dsp)