forked from iPlug2/iPlug2
-
Notifications
You must be signed in to change notification settings - Fork 0
/
common-mac.xcconfig
161 lines (120 loc) · 7.81 KB
/
common-mac.xcconfig
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
// this is used for macOS Developer ID / Appstore code-signing
CERTIFICATE_ID = Oliver Larkin
DEVELOPMENT_TEAM = 686EDA2T8T // log in to developer.apple.com and see the end of the URL e.g. https://developer.apple.com/account/#/overview/686EDA2T8T
// Which compiler to use
//COMPILER = com.intel.compilers.icc.12_1_0
COMPILER = com.apple.compilers.llvm.clang.1_0
// which osx sdk to compile against - defaults to latest SDK available
BASE_SDK_MAC = macosx // latest SDK
CLANG_CXX_LANGUAGE_STANDARD = c++14
CLANG_CXX_LIBRARY = libc++
CLANG_WARN_DOCUMENTATION_COMMENTS = NO
// the minimum OS to support
MACOSX_DEPLOYMENT_TARGET = 10.11
SHARED_PRECOMPS_DIR = $(TARGET_BUILD_DIR)/PCH
// BUILD SETTINGS TO ENABLE DIFFERENT PREPROCESSOR MACROS, INCLUDE PATHS AND FUNCIONALITY-------------------------------
// ***** PREPROCESSOR MACROS
// macros for all debug/release/tracer builds
DEBUG_DEFS = DEVELOPMENT=1 DEBUG=1 _DEBUG
RELEASE_DEFS = RELEASE=1 NDEBUG=1
TRACER_DEFS = $DEBUG_DEFS TRACER_BUILD // here you can change if a TRACER build is a DEBUG or RELEASE build
// macros for individual plug-in format builds etc
ALL_DEFS = NOMINMAX
PLUGIN_DEFS = SWELL_CLEANUP_ON_UNLOAD // macros for all plug-in builds
VST2_DEFS = VST2_API $PLUGIN_DEFS IPLUG_EDITOR=1 IPLUG_DSP=1
VST3_DEFS = VST3_API $PLUGIN_DEFS IPLUG_EDITOR=1 IPLUG_DSP=1
VST3C_DEFS = VST3C_API $PLUGIN_DEFS IPLUG_EDITOR=1 IPLUG_DSP=0
VST3P_DEFS = VST3P_API $PLUGIN_DEFS IPLUG_EDITOR=0 IPLUG_DSP=1 //NO_IGRAPHICS
AU_DEFS = AU_API $PLUGIN_DEFS IPLUG_EDITOR=1 IPLUG_DSP=1
AUv3_DEFS = AUv3_API $PLUGIN_DEFS IPLUG_EDITOR=1 IPLUG_DSP=1
AAX_DEFS = AAX_API $PLUGIN_DEFS IPLUG_EDITOR=1 IPLUG_DSP=1
APP_DEFS = APP_API __MACOSX_CORE__ IPLUG_EDITOR=1 IPLUG_DSP=1 SWELL_COMPILED// __UNIX_JACK__
// ***** HEADER INCLUDE PATHS
// Where the SDKs etc. are located in relation to the plug-in Xcode project (which is in the projects subfolder of an IPlug project)
// the top level iPlug2 folder e.g. where this common-mac.xcconfig is
// should be specified in the project's xcconfig with a build settng IPLUG2_ROOT
PROJECT_ROOT = $(SRCROOT)/..
PKGMAN_PATH = /usr/local
DEPS_PATH = $(IPLUG2_ROOT)/Dependencies
// if you want to use the homebrew or macports package managers, rather than building static libraries yourself (not advised) you can modify the BUILT_LIBS_PATH build setting to point to PKGMAN_PATH
BUILT_LIBS_PATH = $(DEPS_PATH)/Build/mac
BUILT_LIBS_INC_PATH = $(BUILT_LIBS_PATH)/include
BUILT_LIBS_LIB_PATH = $(BUILT_LIBS_PATH)/lib
// IPlug dependencies
SCRIPTS_PATH = $(IPLUG2_ROOT)/Scripts
WDL_PATH = $(IPLUG2_ROOT)/WDL
SWELL_PATH = $(WDL_PATH)/swell
IPLUG_PATH = $(IPLUG2_ROOT)/IPlug
RTAUDIO_PATH = $(DEPS_PATH)/IPlug/RTAudio
RTMIDI_PATH = $(DEPS_PATH)/IPlug/RTMidi
EXTRAS_PATH = $(IPLUG_PATH)/Extras
IMGUI_PATH = $(DEPS_PATH)/IGraphics/imgui
//faust is linked as a dynamic library
FAUST_LIB_PATHS = $(BUILT_LIBS_LIB_PATH)
FAUST_INC_PATHS = $(BUILT_LIBS_INC_PATH)
FAUST_LNK_FLAGS = $(BUILT_LIBS_LIB_PATH)/libfaust.dylib
CIVETWEB_INC_PATHS = $(BUILT_LIBS_INC_PATH)
CIVETWEB_LNK_FLAGS = $(BUILT_LIBS_LIB_PATH)/libcivetweb.a
JSON_INC_PATH = $(DEPS_PATH)/Extras/nlohmann
EXTRAS_INC_PATHS = $(EXTRAS_PATH) $(EXTRAS_PATH)/Synth $(EXTRAS_PATH)/Faust $(EXTRAS_PATH)/OSC $(EXTRAS_PATH)/HIIR $(EXTRAS_PATH)/WebSocket $(CIVETWEB_INC_PATHS) $(JSON11_PATH) $(RTAUDIO_PATH) $(RTMIDI_PATH) $(JSON_INC_PATH)
// Plug-in SDK paths
VST2_SDK = $(DEPS_PATH)/IPlug/VST2_SDK
VST3_SDK = $(DEPS_PATH)/IPlug/VST3_SDK
AAX_SDK = $(DEPS_PATH)/IPlug/AAX_SDK
REAPER_SDK = $(DEPS_PATH)/IPlug/Reaper
// this build setting is included at the xcode project level, since we need all these include paths
IPLUG_INC_PATHS = $(PROJECT_ROOT) $(WDL_PATH) $(SWELL_PATH) $(SWELL_FOR_IPLUG_PATH) $(IPLUG_PATH) $(EXTRAS_INC_PATHS)
IMGUI_INC_PATHS = $(IMGUI_PATH) $(IMGUI_PATH)/examples
IGRAPHICS_PATH = $(IPLUG2_ROOT)/IGraphics
// IGraphics dependencies
IGRAPHICS_DEPS_PATH = $(DEPS_PATH)/IGraphics
LICE_PATH = $(WDL_PATH)/lice
NSVG_PATH = $(IGRAPHICS_DEPS_PATH)/NanoSVG/src
NVG_PATH = $(IGRAPHICS_DEPS_PATH)/NanoVG/src
NVGMTL_PATH = $(IGRAPHICS_DEPS_PATH)/MetalNanoVG/src
AGG_PATH = $(IGRAPHICS_DEPS_PATH)/AGG/agg-2.4
AGG_INC_PATHS = $(AGG_PATH)/include $(AGG_PATH)/font_freetype $(AGG_PATH)/include/util $(AGG_PATH)/include/platform/mac $(AGG_PATH)/src $(AGG_PATH)/src/platform/mac
STB_PATH = $(DEPS_PATH)/IGraphics/STB
FT_PATH = $(BUILT_LIBS_INC_PATH)/freetype2
SKIA_PATH = $(DEPS_PATH)/Build/src/skia
YOGA_PATH = $(DEPS_PATH)/IGraphics/yoga
SKIA_INC_PATHS = $(SKIA_PATH) $(SKIA_PATH)/include/core $(SKIA_PATH)/include/effects $(SKIA_PATH)/include/config $(SKIA_PATH)/include/utils $(SKIA_PATH)/include/utils/mac $(SKIA_PATH)/include/gpu $(SKIA_PATH)/experimental/svg/model $(SKIA_PATH)/third_party/externals/icu/source/common
YOGA_INC_PATHS = $(YOGA_PATH) $(YOGA_PATH)/yoga
// you can optionally include this build setting, by adding it to EXTRA_INC_PATHS in MyProject.xcconfig in order to get all varieties of IGraphics support
IGRAPHICS_INC_PATHS = $(IGRAPHICS_PATH) $(IGRAPHICS_PATH)/Controls $(IGRAPHICS_PATH)/Platforms $(IGRAPHICS_PATH)/Drawing $(IGRAPHICS_PATH)/Extras $(LICE_PATH) $(NSVG_PATH) $(NVG_PATH) $(NVGMTL_PATH) $(AGG_INC_PATHS) $(BUILT_LIBS_INC_PATH) $(FT_PATH) $(STB_PATH) $(IMGUI_INC_PATHS) $(SKIA_INC_PATHS) $(YOGA_INC_PATHS)
// ***** LINKER/LIBRARY INCLUDE PATHS AND LINKER FLAGS
//Static library Paths - on macOS we need to supply an absolute path to the static library, otherwise it will pick up a dynamic library with the same name
LIB_CAIRO = $(BUILT_LIBS_LIB_PATH)/libcairo.a
LIB_FT = $(BUILT_LIBS_LIB_PATH)/libfreetype.a
LIB_PIXMAN = $(BUILT_LIBS_LIB_PATH)/libpixman-1.a
LIB_PNG = $(BUILT_LIBS_LIB_PATH)/libpng.a
LIB_Z = $(BUILT_LIBS_LIB_PATH)/libz.a
LIB_CIVET = $(BUILT_LIBS_LIB_PATH)/libcivetweb.a
LIB_SKIA = $(BUILT_LIBS_LIB_PATH)/libskia.a
LIB_SKOTTIE = $(BUILT_LIBS_LIB_PATH)/libskottie.a
LIB_SKSG = $(BUILT_LIBS_LIB_PATH)/libsksg.a
LIB_SKSHAPER = $(BUILT_LIBS_LIB_PATH)/libskshaper.a
LIB_SKPARAGRAPH = $(BUILT_LIBS_LIB_PATH)/libskparagraph.a
//LIB_YOGA = $(BUILT_LIBS_LIB_PATH)/libyoga.a
SKIA_LNK_FLAGS = $(LIB_SKIA) $(LIB_SKOTTIE) $(LIB_SKSG) $(LIB_SKSHAPER) $(LIB_SKPARAGRAPH)
//YOGA_LNK_FLAGS = $(LIB_YOGA)
// you can optionally include this build setting, by adding it to EXTRA_LNK_FLAGS in your plug-ins xcconfig, in order to get all varieties of IGraphics support
CAIRO_LNK_FLAGS = $(LIB_CAIRO) $(LIB_FT) $(LIB_PIXMAN) $(LIB_PNG) $(LIB_Z) //$(LIB_HB) $(LIB_HB_ICU) $(LIB_GF)
SKIA_LNK_FLAGS = $(LIB_SKIA) $(LIB_SKOTTIE) $(LIB_SKSG) $(LIB_SKSHAPER) $(LIB_SKPARAGRAPH)
LICE_LNK_FLAGS = $(LIB_PNG) $(LIB_Z)
IGRAPHICS_LNK_FLAGS = $(SKIA_LNK_FLAGS) $(LICE_LNK_FLAGS) $(CAIRO_LNK_FLAGS)
ALL_FRAMEWORKS = -framework Cocoa -framework Carbon -framework CoreFoundation -framework CoreData -framework Foundation -framework CoreServices -framework Metal -framework MetalKit -framework QuartzCore -framework OpenGL
APP_FRAMEWORKS = -framework AppKit -framework CoreMIDI -framework CoreAudio
AU_FRAMEWORKS = -framework AudioUnit -framework AudioToolbox -framework CoreAudio -framework CoreMIDI
AUv3_FRAMEWORKS = -framework AudioToolbox -framework AVFoundation -framework CoreAudio -framework CoreAudioKit
// ***** BINARY OUTPUT LOCATIONS ------------------------------------------------------------------------------------------------------------------------
// Where to build the plug-ins / app bundles ...
// By default iPlug2 builds to user plug-in folder
// You can also build to the system plug-in folder, but you will need to explicitly add write permissions to build stuff there
// The AAX folder should be the location of the PT Dev build plug-ins folder, installer scripts will copy to the non-developer build
VST2_PATH = $(HOME)/Library/Audio/Plug-Ins/VST
VST3_PATH = $(HOME)/Library/Audio/Plug-Ins/VST3
AU_PATH = $(HOME)/Library/Audio/Plug-Ins/Components
AAX_PATH = /Applications/Avid/ProTools_3PDev/Plug-Ins
APP_PATH = $(HOME)/Applications
REAPER_EXT_PATH = $(HOME)/Library/Application Support/REAPER/UserPlugins