forked from steinbergmedia/vst3sdk
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
179 lines (150 loc) · 6.05 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
cmake_minimum_required (VERSION 3.4.3)
#-------------------------------------------------------------------------------
# Options
#-------------------------------------------------------------------------------
# Add VST3 Plug-ins Samples
option(SMTG_ADD_VST3_PLUGINS_SAMPLES "Add VST3 Plug-ins Samples to the solution" ON)
# Add and use VSTGUI (enable VST3 Plug-ins Samples using VSTGUI)
option(SMTG_ADD_VSTGUI "Add VSTGUI Support" ON)
#-------------------------------------------------------------------------------
# Includes
#-------------------------------------------------------------------------------
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules")
include(SMTG_VST3_SDK)
#-------------------------------------------------------------------------------
# SDK Project
#-------------------------------------------------------------------------------
project(vstsdk)
smtg_setup_platform_toolset()
set(ROOT "${CMAKE_CURRENT_SOURCE_DIR}")
# Here you can define where the VST 3 SDK is located
set(SDK_ROOT "${ROOT}")
set(public_sdk_SOURCE_DIR ${SDK_ROOT}/public.sdk)
set(pluginterfaces_SOURCE_DIR ${SDK_ROOT}/pluginterfaces)
# Disable all VST3 samples when using SDK as subdirectory
message(STATUS "[SMTG] CMAKE_SOURCE_DIR is set to: ${CMAKE_SOURCE_DIR}")
message(STATUS "[SMTG] CMAKE_CURRENT_LIST_DIR is set to: ${CMAKE_CURRENT_LIST_DIR}")
if(NOT ${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_LIST_DIR})
message(STATUS "[SMTG] Disable all VST3 samples")
set(SMTG_ADD_VST3_PLUGINS_SAMPLES OFF)
set(SMTG_ADD_VST3_HOSTING_SAMPLES OFF)
set(SMTG_ADD_MYPLUGINS_SRC_PATH OFF)
else()
set(SMTG_ADD_MYPLUGINS_SRC_PATH ON)
endif()
# Here you can define where the VSTGUI is located
if(SMTG_ADD_VSTGUI)
set(SMTG_VSTGUI_ROOT "${ROOT}")
smtg_enable_vstgui_support()
endif(SMTG_ADD_VSTGUI)
include_directories(${ROOT} ${SDK_ROOT})
#-------------------------------------------------------------------------------
# From Here this is optional...
#-------------------------------------------------------------------------------
# CORE AUDIO SDK, AAX SDK
#-------------------------------------------------------------------------------
setupCoreAudioSupport()
setupAaxSupport()
#-------------------------------------------------------------------------------
# Projects
#-------------------------------------------------------------------------------
set(SDK_IDE_LIBS_FOLDER FOLDER "Libraries")
#---Add base libraries---------------------------
set(VST_SDK TRUE) # used for pluginterfaces and public.sdk modules which provides only a subset of them for VST-SDK
add_subdirectory(pluginterfaces)
add_subdirectory(base)
add_subdirectory(public.sdk)
add_subdirectory(public.sdk/source/vst/interappaudio)
#---Add Wrappers (AU, AAX)-----------------------
if(SMTG_COREAUDIO_SDK_PATH)
add_subdirectory(public.sdk/source/vst/auwrapper)
endif(SMTG_COREAUDIO_SDK_PATH)
if(SMTG_AAX_SDK_PATH)
add_subdirectory(public.sdk/source/vst/aaxwrapper)
set_target_properties(aaxwrapper
PROPERTIES
${SDK_IDE_LIBS_FOLDER}
)
endif(SMTG_AAX_SDK_PATH)
# Add hosting examples, it includes the validator (must be done before any plug-ins to support running the validator after building)
set(SDK_IDE_HOSTING_EXAMPLES_FOLDER FOLDER "HostingExamples")
add_subdirectory(public.sdk/samples/vst-hosting)
#-------------------------------------------------------------------------------
# Here is added your own plug-ins folder location
# (by default we add the HelloWorld included in my_plugins folder)
#-------------------------------------------------------------------------------
if(SMTG_ADD_MYPLUGINS_SRC_PATH)
set(SMTG_MYPLUGINS_SRC_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../my_plugins" CACHE PATH "Here you can add Your VST3 Plug-ins folder")
if(EXISTS ${SMTG_MYPLUGINS_SRC_PATH})
message(STATUS "[SMTG] SMTG_MYPLUGINS_SRC_PATH is set to: " ${SMTG_MYPLUGINS_SRC_PATH})
else()
message(STATUS "[SMTG] SMTG_MYPLUGINS_SRC_PATH is not set. If you want to add your own Plug-ins folder, specify it!")
endif()
set(SDK_IDE_MYPLUGINS_FOLDER FOLDER "MyPlugIns")
if(EXISTS ${SMTG_MYPLUGINS_SRC_PATH})
set(SMTG_MYPLUGINS_BIN_PATH "${SMTG_MYPLUGINS_SRC_PATH}/build")
add_subdirectory(${SMTG_MYPLUGINS_SRC_PATH} ${SMTG_MYPLUGINS_BIN_PATH})
endif()
endif(SMTG_ADD_MYPLUGINS_SRC_PATH)
#---Add VST3 examples (plug-ins and hosting)-----
if(SMTG_ADD_VST3_PLUGINS_SAMPLES)
set(SDK_IDE_PLUGIN_EXAMPLES_FOLDER FOLDER "PlugInExamples")
add_subdirectory(public.sdk/samples/vst)
add_subdirectory(public.sdk/source/vst/auwrapper/again)
add_subdirectory(public.sdk/source/vst/auv3wrapper)
endif(SMTG_ADD_VST3_PLUGINS_SAMPLES)
#-------------------------------------------------------------------------------
# IDE sorting
#-------------------------------------------------------------------------------
set_target_properties(sdk
PROPERTIES
${SDK_IDE_LIBS_FOLDER}
)
set_target_properties(sdk_common
PROPERTIES
${SDK_IDE_LIBS_FOLDER}
)
set_target_properties(sdk_hosting
PROPERTIES
${SDK_IDE_LIBS_FOLDER}
)
set_target_properties(base
PROPERTIES
${SDK_IDE_LIBS_FOLDER}
)
set_target_properties(pluginterfaces
PROPERTIES
${SDK_IDE_LIBS_FOLDER}
)
if(TARGET base_ios)
set_target_properties(base_ios
PROPERTIES
${SDK_IDE_LIBS_FOLDER}
)
set_target_properties(pluginterfaces_ios
PROPERTIES
${SDK_IDE_LIBS_FOLDER}
)
endif(TARGET base_ios)
if(SMTG_ADD_VSTGUI)
set_target_properties(vstgui
PROPERTIES
${SDK_IDE_LIBS_FOLDER}
)
set_target_properties(vstgui_support
PROPERTIES
${SDK_IDE_LIBS_FOLDER}
)
set_target_properties(vstgui_uidescription
PROPERTIES
${SDK_IDE_LIBS_FOLDER}
)
if(TARGET vstgui_standalone)
set_target_properties(vstgui_standalone
PROPERTIES
${SDK_IDE_LIBS_FOLDER}
)
endif(TARGET vstgui_standalone)
endif(SMTG_ADD_VSTGUI)
include(SMTG_CustomModuleTarget)
set_target_properties(cmake_modules PROPERTIES ${SDK_IDE_LIBS_FOLDER})