mirror of
https://codeberg.org/armin/terion.git
synced 2026-10-11 16:41:53 +02:00
init
This commit is contained in:
parent
7e21684497
commit
5d4134966f
11 changed files with 996 additions and 0 deletions
92
CMakeLists.txt
Normal file
92
CMakeLists.txt
Normal file
|
|
@ -0,0 +1,92 @@
|
|||
cmake_minimum_required(VERSION 3.22)
|
||||
project(Terion VERSION 1.0.0 LANGUAGES C CXX)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
# Locate JUCE: prefer an explicit TERION_JUCE_DIR, then ~/JUCE, then the
|
||||
# vendored copy at third_party/JUCE (populated by `make juce`).
|
||||
if(TERION_JUCE_DIR)
|
||||
set(JUCE_DIR_SELECTED "${TERION_JUCE_DIR}")
|
||||
elseif(EXISTS "$ENV{HOME}/JUCE/CMakeLists.txt")
|
||||
set(JUCE_DIR_SELECTED "$ENV{HOME}/JUCE")
|
||||
elseif(EXISTS "${CMAKE_SOURCE_DIR}/third_party/JUCE/CMakeLists.txt")
|
||||
set(JUCE_DIR_SELECTED "${CMAKE_SOURCE_DIR}/third_party/JUCE")
|
||||
else()
|
||||
message(FATAL_ERROR "JUCE not found. Run 'make juce' to clone it into third_party/JUCE, "
|
||||
"or pass -DTERION_JUCE_DIR=/path/to/JUCE.")
|
||||
endif()
|
||||
message(STATUS "Using JUCE at: ${JUCE_DIR_SELECTED}")
|
||||
|
||||
# Git version info
|
||||
execute_process(
|
||||
COMMAND git log -1 --format=%h
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
OUTPUT_VARIABLE GIT_HASH
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
ERROR_QUIET
|
||||
)
|
||||
if(NOT GIT_HASH)
|
||||
set(GIT_HASH "unknown")
|
||||
endif()
|
||||
|
||||
execute_process(
|
||||
COMMAND git rev-list --count HEAD
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
OUTPUT_VARIABLE GIT_LOCAL_COMMITS
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
ERROR_QUIET
|
||||
)
|
||||
if(NOT GIT_LOCAL_COMMITS)
|
||||
set(GIT_LOCAL_COMMITS "0")
|
||||
endif()
|
||||
|
||||
string(TIMESTAMP BUILD_TIME "%Y-%m-%d %H:%M:%S")
|
||||
|
||||
configure_file(
|
||||
${CMAKE_SOURCE_DIR}/Source/Version.h.in
|
||||
${CMAKE_BINARY_DIR}/Version.h
|
||||
@ONLY
|
||||
)
|
||||
|
||||
add_subdirectory("${JUCE_DIR_SELECTED}" "${CMAKE_BINARY_DIR}/JUCE")
|
||||
|
||||
juce_add_plugin(Terion
|
||||
PRODUCT_NAME "Terion"
|
||||
COMPANY_NAME "Terion"
|
||||
BUNDLE_ID "com.terion.stereo-analyzer"
|
||||
PLUGIN_MANUFACTURER_CODE Teri
|
||||
PLUGIN_CODE TeAn
|
||||
FORMATS VST3 AU
|
||||
IS_SYNTH FALSE
|
||||
NEEDS_MIDI_INPUT FALSE
|
||||
NEEDS_MIDI_OUTPUT FALSE
|
||||
IS_MIDI_EFFECT FALSE
|
||||
EDITOR_WANTS_KEYBOARD_FOCUS FALSE
|
||||
COPY_PLUGIN_AFTER_BUILD TRUE
|
||||
VST3_CATEGORIES Analyzer
|
||||
)
|
||||
|
||||
target_sources(Terion PRIVATE
|
||||
Source/PluginProcessor.cpp
|
||||
Source/PluginEditor.cpp
|
||||
Source/VectorScope.cpp
|
||||
Source/ArcKnob.cpp
|
||||
)
|
||||
|
||||
target_compile_definitions(Terion PUBLIC
|
||||
JUCE_WEB_BROWSER=0
|
||||
JUCE_USE_CURL=0
|
||||
JUCE_VST3_CAN_REPLACE_VST2=0
|
||||
)
|
||||
|
||||
target_link_libraries(Terion PRIVATE
|
||||
juce::juce_audio_utils
|
||||
juce::juce_dsp
|
||||
juce::juce_opengl
|
||||
juce::juce_graphics
|
||||
juce::juce_gui_basics
|
||||
juce::juce_gui_extra
|
||||
)
|
||||
|
||||
target_include_directories(Terion PRIVATE ${CMAKE_BINARY_DIR})
|
||||
Loading…
Add table
Add a link
Reference in a new issue