@@ -11,11 +11,12 @@ set(CMAKE_COLOR_MAKEFILE ON)
11
11
project (VSTSID)
12
12
set (PROJECT_VERSION 1)
13
13
set (target vstsid)
14
- set (copyright "igorski.nl 2018-2023 " )
14
+ set (copyright "igorski.nl 2018-2024 " )
15
15
set (major_version 1)
16
16
set (minor_version 1)
17
17
set (release_number 2)
18
18
set (build_number 1) # TODO supply through CLI (build number is not included in public facing version strings)
19
+ set (version_string "${major_version} .${minor_version} .${release_number} " ) # also see audiounitconfig.h#kAUcomponentVersion and related Info.plist
19
20
set (SMTG_CREATE_MODULE_INFO false )
20
21
21
22
#####################
@@ -35,16 +36,18 @@ if(MSVC)
35
36
endif ()
36
37
37
38
if (UNIX )
38
- if (XCODE)
39
- set (CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD "c++17" )
40
- set (CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++" )
41
- elseif (APPLE )
42
- set (CMAKE_POSITION_INDEPENDENT_CODE TRUE )
43
- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17 -stdlib=libc++" )
44
- link_libraries (c++)
45
- # support Yosemite and up
46
- set (CMAKE_OSX_SYSROOT macosx10.13)
47
- set (CMAKE_OSX_DEPLOYMENT_TARGET "10.13" )
39
+ if (APPLE )
40
+ if (XCODE)
41
+ set (CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD "c++17" )
42
+ set (CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++" )
43
+ else ()
44
+ set (CMAKE_POSITION_INDEPENDENT_CODE TRUE )
45
+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17 -stdlib=libc++" )
46
+ link_libraries (c++)
47
+ endif ()
48
+ # support Yosemite and up
49
+ set (CMAKE_OSX_SYSROOT macosx10.13)
50
+ set (CMAKE_OSX_DEPLOYMENT_TARGET "10.13" )
48
51
else ()
49
52
set (LINUX true )
50
53
add_definitions ( -D__cdecl= )
@@ -64,24 +67,23 @@ endif()
64
67
65
68
list (APPEND CMAKE_MODULE_PATH "${VST3_SDK_ROOT} /cmake/modules" )
66
69
67
- include (SMTG_Global )
70
+ # include(SMTG_AAXSupport )
68
71
include (SMTG_AddVST3Library)
72
+ include (SMTG_AddVST3Options)
69
73
include (SMTG_Bundle)
74
+ include (SMTG_CoreAudioSupport)
70
75
include (SMTG_ExportedSymbols)
71
- include (SMTG_PrefixHeader )
76
+ include (SMTG_Global )
72
77
include (SMTG_PlatformIOS)
73
78
include (SMTG_PlatformToolset)
74
- include (SMTG_CoreAudioSupport)
75
- include (SMTG_AAXSupport)
76
- include (SMTG_VstGuiSupport)
79
+ include (SMTG_PrefixHeader)
77
80
include (SMTG_UniversalBinary)
78
- include (SMTG_AddVST3Options )
81
+ include (SMTG_VstGuiSupport )
79
82
80
83
#########################
81
84
# Steinberg VST sources #
82
85
#########################
83
86
84
- set (VSTSDK_INCLUDE_DIR ${VST3_SDK_ROOT} )
85
87
set (VSTSDK_PLUGIN_SOURCE
86
88
${VST3_SDK_ROOT} /public .sdk/source /common/commoniids.cpp
87
89
${VST3_SDK_ROOT} /public .sdk/source /vst/vstaudioeffect.cpp
@@ -158,31 +160,13 @@ set(vst_ui_descr "resource/plugin.uidesc")
158
160
# VST #
159
161
#######
160
162
161
- set (steinberg_libs "base" "pluginterfaces" "sdk" "vstgui_support" "vstgui_uidescription" "vstgui" )
162
163
smtg_add_vst3plugin(${target} ${vst_sources} )
164
+ smtg_target_configure_version_file(${target} )
163
165
164
- ##############
165
- # Audio Unit #
166
- ##############
167
-
168
- if (CREATE_AUDIO_UNIT)
169
- set (SDK_ROOT ${VST3_SDK_ROOT} )
170
- include (SMTG_AddVST3AuV2)
171
- set (steinberg_libs ${steinberg_libs} "auwrapper" "sdk_hosting" )
172
- smtg_target_add_auv2(${target} -au
173
- BUNDLE_NAME ${target}
174
- BUNDLE_IDENTIFIER nl.igorski.vst.${target} .audiounit
175
- INFO_PLIST_TEMPLATE ${CMAKE_CURRENT_SOURCE_DIR} /audio-unit/Info.plist
176
- VST3_PLUGIN_TARGET ${target}
177
- )
178
- set_target_properties (${target} PROPERTIES XCODE_ATTRIBUTE_OTHER_LDFLAGS "-all_load" )
179
- endif ()
180
-
181
- #######################
182
- # Steinberg libraries #
183
- #######################
166
+ ## include Steinberg libraries
184
167
185
- include_directories (${VSTSDK_INCLUDE_DIR} )
168
+ set (steinberg_libs "base" "pluginterfaces" "sdk" "vstgui" "vstgui_support" "vstgui_uidescription" )
169
+ include_directories (${VST3_SDK_ROOT} )
186
170
foreach (lib IN ITEMS ${steinberg_libs} )
187
171
if (UNIX )
188
172
target_link_libraries (${target} PRIVATE ${VST3_SDK_ROOT} /build /lib/Release/lib${lib} .a)
@@ -200,55 +184,14 @@ target_sources(${target} PRIVATE
200
184
${VST3_SDK_ROOT} /public .sdk/source /vst/vstguieditor.cpp
201
185
)
202
186
203
- #############################
204
- # System specific libraries #
205
- #############################
206
-
207
187
## include macOS specific libraries
208
188
209
189
IF (APPLE )
210
190
target_sources (${target} PRIVATE
211
191
${VST3_SDK_ROOT} /public .sdk/source /main/macmain.cpp
212
- ${VST3_SDK_ROOT} /vstgui4/vstgui/vstgui_mac.mm
213
192
)
214
193
if (XCODE)
215
- if (SMTG_IOS_DEVELOPMENT_TEAM)
216
- ## iOS plugin
217
- set (target ${target} _ios)
218
- smtg_add_ios_vst3plugin("${SMTG_CODE_SIGN_IDENTITY_IOS} " ${target} "${target} " "${vst_sources} " )
219
- set_target_properties (${target} PROPERTIES ${SDK_IDE_PLUGIN_EXAMPLES_FOLDER} )
220
- target_link_libraries (${target} PRIVATE
221
- base_ios
222
- sdk_ios
223
- "-framework UIKit"
224
- "-framework CoreGraphics"
225
- "-framework QuartzCore"
226
- "-framework CoreText"
227
- "-framework Accelerate"
228
- "-framework ImageIO"
229
- "-framework MobileCoreServices"
230
- )
231
- target_sources (${target} PRIVATE
232
- ${VST3_SDK_ROOT} /vstgui4/vstgui/vstgui_ios.mm
233
- )
234
- else ()
235
- ## macOS plugin
236
- set (MACOS_LIBRARIES
237
- "-framework Cocoa"
238
- "-framework OpenGL"
239
- "-framework Accelerate"
240
- "-framework QuartzCore"
241
- "-framework Carbon"
242
- )
243
- if (CREATE_AUDIO_UNIT)
244
- set (MACOS_LIBRARIES
245
- ${MACOS_LIBRARIES}
246
- "-framework AudioToolbox"
247
- "-framework CoreMIDI"
248
- )
249
- endif ()
250
- target_link_libraries (${target} PRIVATE ${MACOS_LIBRARIES} )
251
- endif ()
194
+ target_link_libraries (${target} PRIVATE "-framework Cocoa" "-framework OpenGL" "-framework Accelerate" "-framework QuartzCore" "-framework Carbon" )
252
195
else ()
253
196
find_library (COREFOUNDATION_FRAMEWORK CoreFoundation)
254
197
find_library (COCOA_FRAMEWORK Cocoa)
@@ -264,10 +207,10 @@ IF (APPLE)
264
207
BUNDLE_EXTENSION "vst3"
265
208
XCODE_ATTRIBUTE_WRAPPER_EXTENSION "vst3"
266
209
MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR} /mac/Info.plist"
267
- MACOSX_BUNDLE_BUNDLE_NAME "${project } "
210
+ MACOSX_BUNDLE_BUNDLE_NAME "${target } "
268
211
MACOSX_BUNDLE_GUI_IDENTIFIER "nl.igorski.vst.${target} "
269
212
MACOSX_BUNDLE_ICON_FILE ""
270
- MACOSX_BUNDLE_SHORT_VERSION_STRING "${major_version} . ${minor_version} . ${release_number } "
213
+ MACOSX_BUNDLE_SHORT_VERSION_STRING "${version_string } "
271
214
MACOSX_BUNDLE_COPYRIGHT "${copyright} "
272
215
)
273
216
endif ()
@@ -310,7 +253,7 @@ endif()
310
253
## Include Windows specific libraries
311
254
312
255
if (WIN)
313
- target_sources (${target} PRIVATE
256
+ target_sources (${target} PRIVATE
314
257
${VST3_SDK_ROOT} /public .sdk/source /main/dllmain.cpp
315
258
# ${VST3_SDK_ROOT}/vstgui4/vstgui/vstgui_win32.cpp
316
259
)
@@ -319,19 +262,33 @@ endif()
319
262
## Add the resource files to the bundle
320
263
321
264
smtg_target_add_plugin_resources(${target}
322
- RESOURCES ${vst_ui_descr} ${vst_resources}
265
+ RESOURCES ${vst_ui_descr} ${vst_resources}
323
266
)
324
267
325
268
if (APPLE )
326
- smtg_target_set_bundle(${target} INFOPLIST "${CMAKE_CURRENT_SOURCE_DIR} /mac/Info.plist" PREPROCESS)
327
- # adding PkgInfo at root level makes plugin appear as a file instead of folder
328
- smtg_target_add_plugin_resources(${target} RESOURCES "${CMAKE_CURRENT_SOURCE_DIR} /mac/PkgInfo" OUTPUT_SUBDIRECTORY "../" )
269
+ ##############
270
+ # Audio Unit #
271
+ ##############
272
+ if (XCODE AND SMTG_CREATE_AU_VERSION)
273
+ message (STATUS "SMTG_CREATE_AU_VERSION is set. An Audio Unit version of the plug-in will be created." )
274
+ smtg_target_codesign(${target} ${SMTG_IOS_DEVELOPMENT_TEAM} ${SMTG_CODE_SIGN_IDENTITY_MAC} )
275
+ add_subdirectory (mac/audio-unit)
276
+ create_audio_unit(${target} )
277
+ else ()
278
+ smtg_target_set_bundle(${target} INFOPLIST "${CMAKE_CURRENT_SOURCE_DIR} /mac/Info.plist" PREPROCESS)
279
+ # adding PkgInfo at root level makes plugin appear as a file instead of folder
280
+ smtg_target_add_plugin_resources(${target} RESOURCES "${CMAKE_CURRENT_SOURCE_DIR} /mac/PkgInfo" OUTPUT_SUBDIRECTORY "../" )
281
+ endif ()
282
+ smtg_target_set_bundle(${target}
283
+ BUNDLE_IDENTIFIER "nl.igorski.${target} "
284
+ COMPANY_NAME "igorski.nl"
285
+ )
329
286
elseif (WIN)
330
287
target_sources (${target} PRIVATE resource /plugin.rc)
331
288
endif ()
332
289
333
290
if (SMTG_CREATE_VST2_VERSION)
334
- message (STATUS "SMTG_CREATE_VST2_VERSION is set. A VST 2 version of the plug-in will be created (just rename the generated file from .vst3 to .vst) ." )
291
+ message (STATUS "SMTG_CREATE_VST2_VERSION is set. A VST 2 version of the plug-in will be created." )
335
292
if (XCODE)
336
293
# fix missing VSTPluginMain symbol when also building VST 2 version
337
294
set_target_properties (${target} PROPERTIES XCODE_ATTRIBUTE_EXPORTED_SYMBOLS_FILE "" )
@@ -346,19 +303,19 @@ endif()
346
303
######################
347
304
348
305
if (APPLE )
349
- install (TARGETS ${target}
350
- DESTINATION "$ENV{HOME} /Library/Audio/Plug-Ins/VST"
351
- )
306
+ install (TARGETS ${target}
307
+ DESTINATION "$ENV{HOME} /Library/Audio/Plug-Ins/VST"
308
+ )
352
309
elseif (WIN32 )
353
- install (TARGETS ${target}
354
- DESTINATION "C:/Program Files (x86)/Common Files/VST3/"
355
- )
310
+ install (TARGETS ${target}
311
+ DESTINATION "C:/Program Files (x86)/Common Files/VST3/"
312
+ )
356
313
elseif (WIN)
357
- install (TARGETS ${target}
358
- DESTINATION "C:/Program Files/Common Files/VST3/"
359
- )
314
+ install (TARGETS ${target}
315
+ DESTINATION "C:/Program Files/Common Files/VST3/"
316
+ )
360
317
elseif (LINUX)
361
- install (TARGETS ${target}
362
- DESTINATION "/usr/lib/lxvst"
363
- )
364
- endif ()
318
+ install (TARGETS ${target}
319
+ DESTINATION "/usr/lib/lxvst"
320
+ )
321
+ endif ()
0 commit comments