-
Notifications
You must be signed in to change notification settings - Fork 6
/
CMakeLists.txt
254 lines (233 loc) · 16.2 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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
cmake_policy(SET CMP0091 NEW)
cmake_minimum_required(VERSION 3.21)
project(infernal-synth)
SET(INFERNAL_VERSION "1.4")
# Build config.
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CONFIGURATION_TYPES "Debug;Release")
# Dependency versions.
set(HIIR_SRC_DIR "lib/hiir_1.40")
set(JUCE_SRC_DIR "lib/JUCE_7.0.5")
set(CLAP_SDK_SRC_DIR "lib/clap_1.1.8")
set(VST3_SDK_SRC_DIR "lib/vst3sdk_3.7.8")
set(RWQ_SRC_DIR "lib/readerwriterqueue_2dee33ae3edd1e454ac34fea0a27017613355eff")
# Juce flags.
add_definitions(-DJUCE_USE_CURL=0)
add_definitions(-DJUCE_DISPLAY_SPLASH_SCREEN=0)
add_definitions(-DJUCE_MODAL_LOOPS_PERMITTED=0)
add_definitions(-DJUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1)
# Juce linux dependencies.
if (NOT MSVC)
find_package(Freetype REQUIRED)
endif()
# VST3 flags.
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -DRELEASE=1")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DDEVELOPMENT=1")
# Compiler flags.
if (MSVC)
add_definitions(-DJUCE_WINDOWS=1 -D_CRT_SECURE_NO_WARNINGS=1)
add_compile_options(/W4;/WX;/wd4100;/wd4388;/wd26451;/wd26498;/wd26812;/fp:fast;/arch:AVX;/external:W0)
else ()
add_definitions(-DJUCE_LINUX=1 -DJUCE_GUI_BASICS_INCLUDE_XHEADERS=1)
add_compile_options(-std=c++2a;-Wall;-Wextra;-Werror;-Wno-cpp;-Wno-sign-compare;-Wno-unused-parameter;-Wfatal-errors;-ffast-math;-march=native)
set(CMAKE_SHARED_LIBRARY_PREFIX "")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -Wl,--no-undefined -fvisibility=hidden -fvisibility-inlines-hidden -pthread")
endif()
# Juce core library.
file (GLOB JUCE_CORE_SRC "${JUCE_SRC_DIR}/modules/juce_core/juce_core.cpp")
add_library(lib.juce.core STATIC ${JUCE_CORE_SRC})
target_include_directories(lib.juce.core SYSTEM PRIVATE ${JUCE_SRC_DIR}/modules)
# Juce data structures library.
file (GLOB JUCE_DATA_STRUCTURES_SRC "${JUCE_SRC_DIR}/modules/juce_data_structures/juce_data_structures.cpp")
add_library(lib.juce.data_structures STATIC ${JUCE_DATA_STRUCTURES_SRC})
target_include_directories(lib.juce.data_structures SYSTEM PRIVATE ${JUCE_SRC_DIR}/modules)
# Juce graphics library.
file (GLOB JUCE_GRAPHICS_SRC "${JUCE_SRC_DIR}/modules/juce_graphics/juce_graphics.cpp")
add_library(lib.juce.graphics STATIC ${JUCE_GRAPHICS_SRC})
target_include_directories(lib.juce.graphics SYSTEM PRIVATE ${JUCE_SRC_DIR}/modules)
if (NOT MSVC)
target_link_libraries(lib.juce.graphics ${FREETYPE_LIBRARIES})
target_include_directories(lib.juce.graphics PRIVATE ${FREETYPE_INCLUDE_DIRS})
endif ()
# Juce events library.
file (GLOB JUCE_EVENTS_SRC "${JUCE_SRC_DIR}/modules/juce_events/juce_events.cpp")
add_library(lib.juce.events STATIC ${JUCE_EVENTS_SRC})
target_include_directories(lib.juce.events SYSTEM PRIVATE ${JUCE_SRC_DIR}/modules)
# Juce gui basics library.
file (GLOB JUCE_GUI_BASICS_SRC "${JUCE_SRC_DIR}/modules/juce_gui_basics/juce_gui_basics.cpp")
add_library(lib.juce.gui_basics STATIC ${JUCE_GUI_BASICS_SRC})
target_include_directories(lib.juce.gui_basics SYSTEM PRIVATE ${JUCE_SRC_DIR}/modules)
if (MSVC)
target_compile_options(lib.juce.gui_basics PRIVATE "$<$<CONFIG:Debug>:/bigobj>")
endif ()
# Vst3 sdk library.
file (GLOB VST3_BASE_SOURCE "${VST3_SDK_SRC_DIR}/base/source/*.cpp" "${VST3_SDK_SRC_DIR}/base/source/*.h")
file (GLOB VST3_BASE_THREAD_SOURCE "${VST3_SDK_SRC_DIR}/base/thread/source/*.cpp" "${VST3_SDK_SRC_DIR}/base/thread/source/*.h")
file (GLOB VST3_BASE_THREAD_INCLUDE "${VST3_SDK_SRC_DIR}/base/thread/include/*.cpp" "${VST3_SDK_SRC_DIR}/base/thread/include/*.h")
file (GLOB VST3_PLUGINTERFACES_GUI "${VST3_SDK_SRC_DIR}/pluginterfaces/gui/*.cpp" "${VST3_SDK_SRC_DIR}/pluginterfaces/gui/*.h")
file (GLOB VST3_PLUGINTERFACES_VST "${VST3_SDK_SRC_DIR}/pluginterfaces/vst/*.cpp" "${VST3_SDK_SRC_DIR}/pluginterfaces/vst/*.h")
file (GLOB VST3_PLUGINTERFACES_BASE "${VST3_SDK_SRC_DIR}/pluginterfaces/base/*.cpp" "${VST3_SDK_SRC_DIR}/pluginterfaces/base/*.h")
file (GLOB VST3_PUBLIC_SDK_SOURCE_VST "${VST3_SDK_SRC_DIR}/public.sdk/source/vst/*.cpp" "${VST3_SDK_SRC_DIR}/public.sdk/source/vst/*.h")
file (GLOB VST3_PUBLIC_SDK_SOURCE_COMMON "${VST3_SDK_SRC_DIR}/public.sdk/source/common/*.cpp" "${VST3_SDK_SRC_DIR}/public.sdk/source/common/*.h")
file (GLOB VST3_PUBLIC_SDK_SOURCE_VST_VSTGUIEDITOR "${VST3_SDK_SRC_DIR}/public.sdk/source/vst/vstguieditor.cpp")
file (GLOB VST3_PUBLIC_SDK_SOURCE_VST_VSTGUI_WIN32_BUNDLE_SUPPORT "${VST3_SDK_SRC_DIR}/public.sdk/source/vst/vstgui_win32_bundle_support.cpp")
list (REMOVE_ITEM VST3_PUBLIC_SDK_SOURCE_VST ${VST3_PUBLIC_SDK_SOURCE_VST_VSTGUIEDITOR})
list (REMOVE_ITEM VST3_PUBLIC_SDK_SOURCE_VST ${VST3_PUBLIC_SDK_SOURCE_VST_VSTGUI_WIN32_BUNDLE_SUPPORT})
if (MSVC)
file (GLOB VST3_PUBLIC_SDK_SOURCE_MAIN
"${VST3_SDK_SRC_DIR}/public.sdk/source/main/dllmain.cpp"
"${VST3_SDK_SRC_DIR}/public.sdk/source/main/moduleinit.cpp"
"${VST3_SDK_SRC_DIR}/public.sdk/source/main/moduleinit.h"
"${VST3_SDK_SRC_DIR}/public.sdk/source/main/pluginfactory.cpp"
"${VST3_SDK_SRC_DIR}/public.sdk/source/main/pluginfactory.h"
"${VST3_SDK_SRC_DIR}/public.sdk/source/main/pluginfactory_constexpr.h")
else()
file (GLOB VST3_PUBLIC_SDK_SOURCE_MAIN
"${VST3_SDK_SRC_DIR}/public.sdk/source/main/linuxmain.cpp"
"${VST3_SDK_SRC_DIR}/public.sdk/source/main/moduleinit.cpp"
"${VST3_SDK_SRC_DIR}/public.sdk/source/main/moduleinit.h"
"${VST3_SDK_SRC_DIR}/public.sdk/source/main/pluginfactory.cpp"
"${VST3_SDK_SRC_DIR}/public.sdk/source/main/pluginfactory.h"
"${VST3_SDK_SRC_DIR}/public.sdk/source/main/pluginfactory_constexpr.h")
endif()
add_library(lib.vst3sdk STATIC
${VST3_BASE_SOURCE}
${VST3_BASE_THREAD_SOURCE} ${VST3_BASE_THREAD_INCLUDE}
${VST3_PLUGINTERFACES_GUI} ${VST3_PLUGINTERFACES_VST} ${VST3_PLUGINTERFACES_BASE}
${VST3_PUBLIC_SDK_SOURCE_COMMON} ${VST3_PUBLIC_SDK_SOURCE_MAIN} ${VST3_PUBLIC_SDK_SOURCE_VST})
target_include_directories(lib.vst3sdk SYSTEM PRIVATE ${VST3_SDK_SRC_DIR})
if (MSVC)
target_compile_options(lib.vst3sdk PRIVATE /wd4245)
else ()
target_compile_options(lib.vst3sdk PRIVATE -w)
endif ()
# Inf base library.
set(INF_BASE_SRC_DIR "src/inf.base")
file(GLOB_RECURSE INF_BASE_SRC "${INF_BASE_SRC_DIR}/*.*")
add_library(infernal.base STATIC ${INF_BASE_SRC})
target_include_directories(infernal.base PRIVATE ${INF_BASE_SRC_DIR})
target_include_directories(infernal.base SYSTEM PRIVATE ${HIIR_SRC_DIR})
target_include_directories(infernal.base SYSTEM PRIVATE ${JUCE_SRC_DIR}/modules)
if (MSVC)
source_group(TREE "../../${INF_BASE_SRC_DIR}" FILES ${INF_BASE_SRC})
endif()
# Inf base ui library.
set(INF_BASE_UI_SRC_DIR "src/inf.base.ui")
file(GLOB_RECURSE INF_BASE_UI_SRC "${INF_BASE_UI_SRC_DIR}/*.*")
add_library(infernal.base.ui STATIC ${INF_BASE_UI_SRC})
target_include_directories(infernal.base.ui PRIVATE ${INF_BASE_UI_SRC_DIR} ${INF_BASE_SRC_DIR})
target_include_directories(infernal.base.ui SYSTEM PRIVATE ${JUCE_SRC_DIR}/modules)
if (MSVC)
source_group(TREE "../../${INF_BASE_UI_SRC_DIR}" FILES ${INF_BASE_UI_SRC})
endif()
# Inf base format vst3 library.
set(INF_BASE_FORMAT_VST3_SRC_DIR "src/inf.base.format.vst3")
file(GLOB_RECURSE INF_BASE_FORMAT_VST3_SRC "${INF_BASE_FORMAT_VST3_SRC_DIR}/*.*")
add_library(infernal.base.format.vst3 STATIC ${INF_BASE_FORMAT_VST3_SRC})
target_compile_definitions(infernal.base.format.vst3 PRIVATE $<$<CONFIG:Debug>:DEVELOPMENT=1>)
target_include_directories(infernal.base.format.vst3 PRIVATE ${INF_BASE_FORMAT_VST3_SRC_DIR} ${INF_BASE_SRC_DIR} ${INF_BASE_UI_SRC_DIR})
target_include_directories(infernal.base.format.vst3 SYSTEM PRIVATE ${VST3_SDK_SRC_DIR} ${JUCE_SRC_DIR}/modules)
if (MSVC)
source_group(TREE "../../${INF_BASE_FORMAT_VST3_SRC_DIR}" FILES ${INF_BASE_FORMAT_VST3_SRC})
target_compile_options(infernal.base.format.vst3 PRIVATE /external:I ${VST3_SDK_SRC_DIR})
endif()
# Inf base format clap library.
set(INF_BASE_FORMAT_CLAP_SRC_DIR "src/inf.base.format.clap")
file(GLOB_RECURSE INF_BASE_FORMAT_CLAP_SRC "${INF_BASE_FORMAT_CLAP_SRC_DIR}/*.*")
add_library(infernal.base.format.clap STATIC ${INF_BASE_FORMAT_CLAP_SRC})
target_include_directories(infernal.base.format.clap PRIVATE ${INF_BASE_FORMAT_CLAP_SRC_DIR} ${INF_BASE_SRC_DIR} ${INF_BASE_UI_SRC_DIR})
target_include_directories(infernal.base.format.clap SYSTEM PRIVATE ${CLAP_SDK_SRC_DIR} ${RWQ_SRC_DIR} ${JUCE_SRC_DIR}/modules)
if (MSVC)
source_group(TREE "../../${INF_BASE_FORMAT_CLAP_SRC_DIR}" FILES ${INF_BASE_FORMAT_CLAP_SRC})
target_compile_options(infernal.base.format.clap PRIVATE /external:I ${CLAP_SDK_SRC_DIR})
endif()
# Inf plugin infernal synth library.
set(INF_PLUGIN_INFERNAL_SYNTH_SRC_DIR "src/inf.plugin.infernal_synth")
file(GLOB_RECURSE INF_PLUGIN_INFERNAL_SYNTH_SRC "${INF_PLUGIN_INFERNAL_SYNTH_SRC_DIR}/*.*")
add_library(infernal.plugin.infernal_synth STATIC ${INF_PLUGIN_INFERNAL_SYNTH_SRC})
target_include_directories(infernal.plugin.infernal_synth PRIVATE ${INF_PLUGIN_INFERNAL_SYNTH_SRC_DIR} ${INF_BASE_SRC_DIR})
target_include_directories(infernal.plugin.infernal_synth SYSTEM PRIVATE ${HIIR_SRC_DIR})
target_include_directories(infernal.plugin.infernal_synth SYSTEM PRIVATE ${JUCE_SRC_DIR}/modules)
if (MSVC)
source_group(TREE "../../${INF_PLUGIN_INFERNAL_SYNTH_SRC_DIR}" FILES ${INF_PLUGIN_INFERNAL_SYNTH_SRC})
endif()
# Inf plugin infernal synth ui library.
set(INF_PLUGIN_INFERNAL_SYNTH_UI_SRC_DIR "src/inf.plugin.infernal_synth.ui")
file(GLOB_RECURSE INF_PLUGIN_INFERNAL_SYNTH_UI_SRC "${INF_PLUGIN_INFERNAL_SYNTH_UI_SRC_DIR}/*.*")
add_library(infernal.plugin.infernal_synth.ui STATIC ${INF_PLUGIN_INFERNAL_SYNTH_UI_SRC})
target_include_directories(infernal.plugin.infernal_synth.ui PRIVATE ${INF_PLUGIN_INFERNAL_SYNTH_UI_SRC_DIR}
${INF_PLUGIN_INFERNAL_SYNTH_SRC_DIR} ${INF_BASE_UI_SRC_DIR} ${INF_BASE_SRC_DIR})
target_include_directories(infernal.plugin.infernal_synth.ui SYSTEM PRIVATE ${JUCE_SRC_DIR}/modules)
if (MSVC)
source_group(TREE "../../${INF_PLUGIN_INFERNAL_SYNTH_UI_SRC_DIR}" FILES ${INF_PLUGIN_INFERNAL_SYNTH_UI_SRC})
endif()
# Inf plugin infernal synth format vst3fx and vst3i.
function(declare_inf_plugin_infernal_synth_format_vst3 target_name target_type is_fx target_suffix preset_suffix)
set(INF_PLUGIN_INFERNAL_SYNTH_FORMAT_VST3_SRC_DIR "src/inf.plugin.infernal_synth.format.vst3")
file(GLOB_RECURSE INF_PLUGIN_INFERNAL_SYNTH_FORMAT_VST3_SRC "${INF_PLUGIN_INFERNAL_SYNTH_FORMAT_VST3_SRC_DIR}/*.*")
add_library(${target_name} SHARED ${INF_PLUGIN_INFERNAL_SYNTH_FORMAT_VST3_SRC})
target_compile_definitions(${target_name} PRIVATE -DIPISFV3_FX=${is_fx})
target_include_directories(${target_name} SYSTEM PRIVATE ${VST3_SDK_SRC_DIR} ${JUCE_SRC_DIR}/modules)
target_include_directories(${target_name} PRIVATE ${INF_BASE_SRC_DIR} ${INF_BASE_UI_SRC_DIR} ${INF_PLUGIN_INFERNAL_SYNTH_SRC_DIR}
${INF_PLUGIN_INFERNAL_SYNTH_UI_SRC_DIR} ${INF_BASE_FORMAT_VST3_SRC_DIR} ${INF_PLUGIN_INFERNAL_SYNTH_FORMAT_VST3_SRC_DIR})
set_target_properties(${target_name} PROPERTIES OUTPUT_NAME "InfernalSynth${target_suffix}${INFERNAL_VERSION}")
target_link_libraries(${target_name} infernal.plugin.infernal_synth infernal.plugin.infernal_synth.ui infernal.base.format.vst3
infernal.base.ui infernal.base lib.vst3sdk lib.juce.gui_basics lib.juce.graphics lib.juce.events lib.juce.data_structures lib.juce.core)
add_custom_target(${target_name}-copy-themes ALL DEPENDS ${target_name} COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/themes
"${PROJECT_SOURCE_DIR}/dist/$<$<CONFIG:Debug>:Debug>$<$<CONFIG:Release>:Release>/${target_type}/InfernalSynth/InfernalSynth${target_suffix}${INFERNAL_VERSION}.vst3/Contents/Resources/Themes")
add_custom_target(${target_name}-copy-presets ALL DEPENDS ${target_name} COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/presets/${preset_suffix}
"${PROJECT_SOURCE_DIR}/dist/$<$<CONFIG:Debug>:Debug>$<$<CONFIG:Release>:Release>/${target_type}/InfernalSynth/InfernalSynth${target_suffix}${INFERNAL_VERSION}.vst3/Contents/Resources/Presets")
if (MSVC)
set_target_properties(${target_name} PROPERTIES SUFFIX ".vst3")
source_group(TREE "../../${INF_PLUGIN_INFERNAL_SYNTH_FORMAT_VST3_SRC_DIR}" FILES ${INF_PLUGIN_INFERNAL_SYNTH_FORMAT_VST3_SRC})
target_compile_options(${target_name} PRIVATE "SHELL:/external:I ${VST3_SDK_SRC_DIR}")
set_target_properties(${target_name} PROPERTIES RUNTIME_OUTPUT_DIRECTORY
"${PROJECT_SOURCE_DIR}/dist/$<$<CONFIG:Debug>:Debug>$<$<CONFIG:Release>:Release>/${target_type}/InfernalSynth/InfernalSynth${target_suffix}${INFERNAL_VERSION}.vst3/Contents/x86_64-win")
else ()
set_target_properties(${target_name} PROPERTIES LIBRARY_OUTPUT_DIRECTORY
"${PROJECT_SOURCE_DIR}/dist/${CMAKE_BUILD_TYPE}/${target_type}/InfernalSynth/InfernalSynth${target_suffix}${INFERNAL_VERSION}.vst3/Contents/x86_64-linux")
endif()
endfunction()
if (MSVC)
declare_inf_plugin_infernal_synth_format_vst3(infernal.plugin.infernal_synth.format.vst3i win-vst3 0 "" "Instrument")
declare_inf_plugin_infernal_synth_format_vst3(infernal.plugin.infernal_synth.format.vst3fx win-vst3 1 "FX" "FX")
else ()
declare_inf_plugin_infernal_synth_format_vst3(infernal.plugin.infernal_synth.format.vst3i linux-vst3 0 "" "Instrument")
declare_inf_plugin_infernal_synth_format_vst3(infernal.plugin.infernal_synth.format.vst3fx linux-vst3 1 "FX" "FX")
endif ()
# Inf plugin infernal synth format clapfx and clapi.
function(declare_inf_plugin_infernal_synth_format_clap target_name target_type is_fx target_suffix preset_suffix)
set(INF_PLUGIN_INFERNAL_SYNTH_FORMAT_CLAP_SRC_DIR "src/inf.plugin.infernal_synth.format.clap")
file(GLOB_RECURSE INF_PLUGIN_INFERNAL_SYNTH_FORMAT_CLAP_SRC "${INF_PLUGIN_INFERNAL_SYNTH_FORMAT_CLAP_SRC_DIR}/*.*")
add_library(${target_name} SHARED ${INF_PLUGIN_INFERNAL_SYNTH_FORMAT_CLAP_SRC})
target_compile_definitions(${target_name} PRIVATE -DIPISFCLAP_FX=${is_fx})
target_include_directories(${target_name} SYSTEM PRIVATE ${CLAP_SDK_SRC_DIR} ${RWQ_SRC_DIR} ${JUCE_SRC_DIR}/modules)
target_include_directories(${target_name} PRIVATE ${INF_BASE_SRC_DIR} ${INF_BASE_UI_SRC_DIR} ${INF_PLUGIN_INFERNAL_SYNTH_SRC_DIR}
${INF_PLUGIN_INFERNAL_SYNTH_UI_SRC_DIR} ${INF_BASE_FORMAT_CLAP_SRC_DIR} ${INF_PLUGIN_INFERNAL_SYNTH_FORMAT_CLAP_SRC_DIR})
set_target_properties(${target_name} PROPERTIES OUTPUT_NAME "InfernalSynth${target_suffix}${INFERNAL_VERSION}")
target_link_libraries(${target_name} infernal.plugin.infernal_synth infernal.plugin.infernal_synth.ui infernal.base.format.clap
infernal.base.ui infernal.base lib.juce.gui_basics lib.juce.graphics lib.juce.events lib.juce.data_structures lib.juce.core)
add_custom_target(${target_name}-copy-themes ALL DEPENDS ${target_name} COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/themes
"${PROJECT_SOURCE_DIR}/dist/$<$<CONFIG:Debug>:Debug>$<$<CONFIG:Release>:Release>/${target_type}/InfernalSynth/InfernalSynth${target_suffix}${INFERNAL_VERSION}/Themes")
add_custom_target(${target_name}-copy-presets ALL DEPENDS ${target_name} COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/presets/${preset_suffix}
"${PROJECT_SOURCE_DIR}/dist/$<$<CONFIG:Debug>:Debug>$<$<CONFIG:Release>:Release>/${target_type}/InfernalSynth/InfernalSynth${target_suffix}${INFERNAL_VERSION}/Presets")
if (MSVC)
set_target_properties(${target_name} PROPERTIES SUFFIX ".clap")
source_group(TREE "../../${INF_PLUGIN_INFERNAL_SYNTH_FORMAT_CLAP_SRC_DIR}" FILES ${INF_PLUGIN_INFERNAL_SYNTH_FORMAT_CLAP_SRC})
target_compile_options(${target_name} PRIVATE "SHELL:/external:I ${CLAP_SDK_SRC_DIR}")
set_target_properties(${target_name} PROPERTIES RUNTIME_OUTPUT_DIRECTORY
"${PROJECT_SOURCE_DIR}/dist/$<$<CONFIG:Debug>:Debug>$<$<CONFIG:Release>:Release>/${target_type}/InfernalSynth/InfernalSynth${target_suffix}${INFERNAL_VERSION}")
else ()
set_target_properties(${target_name} PROPERTIES LIBRARY_OUTPUT_DIRECTORY
"${PROJECT_SOURCE_DIR}/dist/${CMAKE_BUILD_TYPE}/${target_type}/InfernalSynth/InfernalSynth${target_suffix}${INFERNAL_VERSION}")
endif()
endfunction()
if (MSVC)
declare_inf_plugin_infernal_synth_format_clap(infernal.plugin.infernal_synth.format.clapi win-clap 0 "" "Instrument")
declare_inf_plugin_infernal_synth_format_clap(infernal.plugin.infernal_synth.format.clapfx win-clap 1 "FX" "FX")
else ()
declare_inf_plugin_infernal_synth_format_clap(infernal.plugin.infernal_synth.format.clapi linux-clap 0 "" "Instrument")
declare_inf_plugin_infernal_synth_format_clap(infernal.plugin.infernal_synth.format.clapfx linux-clap 1 "FX" "FX")
endif ()