-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathCMakeLists.txt
108 lines (81 loc) · 3.19 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
cmake_minimum_required(VERSION 3.28)
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
set(CMAKE_OSX_DEPLOYMENT_TARGET 10.14 CACHE STRING "Build for 10.14")
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
project(six-sines VERSION 1.1.0.0 LANGUAGES C CXX)
set(PRODUCT_NAME "Six Sines")
option(USE_SANITIZER "Build and link with ASAN" FALSE)
option(COPY_AFTER_BUILD "Will copy after build" TRUE)
include(cmake/compile-options.cmake)
## New version
include(libs/sst/sst-plugininfra/cmake/git-version-functions.cmake)
version_from_versionfile_or_git()
message(STATUS "DISPLAY_VERSION=${GIT_IMPLIED_DISPLAY_VERSION}; COMMIT_HASH=${GIT_COMMIT_HASH}; BRANCH=${GIT_BRANCH}")
include(cmake/CmakeRC.cmake)
file(GLOB_RECURSE PATCHES "resources/factory_patches/*.sxsnp")
cmrc_add_resource_library(${PROJECT_NAME}-patches NAMESPACE sixsines_patches ${PATCHES})
set(JUCE_PATH "${CMAKE_SOURCE_DIR}/libs/JUCE")
add_subdirectory(libs)
add_library(${PROJECT_NAME}-impl STATIC
src/clap/six-sines-clap.cpp
src/clap/six-sines-clap-entry-impl.cpp
src/ui/six-sines-editor.cpp
src/ui/main-panel.cpp
src/ui/main-sub-panel.cpp
src/ui/matrix-panel.cpp
src/ui/matrix-sub-panel.cpp
src/ui/self-sub-panel.cpp
src/ui/mixer-panel.cpp
src/ui/mixer-sub-panel.cpp
src/ui/source-panel.cpp
src/ui/source-sub-panel.cpp
src/ui/preset-manager.cpp
src/ui/macro-panel.cpp
src/ui/finetune-sub-panel.cpp
src/ui/mainpan-sub-panel.cpp
src/ui/playmode-sub-panel.cpp
src/dsp/sintable.cpp
src/synth/synth.cpp
src/synth/voice.cpp
src/synth/patch.cpp
src/synth/mod_matrix.cpp
)
target_include_directories(${PROJECT_NAME}-impl PUBLIC src)
target_compile_definitions(${PROJECT_NAME}-impl PRIVATE
PRODUCT_NAME="${PRODUCT_NAME}"
)
target_link_libraries(${PROJECT_NAME}-impl PUBLIC
clap
)
target_link_libraries(${PROJECT_NAME}-impl PRIVATE
simde
clap-helpers clap-wrapper-extensions
mts-esp-client
fmt-header-only
sst-basic-blocks sst-voicemanager sst-jucegui sst-cpputils
sst-plugininfra
sst-plugininfra::filesystem
sst-plugininfra::tinyxml
sst-plugininfra::strnatcmp
sst-plugininfra::patchbase
sst-plugininfra::version_information
sst::clap_juce_shim sst::clap_juce_shim_headers
${PROJECT_NAME}-patches
samplerate
)
make_clapfirst_plugins(
TARGET_NAME ${PROJECT_NAME}
IMPL_TARGET ${PROJECT_NAME}-impl
OUTPUT_NAME "${PRODUCT_NAME}"
ENTRY_SOURCE src/clap/six-sines-clap-entry.cpp
BUNDLE_IDENTIFER "org.baconpaul.six-sines"
BUNDLE_VERSION ${PROJECT_VERSION}
COPY_AFTER_BUILD ${COPY_AFTER_BUILD}
PLUGIN_FORMATS CLAP VST3 AUV2
# You can add a target-per-standalone you want. Syntax here is
# target-postfix output-name clap-id
# This allows you to make multiple standalones from a multi-plugin clap
STANDALONE_CONFIGURATIONS
standalone "${PRODUCT_NAME}" "org.baconpaul.six-sines"
STANDALONE_MACOS_ICON "${CMAKE_SOURCE_DIR}/resources/mac_installer/Icon.icns"
)