-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
408 lines (335 loc) · 17 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
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
# ---------------------------------------------------------------------------------
#
# --- CMakeLists.txt
# --- ASPiK(TM) Plugin Development Framework
# --- http://www.aspikplugins.com
# --- http://www.willpirkle.com
# --- Author: Will Pirkle
# --- Date: 16 Sept 2018
#
# ---------------------------------------------------------------------------------
cmake_minimum_required (VERSION 3.4.3)
# ---------------------------------------------------------------------------------
# --- BEGIN USER INPUT
# ---------------------------------------------------------------------------------
# ---------------------------------------------------------------------------------
#
# --- UNIVERSAL SDK FOLDER NAMES
#
# ---------------------------------------------------------------------------------
#
# --- Here you can set the names of your UNIVERSAL SDK sub-USE_FOLDERS
# NOTE: this is not needed when you export individual API projects
set(UNI_AAX_SDK_FOLDER AAX_SDK)
set(UNI_AU_SDK_FOLDER AU_SDK)
set(UNI_VST3_SDK_FOLDER VST_SDK/VST3_SDK)
# ---------------------------------------------------------------------------------
# ---------------------------------------------------------------------------------
#
# --- BUILD FLAGS - set these to build individual projects or a universal version
#
# ---------------------------------------------------------------------------------
# --- Universal Build Flag - when using combined SDKs; can still build independently
# with individual flags below
set(UNIVERSAL_SDK_BUILD TRUE) # <-- set TRUE or FALSE
# --- Individual project builds
set(AAX_SDK_BUILD FALSE)# <-- set TRUE or FALSE
set(AU_SDK_BUILD TRUE)# <-- set TRUE or FALSE
set(VST_SDK_BUILD TRUE)# <-- set TRUE or FALSE
# ---------------------------------------------------------------------------------
#
# --- PROJECT NAMES/FLAGS/CODES
#
# ---------------------------------------------------------------------------------
# --- the name of the project must be valid CMAKE name: must not contain spaces or numbers
set(PLUGIN_PROJECT_NAME ASE_KM_Caverb) # <-- set PROJECT NAME with or without quotes
# --- the name of the PLUGIN as you want it to appear in DAW menus for the user
set(PLUGIN_NAME "ASE_KM_Caverb") # <-- set PLUGIN NAME with quotes; ok to have spaces or numbers if you like
# --- Synth Flag: FALSE = FX plugin, TRUE = Synth Plugin
set(IS_SYNTH_PLUGIN FALSE) # <-- set Synth Flag to TRUE only for an output-only (synth) plugin
# --- AAX Sidechain Flag:
set(WANT_AAX_SIDECHAIN FALSE) # <-- for AAX Sidechaining Only
# --- AAX ProTools Gain Reduction Meter Flag:
set(HAS_AAX_GR_METER FALSE) # <-- for special Pro-Tools AAX Gain Reduction Meter Only
# --- VENDOR information (your company stuff)
set(VENDOR_NAME "TG Audio Processing") # <-- required!
set(VENDOR_URL "www.toastyghost.co.uk") # <-- OPTIONAL (ok if blank)
set(VENDOR_EMAIL "[email protected]") # <-- OPTIONAL (ok if blank)
# --- 4-Character Codes (for AAX and VST3)
set(4CHAR_CODE "TGAp") # MUST be unique for each plugin your company creates/sells
set(4CHAR_MANUFACTURER_ID "TGAp") # your company CODE (does NOT need to be unique for each plugin; can be re-used)
set(4CHAR_AAX_PRODUCT_ID "TGAp") # MUST be unique for each plugin your company creates/sells
# --- Plugin Options ---
set(INCLUDE_FX_OBJECTS FALSE) # <-- set TRUE or FALSE
set(LINK_FFTW FALSE) # <-- set TRUE or FALSE
set(EXPOSE_SIDECHAIN FALSE) # <-- set TRUE or FALSE
set(LATENCY_IN_SAMPLES 0) # <-- numerical, in samples
set(TAIL_TIME_MSEC 0.000000) # <-- numerical, in mSec
# --- VST3 Only ---
set(VST3_INFINITE_TAIL FALSE)
set(VST3_SAMPLE_ACCURATE_AUTOMATION FALSE)
set(VST3_SAMPLE_ACCURATE_GRANULARITY 1)
# --- AAX Only ---
set(AAX_CATEGORY 8)
# ---------------------------------------------------------------------------------
#
# --- OPTIONAL SUB-PROJECT NAMES
# - change only if you need to; does NOT need to be changed with each project
#
# ---------------------------------------------------------------------------------
# --- this creates sub-project names for universal projects
if(UNIVERSAL_SDK_BUILD)
# --- names of sub-projects for universal builds; you can change them here:
set(EXP_PROJECT_NAME ${PLUGIN_PROJECT_NAME}_UNIVERSAL)
set(EXP_SUBPROJECT_NAME_AAX ${PLUGIN_PROJECT_NAME}_AAX)
set(EXP_SUBPROJECT_NAME_AU ${PLUGIN_PROJECT_NAME}_AU)
set(EXP_SUBPROJECT_NAME_VST ${PLUGIN_PROJECT_NAME}_VST)
else()
# --- names of sub-projects for non-universal builds are same as normal builds; you can change them here:
set(EXP_PROJECT_NAME ${PLUGIN_PROJECT_NAME})
set(EXP_SUBPROJECT_NAME_AAX ${PLUGIN_PROJECT_NAME})
set(EXP_SUBPROJECT_NAME_AU ${PLUGIN_PROJECT_NAME})
set(EXP_SUBPROJECT_NAME_VST ${PLUGIN_PROJECT_NAME})
endif()
# ---------------------------------------------------------------------------------
#
# --- SDK ROOTS (OPTIONAL - only change these if you know what you are doing!)
#
# ---------------------------------------------------------------------------------
# --- PARENT: this is the UNIVERSAL project folder
get_filename_component(PARENT_DIR ${CMAKE_CURRENT_SOURCE_DIR} DIRECTORY)
# --- GRANDPARENT: this is the outer "myprojects" folder
get_filename_component(GRANDPARENT_DIR ${PARENT_DIR} DIRECTORY)
# --- GR_GRANDPARENT: this is the outer "ALL_SDK" folder, or whatever the user calls it
get_filename_component(GR_GRANDPARENT_DIR ${GRANDPARENT_DIR} DIRECTORY)
# ---------------------------------------------------------------------------------
#
# NOTE: the SDK path defaults to the location included in the "readme.txt" file
# in the Project folder. However, you can customize it here
# by either replacing the code with your own CMake script, or by
# setting the ROOT variable to an absolute path, e.g.
# MacOS:
# set(ROOT "/Users/<your user name>/Documents/AU_SDK")
#
# Windows:
# set(ROOT "C:/AU_SDK")
#
# ---------------------------------------------------------------------------------
if(UNIVERSAL_SDK_BUILD)
# --- AAX:
set(AAX_SDK_ROOT ${GRANDPARENT_DIR}/${UNI_AAX_SDK_FOLDER})
# --- AU:
set(AU_SDK_ROOT ${GRANDPARENT_DIR}/${UNI_AU_SDK_FOLDER})
# --- VST3:
set(SDK_ROOT ${GRANDPARENT_DIR}/${UNI_VST3_SDK_FOLDER})
else()
# --- AAX:
set(AAX_SDK_ROOT ${GRANDPARENT_DIR})
# --- AU:
set(AU_SDK_ROOT ${GRANDPARENT_DIR})
# --- VST3:
set(SDK_ROOT ${GRANDPARENT_DIR})
endif()
# --- new in 3.6.11/12 (VST ONLY)
set(public_sdk_SOURCE_DIR ${SDK_ROOT}/public.sdk)
set(pluginterfaces_SOURCE_DIR ${SDK_ROOT}/pluginterfaces)
# ---------------------------------------------------------------------------------
# --- END USER INPUT (you don't need to modify anything past this point!)
# ---------------------------------------------------------------------------------
set(WINBUILD_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/win_build)
set(MACBUILD_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/mac_build)
# --- VSTGUI4: NOTE: we use our own VSTGUI4 folder - portable to new SDKs where you
# may not want to update VSTGUI just yet and won't interfere
# with VST3 SDK whatsoever. You do NOT need to customize this path!
set(VSTGUI_ROOT ${PARENT_DIR})
# ---------------------------------------------------------------------------------
#
# --- Basic Setup
#
# ---------------------------------------------------------------------------------
if(CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR OR EXISTS "${CMAKE_BINARY_DIR}/CMakeLists.txt")
message(SEND_ERROR "In-source builds are not allowed. Please create a separate build directory and run 'cmake /path/to/folder [options]' there.")
message(FATAL_ERROR "You can remove the file \"CMakeCache.txt\" and directory \"CMakeFiles\" in ${CMAKE_SOURCE_DIR}.")
endif()
if(POLICY CMP0054)
cmake_policy(SET CMP0054 NEW)
endif()
if(APPLE)
set(MAC TRUE)
elseif(WIN32)
set(WIN TRUE)
elseif(UNIX)
set(LINUX TRUE)
endif()
# ---------------------------------------------------------------------------------
#
# --- Setup Compiler Project
#
# ---------------------------------------------------------------------------------
project(${EXP_PROJECT_NAME})
if(UNIX)
if(XCODE)
set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD "c++14") # --- NOTE: VST3 requires c++14!
set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++")
elseif(APPLE)
set(CMAKE_POSITION_INDEPENDENT_CODE TRUE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -stdlib=libc++")
link_libraries(c++)
else()
set(CMAKE_POSITION_INDEPENDENT_CODE TRUE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wno-multichar")
link_libraries(stdc++fs pthread dl)
endif()
elseif(WIN)
# add_definitions(-D_UNICODE)
add_compile_options(/fp:fast)
add_compile_options($<$<CONFIG:Release>:/Oi>) # Enable Intrinsic Functions (Yes)
add_compile_options($<$<CONFIG:Release>:/Ot>) # Favor Size Or Speed (Favor fast code)
add_compile_options($<$<CONFIG:Release>:/GF>) # Enable String Pooling
add_compile_options($<$<CONFIG:Release>:/EHa>) # Enable C++ Exceptions
add_compile_options($<$<CONFIG:Release>:/Oy>) # Omit Frame Pointers
#add_compile_options($<$<CONFIG:Release>:/Ox>) # Optimization (/O2: Maximise Speed /0x: Full Optimization)
endif()
# --- add various API projects
set(AAX_CMAKE_FOLDER cmake/aax_cmake)
set(AU_CMAKE_FOLDER cmake/au_cmake)
set(VST_CMAKE_FOLDER cmake/vst_cmake)
# ---------------------------------------------------------------------------------
#
# --- BUNDLE IDs and other variables for <plugindescription.h>
#
# ---------------------------------------------------------------------------------
string(REPLACE "_" "" CLEAN_PROJECT_NAME ${PLUGIN_PROJECT_NAME})
string(TOLOWER ${CLEAN_PROJECT_NAME} CLEAN_PROJECT_NAME_LC)
# --- BUNDLE ID Values: one for each API
string(CONCAT AAX_BUNDLE_ID "developer.aax." ${CLEAN_PROJECT_NAME_LC} ".bundleID")
string(CONCAT AU_BUNDLE_ID "developer.au." ${CLEAN_PROJECT_NAME_LC} ".bundleID")
string(CONCAT VST_BUNDLE_ID "developer.vst3." ${CLEAN_PROJECT_NAME_LC} ".bundleID")
string(CONCAT AAX_BUNDLE_ID_ASVAR "const char* kAAXBundleID = \"" ${AAX_BUNDLE_ID} "\"")
string(CONCAT AU_BUNDLE_ID_ASVAR "const char* kAUBundleID = \"" ${AU_BUNDLE_ID} "\"")
string(CONCAT VST_BUNDLE_ID_ASVAR "const char* kVST3BundleID = \"" ${VST_BUNDLE_ID} "\"")
string(CONCAT AU_BUNDLE_NAME_ASVAR "const char* kAUBundleName = \"" ${PLUGIN_PROJECT_NAME} "\"")
# --- short AAX plugin name
string(SUBSTRING ${PLUGIN_NAME} 0 15 PLUGIN_NAME_SHORT)
string(CONCAT PLUGIN_NAME_ASVAR "const char* kPluginName = \"" ${PLUGIN_NAME} "\"")
string(CONCAT SHORT_PLUGIN_NAME_ASVAR "const char* kShortPluginName = \"" ${PLUGIN_NAME_SHORT} "\"")
# --- GUID for VST3 and for creating unique name for Cocoa GUI (AU only)
set(UUID_SEED 6ba7b810-9dad-11d1-80b4-00c04fd430c8)
string(TIMESTAMP CONFIG_DATE)
string(RANDOM a)
string(CONCAT UUID_DIRT ${CONFIG_DATE} ${a})
string(
UUID NEW_VST_UUID
NAMESPACE ${UUID_SEED}
NAME ${UUID_DIRT}
TYPE MD5
)
string(REPLACE "-" "" CLEAN_UUID ${NEW_VST_UUID})
string(TOUPPER ${CLEAN_UUID} CLEAN_UUID_UC)
string(CONCAT AU_COCOA_VIEWFACTORY_NAME "AUCocoaViewFactory_" ${CLEAN_UUID_UC})
string(CONCAT AU_COCOA_VIEWFACTORY_DEFINE "#define AU_COCOA_VIEWFACTORY_NAME AUCocoaViewFactory_" ${CLEAN_UUID_UC})
string(CONCAT AU_COCOA_VIEW_DEFINE "#define AU_COCOA_VIEW_NAME AUCocoaView_" ${CLEAN_UUID_UC})
string(CONCAT VST3_UUID_ASVAR "const char* kVSTFUID = \"{" ${NEW_VST_UUID} "}\"")
if(IS_SYNTH_PLUGIN)
set(PLUGIN_TYPE_ASVAR "const pluginType kPluginType = pluginType::kSynthPlugin")
set(INFOPLIST_AU_TYPE_CODE "aumu")
else()
set(PLUGIN_TYPE_ASVAR "const pluginType kPluginType = pluginType::kFXPlugin")
set(INFOPLIST_AU_TYPE_CODE "aufx") # --- NOTE: using aufx here rather than aumf, even though we use the aumf base to expose sidechain channels (aumf does not expose sidechain!)
endif()
string(CONCAT VENDOR_NAME_ASVAR "const char* kVendorName = \"" ${VENDOR_NAME} "\"")
string(CONCAT VENDOR_URL_ASVAR "const char* kVendorURL = \"" ${VENDOR_URL} "\"")
string(CONCAT VENDOR_EMAIL_ASVAR "const char* kVendorEmail = \"" ${VENDOR_EMAIL} "\"")
string(SUBSTRING ${4CHAR_CODE} 0 4 4CHAR_CODE_PROPER)
string(SUBSTRING ${4CHAR_AAX_PRODUCT_ID} 0 4 4CHAR_AAX_PRODUCT_ID_PROPER)
string(SUBSTRING ${4CHAR_MANUFACTURER_ID} 0 4 4CHAR_AAX_MANUFACTURER_ID_PROPER)
string(CONCAT INFOPLIST_PI_VENDOR_COLON_NAME_CODE ${VENDOR_NAME} ": " ${PLUGIN_NAME})
string(CONCAT 4CHAR_CODE_ASVAR "const int32_t kFourCharCode = \'" ${4CHAR_CODE_PROPER} "\'")
string(CONCAT 4CHAR_AAX_PRODUCT_ID_ASVAR "const int32_t kAAXProductID = \'" ${4CHAR_AAX_PRODUCT_ID_PROPER} "\'")
string(CONCAT 4CHAR_AAX_MANUFACTURER_ID_ASVAR "const int32_t kManufacturerID = \'" ${4CHAR_AAX_MANUFACTURER_ID_PROPER} "\'")
# --- PLUGIN OPTIONS
if(EXPOSE_SIDECHAIN)
set(EXPOSE_SIDECHAIN_ASVAR "const bool kWantSidechain = true")
else()
set(EXPOSE_SIDECHAIN_ASVAR "const bool kWantSidechain = false")
endif()
string(CONCAT LATENCY_IN_SAMPLES_ASVAR "const uint32_t kLatencyInSamples = " ${LATENCY_IN_SAMPLES})
string(CONCAT TAIL_TIME_MSEC_ASVAR "const double kTailTimeMsec = " ${TAIL_TIME_MSEC})
if(VST3_INFINITE_TAIL)
set(VST3_INFINITE_TAIL_ASVAR "const bool kVSTInfiniteTail = true")
else()
set(VST3_INFINITE_TAIL_ASVAR "const bool kVSTInfiniteTail = false")
endif()
if(VST3_SAMPLE_ACCURATE_AUTOMATION)
set(VST3_SAMPLE_ACCURATE_AUTOMATION_ASVAR "const bool kVSTSAA = true")
else()
set(VST3_SAMPLE_ACCURATE_AUTOMATION_ASVAR "const bool kVSTSAA = false")
endif()
string(CONCAT VST3_SAMPLE_ACCURATE_GRANULARITY_ASVAR "const uint32_t kVST3SAAGranularity = " ${VST3_SAMPLE_ACCURATE_GRANULARITY})
string(CONCAT AAX_CAT_ASVAR "const uint32_t kAAXCategory = " ${AAX_CATEGORY})
# --- the plugindescription.h file - this is edited to contain your string settings for the project!
set(PI_DESCRIPTION_H_FILE project_source/source/PluginKernel/plugindescription.h)
file(WRITE ${PI_DESCRIPTION_H_FILE} "")
# --- header part
file(APPEND ${PI_DESCRIPTION_H_FILE} "// --- CMAKE generated variables for your plugin\n\n")
file(APPEND ${PI_DESCRIPTION_H_FILE} "#include \"pluginstructures.h\"\n\n")
file(APPEND ${PI_DESCRIPTION_H_FILE} "#ifndef _plugindescription_h\n#define _plugindescription_h\n\n")
file(APPEND ${PI_DESCRIPTION_H_FILE} "#define QUOTE(name) #name\n#define STR(macro) QUOTE(macro)\n#define AU_COCOA_VIEWFACTORY_STRING STR(AU_COCOA_VIEWFACTORY_NAME)\n#define AU_COCOA_VIEW_STRING STR(AU_COCOA_VIEW_NAME)\n\n")
file(APPEND ${PI_DESCRIPTION_H_FILE} "// --- AU Plugin Cocoa View Names (flat namespace) \n")
file(APPEND ${PI_DESCRIPTION_H_FILE} ${AU_COCOA_VIEWFACTORY_DEFINE}\n)
file(APPEND ${PI_DESCRIPTION_H_FILE} ${AU_COCOA_VIEW_DEFINE}\n)
file(APPEND ${PI_DESCRIPTION_H_FILE} \n)
file(APPEND ${PI_DESCRIPTION_H_FILE} "// --- BUNDLE IDs (MacOS Only) \n")
file(APPEND ${PI_DESCRIPTION_H_FILE} ${AAX_BUNDLE_ID_ASVAR}\;\n)
file(APPEND ${PI_DESCRIPTION_H_FILE} ${AU_BUNDLE_ID_ASVAR}\;\n)
file(APPEND ${PI_DESCRIPTION_H_FILE} ${VST_BUNDLE_ID_ASVAR}\;\n)
file(APPEND ${PI_DESCRIPTION_H_FILE} \n)
file(APPEND ${PI_DESCRIPTION_H_FILE} "// --- Plugin Names \n")
file(APPEND ${PI_DESCRIPTION_H_FILE} ${PLUGIN_NAME_ASVAR}\;\n)
file(APPEND ${PI_DESCRIPTION_H_FILE} ${SHORT_PLUGIN_NAME_ASVAR}\;\n)
file(APPEND ${PI_DESCRIPTION_H_FILE} ${AU_BUNDLE_NAME_ASVAR}\;\n)
file(APPEND ${PI_DESCRIPTION_H_FILE} \n)
file(APPEND ${PI_DESCRIPTION_H_FILE} "// --- Plugin Type \n")
file(APPEND ${PI_DESCRIPTION_H_FILE} ${PLUGIN_TYPE_ASVAR}\;\n)
file(APPEND ${PI_DESCRIPTION_H_FILE} \n)
file(APPEND ${PI_DESCRIPTION_H_FILE} "// --- VST3 UUID \n")
file(APPEND ${PI_DESCRIPTION_H_FILE} ${VST3_UUID_ASVAR}\;\n)
file(APPEND ${PI_DESCRIPTION_H_FILE} \n)
file(APPEND ${PI_DESCRIPTION_H_FILE} "// --- 4-char codes \n")
file(APPEND ${PI_DESCRIPTION_H_FILE} ${4CHAR_CODE_ASVAR}\;\n)
file(APPEND ${PI_DESCRIPTION_H_FILE} ${4CHAR_AAX_PRODUCT_ID_ASVAR}\;\n)
file(APPEND ${PI_DESCRIPTION_H_FILE} ${4CHAR_AAX_MANUFACTURER_ID_ASVAR}\;\n)
file(APPEND ${PI_DESCRIPTION_H_FILE} \n)
file(APPEND ${PI_DESCRIPTION_H_FILE} "// --- Vendor information \n")
file(APPEND ${PI_DESCRIPTION_H_FILE} ${VENDOR_NAME_ASVAR}\;\n)
file(APPEND ${PI_DESCRIPTION_H_FILE} ${VENDOR_URL_ASVAR}\;\n)
file(APPEND ${PI_DESCRIPTION_H_FILE} ${VENDOR_EMAIL_ASVAR}\;\n)
file(APPEND ${PI_DESCRIPTION_H_FILE} \n)
file(APPEND ${PI_DESCRIPTION_H_FILE} "// --- Plugin Options \n")
file(APPEND ${PI_DESCRIPTION_H_FILE} ${EXPOSE_SIDECHAIN_ASVAR}\;\n)
file(APPEND ${PI_DESCRIPTION_H_FILE} ${LATENCY_IN_SAMPLES_ASVAR}\;\n)
file(APPEND ${PI_DESCRIPTION_H_FILE} ${TAIL_TIME_MSEC_ASVAR}\;\n)
file(APPEND ${PI_DESCRIPTION_H_FILE} ${VST3_INFINITE_TAIL_ASVAR}\;\n)
file(APPEND ${PI_DESCRIPTION_H_FILE} ${VST3_SAMPLE_ACCURATE_AUTOMATION_ASVAR}\;\n)
file(APPEND ${PI_DESCRIPTION_H_FILE} ${VST3_SAMPLE_ACCURATE_GRANULARITY_ASVAR}\;\n)
file(APPEND ${PI_DESCRIPTION_H_FILE} ${AAX_CAT_ASVAR}\;\n)
file(APPEND ${PI_DESCRIPTION_H_FILE} \n)
# --- the EOF
file(APPEND ${PI_DESCRIPTION_H_FILE} "#endif\n")
message(STATUS "--- Updated File: " ${PI_DESCRIPTION_H_FILE})
message(STATUS "")
# --- you can rename the plugin output folders; VST is set to VST3 (see below)
set(AAX_PLUGIN_FOLDER AAX)
set(AU_PLUGIN_FOLDER AU)
# --- VST plugin folder is set to "VST3" inside of one of the vst cmake modules, which we don't want to mess with
# set(VST_PLUGIN_FOLDER VST3)
# --- add each project:
if(AAX_SDK_BUILD)
add_subdirectory(${AAX_CMAKE_FOLDER})
endif()
if(MAC AND AU_SDK_BUILD)
add_subdirectory(${AU_CMAKE_FOLDER})
endif()
if(VST_SDK_BUILD)
add_subdirectory(${VST_CMAKE_FOLDER})
endif()