1
// QGIS Xcode project common build settings
3
CURRENT_PROJECT_VERSION = 2.2.2
5
// SDKSYS must be set to valid value
6
SDKSYS = leo // tig (Tiger), leo (Leopard), snow (Snow Leopard)
7
// default to universal, per system; space-separated list
8
ARCHS = $(ARCHS_$(SDKSYS)) // ppc i386 ppc64 x86_64
10
// python archs use ; separator, must match what's in ARCHS
11
ARCHS_P = $(ARCHS_P_$(SDKSYS))
13
//////////////////////////////////////////////////////////////////////
14
// QGIS version info & config
15
//////////////////////////////////////////////////////////////////////
17
// major-minor-patch must be integers for Mac OS X
18
QGIS_RELEASE_NAME = Enceladus
19
QGIS_VERSION_MAJOR = 1
20
QGIS_VERSION_MINOR = 4
21
QGIS_VERSION_PATCH = 0
22
QGIS_VERSION_FULL = $(QGIS_VERSION_MAJOR).$(QGIS_VERSION_MINOR).$(QGIS_VERSION_PATCH)-$(QGIS_RELEASE_NAME)
23
QGIS_VERSION_INT = 10400
25
//////////////////////////////////////////////////////////////////////
26
// Qt and other support
27
//////////////////////////////////////////////////////////////////////
29
// ***TODO*** - detect current version, only used in bundle script
30
QT_MVER = 4 // the install_name version
31
QT_FWVER = $(QT_MVER) // the Versions/ folder name, normally same as Qt ver
33
QT_PLUGINS_DIR = /Developer/Applications/Qt/plugins
34
QTBIN = /Developer/Tools/Qt
38
QTLREL = $(QTBIN)/lrelease
39
PYUIC4 = $(PYTHON_USRBIN)/pyuic4
40
PYRCC4 = $(PYTHON_USRBIN)/pyrcc4
42
BISON = /usr/bin/bison
43
GPSBABEL = /usr/local/bin/gpsbabel
45
//////////////////////////////////////////////////////////////////////
46
// forms of some libraries
48
// 'shared' or 'static' for user unix builds
49
// if unix, make sure to double-check that corresponding *_PREFIX_shared
50
// value is correct (defaults usually /usr/local).
51
// framework prefixes should not change.
52
// some have alternate form choices
53
// static vs. shared choices are always user unix libs
54
//////////////////////////////////////////////////////////////////////
56
GDAL_FORM = fw // fw or shared
57
PROJ_FORM = fw // fw or shared
58
GEOS_FORM = fw // fw or shared
60
// SQLite and Spatialite tied together and use same setting
61
// system is sqlite-only
62
// fw, shared and internal enable both, so spatial MUST be available
63
// (is avail for fw, use spatialite 2.3+ for shared sqlite+spatialite)
64
SQLITE_FORM = fw // system, fw, shared or internal
65
// whether spatialite is built with GEOS and PROJ, only for external spatialite
66
// (must be same GEOS and PROJ used for Qgis)
70
GSL_FORM = shared // static or shared
71
PGSQL_FORM = shared // static or shared
73
// system expat only on Leopard+
74
EXPAT_FORM = $(EXPAT_FORM_$(SDKSYS)) // static, shared or system
76
GRASS_FORM = app // app or unix
77
// version as in app name or unix folder name, can't auto-detect here
80
// system Python only on Leopard+
81
PYTHON_FORM = $(PYTHON_FORM_$(SDKSYS)) // fw, system or disabled
82
PYTHON_VERSION = $(PYTHON_VERSION_$(SDKSYS))
84
//////////////////////////////////////////////////////////////////////
85
// whether to bundle some external libs in the app package
86
// some checking is done, so /Library frameworks (except Qt) and
87
// /usr/lib libraries and /usr/bin progs won't be bundled
88
// bundling ignored for static libs
89
//////////////////////////////////////////////////////////////////////
91
// bundling GRASS doesn't make sense, as a full GRASS install is required
92
// Qt always bundled - else Qt plugins will load that cause grief
97
// frameworks not bundled
103
//////////////////////////////////////////////////////////////////////
104
// locations of user forms of dependencies
105
// only used when the _shared or _static form is used above
106
// or always for some libraries
107
// shared and static use same prefix
108
//////////////////////////////////////////////////////////////////////
110
GDAL_PREFIX_shared = /usr/local
111
PROJ_PREFIX_shared = /usr/local
112
GEOS_PREFIX_shared = /usr/local
114
GSL_PREFIX = /usr/local
116
// This must match exactly how GRASS was built and installed.
117
// If it was moved or renamed, qgis GRASS plugin will not work.
118
// Prefix is the equivalent of the GRASS GISBASE
119
GRASS_PREFIX_app = /Applications/GRASS-$(GRASS_VERSION).app/Contents/MacOS
120
GRASS_PREFIX_unix = /usr/local/grass-$(GRASS_VERSION)
122
PYSITE_fw = $(PYTHON_PREFIX_fw)/Versions/$(PYTHON_VERSION)/lib/python$(PYTHON_VERSION)/site-packages
124
EXPAT_PREFIX = /usr/local // not used for system expat
126
SQLITE_PREFIX_shared = /usr/local
128
PGSQL_PREFIX = /usr/local/pgsql
129
// used to link static libs, defaults based on kyngchaos dist
130
PGSQL_LIBADD = -lintl -framework CoreFoundation -liconv -lxml2 -lssl -lcrypto -lpam -lkrb5 -lldap -lz
132
//////////////////////////////////////////////////////////////////////
133
// DO NOT CHANGE THESE
134
//////////////////////////////////////////////////////////////////////
136
SDKROOT_tig = /Developer/SDKs/MacOSX10.4u.sdk
137
SDKROOT_leo = /Developer/SDKs/MacOSX10.5.sdk
138
SDKROOT_snow = /Developer/SDKs/MacOSX10.6.sdk
139
// all archs 32bit until Qt Cocoa works
142
ARCHS_snow = i386 // ;x86_64
144
SDKROOT = $(SDKROOT_$(SDKSYS))
145
SYMROOT = build/$(SDKSYS)
146
INSTALL_PREFIX = /Applications
147
QGIS_APP_NAME = Qgis.app
148
PROJECT_TARGET_DIR = $(SYMROOT)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
149
PROJECT_TARGET_APP_DIR = $(PROJECT_TARGET_DIR)/$(QGIS_PREFIX)
150
QGIS_PREFIX = $(QGIS_APP_NAME)/Contents
151
QGIS_INSTALL_PATH = $(INSTALL_PREFIX)/$(QGIS_PREFIX)
152
QGIS_BUILD_PATH = $(PROJECT_TARGET_DIR)/$(QGIS_PREFIX)
153
// subdirs are relative to MacOS dir, as if MacOS is unix "prefix"
154
QGIS_BIN_SUBDIR = bin // leave this alone for now
155
QGIS_FW_SUBDIR = ../Frameworks
156
QGIS_LIB_SUBDIR = lib // qgispython lib MUST be in MacOS/lib
157
QGIS_DATA_SUBDIR = ../Resources
158
QGIS_PLUGIN_SUBDIR = ../PlugIns/qgis
159
HEADER_SEARCH_PATHS = $(SYMROOT)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/include
160
//LIBRARY_SEARCH_PATHS = $(PROJECT_TARGET_APP_DIR)/../Frameworks
161
ALWAYS_SEARCH_USER_PATHS = NO
162
USE_HEADERMAP = NO // else headers with same name cause confusion
164
DYLIB_CURRENT_VERSION = $(QGIS_VERSION_MAJOR).$(QGIS_VERSION_MINOR)
165
DYLIB_COMPATIBILITY_VERSION = $(QGIS_VERSION_MAJOR).0
166
MACOSX_DEPLOYMENT_TARGET_tig = 10.4
167
MACOSX_DEPLOYMENT_TARGET_leo = 10.5
168
MACOSX_DEPLOYMENT_TARGET_snow = 10.6
169
MACOSX_DEPLOYMENT_TARGET = $(MACOSX_DEPLOYMENT_TARGET_$(SDKSYS))
170
GCC_INLINES_ARE_PRIVATE_EXTERN = NO
171
GCC_ENABLE_CPP_EXCEPTIONS = YES
172
GCC_ENABLE_CPP_RTTI = YES
173
GCC_SYMBOLS_PRIVATE_EXTERN = NO
174
GCC_WARN_ABOUT_RETURN_TYPE = YES
175
GCC_WARN_UNUSED_VARIABLE = YES
176
GCC_INCREASE_PRECOMPILED_HEADER_SHARING = YES
177
GCC_GENERATE_DEBUGGING_SYMBOLS = NO
179
GCC_CW_ASM_SYNTAX = NO
180
GCC_ENABLE_PASCAL_STRINGS = NO
181
GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = NO
182
GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO
185
INFOPLIST_EXPAND_BUILD_SETTINGS = YES
186
DEBUG_INFORMATION_FORMAT = dwarf-with-dsym
187
OTHER_LDFLAGS = -headerpad_max_install_names
188
GCC_VERSION_tig = 4.0
189
GCC_VERSION_leo = 4.0
190
GCC_VERSION_snow = 4.2
191
GCC_VERSION = $(GCC_VERSION_$(SDKSYS))
193
GCC_PREPROCESSOR_DEFINITIONS = $(DEFS_$(CONFIGURATION)) $(DEFS_EXPORT)
194
DEFS_Debug = QGISDEBUG=1
195
DEFS_Release = NDEBUG
196
DEFS_EXPORT = CORE_EXPORT= GUI_EXPORT= PYTHON_EXPORT= ANALYSIS_EXPORT=
198
// use full flags instead of Xcode includes and defs,
199
// since these are needed in scripts also
200
QT_CXXFLAGS = -DQT_DLL -DQT_SVG_LIB -DQT_GUI_LIB -DQT_XML_LIB -DQT_SQL_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_NO_CAST_TO_ASCII $(QTDEFS_$(CONFIGURATION)) -I/Library/Frameworks/QtCore.framework/Headers -I/Library/Frameworks/QtGui.framework/Headers -I/Library/Frameworks/QtNetwork.framework/Headers -I/Library/Frameworks/QtSql.framework/Headers -I/Library/Frameworks/QtSvg.framework/Headers -I/Library/Frameworks/QtXml.framework/Headers -I/Library/Frameworks/QtWebKit.framework/Headers
201
QT_INC_UITOOLS = /usr/include/QtUiTools
202
QTDEFS_Debug = -DQT_DEBUG
203
QTDEFS_Release = -DQT_NO_DEBUG
204
QT_CXXFLAGS_APP = $(PGSQL_HAVE)
205
QT_LIB_CORE = -framework QtCore
206
QT_LIB_GUI = -framework QtGui
207
QT_LIB_NET = -framework QtNetwork
208
QT_LIB_XML = -framework QtXml
209
QT_LIB_SVG = -framework QtSvg
210
QT_LIB_SQL = -framework QtSql
211
QT_LIB_WEBKIT = -framework QtWebKit
212
QT_LIB_UITOOLS = -lQtUiTools
213
// convenience for all Qt:
214
QT_LIB = $(QT_LIB_CORE) $(QT_LIB_GUI) $(QT_LIB_NET) $(QT_LIB_XML) $(QT_LIB_SVG) $(QT_LIB_SQL)
215
// list of Qt frameworks used
216
QTLISTQG = QtCore QtGui QtNetwork QtSql QtSvg QtXml QtWebKit
217
// list of PyQt modules used
218
PYQTLIST = Qt QtCore QtGui QtNetwork QtSql QtSvg QtXml QtWebKit
220
// with a choice of system vs user unix libs, use full path to lib file
221
// to avoid possible accidental linking to system lib (ie expat)
223
GDAL_PREFIX_fw = /Library/Frameworks/GDAL.framework
224
GDAL_PREFIX = $(GDAL_PREFIX_$(GDAL_FORM))
225
GDAL_INC_fw = $(GDAL_PREFIX_fw)/Headers
226
GDAL_INC_shared = $(GDAL_PREFIX_shared)/include
227
GDAL_INC = $(GDAL_INC_$(GDAL_FORM))
228
GDAL_LIB_fw = -framework GDAL
229
GDAL_LIB_shared = -L$(GDAL_PREFIX_shared)/lib -lgdal
230
GDAL_LIB = $(GDAL_LIB_$(GDAL_FORM))
232
PROJ_PREFIX_fw = /Library/Frameworks/PROJ.framework
233
PROJ_INC_fw = $(PROJ_PREFIX_fw)/Headers
234
PROJ_INC_shared = $(PROJ_PREFIX_shared)/include
235
PROJ_INC = $(PROJ_INC_$(PROJ_FORM))
236
PROJ_LIB_fw = -framework PROJ
237
PROJ_LIB_shared = -L$(PROJ_PREFIX_shared)/lib -lproj
238
PROJ_LIB = $(PROJ_LIB_$(PROJ_FORM))
240
GEOS_PREFIX_fw = /Library/Frameworks/GEOS.framework
241
GEOS_PREFIX = $(GEOS_PREFIX_$(GEOS_FORM))
242
GEOS_INC_fw = $(GEOS_PREFIX_fw)/Headers
243
GEOS_INC_shared = $(GEOS_PREFIX_shared)/include
244
GEOS_INC = $(GEOS_INC_$(GEOS_FORM))
245
GEOS_LIB_fw = -framework GEOS
246
GEOS_LIB_shared = -L$(GEOS_PREFIX_shared)/lib -lgeos -lgeos_c
247
GEOS_LIB = $(GEOS_LIB_$(GEOS_FORM))
249
GRASS_PREFIX = $(GRASS_PREFIX_$(GRASS_FORM))
250
GRASS_INC = $(GRASS_PREFIX)/include $(GRASS_PREFIX)/include/grass
251
GRASS_LIB_gis = -lgrass_gis
252
GRASS_LIB_vect = -lgrass_vect
253
GRASS_LIB_dig2 = -lgrass_dig2
254
GRASS_LIB_dbmiclient = -lgrass_dbmiclient
255
GRASS_LIB_dbmibase = -lgrass_dbmibase
256
GRASS_LIB_shape = -lgrass_shape
257
GRASS_LIB_dgl = -lgrass_dgl
258
GRASS_LIB_rtree = -lgrass_rtree
259
GRASS_LIB_datetime = -lgrass_datetime
260
GRASS_LIB_linkm = -lgrass_linkm
261
GRASS_LIB_form = -lgrass_form
262
GRASS_LIB_gproj = -lgrass_gproj
263
GRASS_LIB_DIR = $(GRASS_PREFIX)/lib
264
GRASS_BASE = $(GRASS_PREFIX)
267
// defaults by SDKSYS
268
EXPAT_FORM_tig = shared
269
EXPAT_FORM_leo = system
270
EXPAT_FORM_snow = system
273
EXPAT_INC_shared = $(EXPAT_PREFIX)/include
274
EXPAT_INC_static = $(EXPAT_PREFIX)/include
275
EXPAT_INC = $(EXPAT_INC_$(EXPAT_FORM))
276
EXPAT_LIB_system = -lexpat
277
EXPAT_LIB_shared = $(EXPAT_PREFIX)/lib/libexpat.dylib
278
EXPAT_LIB_static = $(EXPAT_PREFIX)/lib/libexpat.a
279
EXPAT_LIB = $(EXPAT_LIB_$(EXPAT_FORM))
281
GSL_INC = $(GSL_PREFIX)/include
282
GSL_LIB_shared = -L$(GSL_PREFIX)/lib -lgsl -lm
283
GSL_LIB_static = $(GSL_PREFIX)/lib/libgsl.a $(GSL_PREFIX)/lib/libgslcblas.a -lm
284
GSL_LIB = $(GSL_LIB_$(GSL_FORM))
286
PGSQL_INC = $(PGSQL_PREFIX)/include
287
PGSQL_LIB_shared = -L$(PGSQL_PREFIX)/lib -lpq
288
PGSQL_LIB_static = -L$(PGSQL_PREFIX)/lib $(PGSQL_PREFIX)/lib/libpq.a $(PGSQL_LIBADD)
289
PGSQL_LIB = $(PGSQL_LIB_$(PGSQL_FORM))
290
PGSQL_HAVE_shared = -DHAVE_PGCONFIG=1
291
PGSQL_HAVE_static = -DHAVE_PGCONFIG=1
292
PGSQL_HAVE = $(PGSQL_HAVE_$(PGSQL_FORM))
294
SQLITE_PREFIX_fw = /Library/Frameworks/SQLite3.framework
296
SQLITE_INC_fw = $(SQLITE_PREFIX_fw)/Headers
297
SQLITE_INC_shared = $(SQLITE_PREFIX_shared)/include
298
SQLITE_INC_internal = ../../src/core/spatialite/headers/spatialite
299
SQLITE_INC = $(SQLITE_INC_$(SQLITE_FORM))
300
SQLITE_LIB_system = -lsqlite3
301
SQLITE_LIB_fw = -framework SQLite3
302
SQLITE_LIB_shared = $(SQLITE_PREFIX_shared)/lib/libsqlite3.dylib $(SQLITE_PREFIX_shared)/lib/libspatialite3.dylib
303
SQLITE_LIB_internal =
304
SQLITE_LIB = $(SQLITE_LIB_$(SQLITE_FORM))
305
SQLITE_DEFS_internal = HAVE_INTTYPES_H=1 HAVE_STDINT_H=1 HAVE_USLEEP=1 HAVE_LOCALTIME_R=1 HAVE_GMTIME_R=1 SQLITE_THREADSAFE=1 __DARWIN__ SQLITE_ENABLE_RTREE=1 OMIT_GEOS=1 OMIT_PROJ=1
306
SQLITE_DEFS = $(SQLITE_INTERNAL) $(SQLITE_DEFS_$(SQLITE_FORM))
307
SQLITE_INTERNAL_internal = 1
308
SQLITE_INTERNAL_system = 0
309
SQLITE_INTERNAL_fw = 0
310
SQLITE_INTERNAL_shared = 0
311
SQLITE_INTERNAL = SQLITE_QINTERNAL=$(SQLITE_INTERNAL_$(SQLITE_FORM))
312
SQLITE_SYSTEM_system = 1
313
SQLITE_SYSTEM_internal = 0
315
SQLITE_SYSTEM_shared = 0
316
SQLITE_SYSTEM = SQLITE_SYSTEM=$(SQLITE_SYSTEM_$(SQLITE_FORM))
318
SPATIALITE_GEOS_yes_fw = $(GEOS_LIB)
319
SPATIALITE_GEOS_yes_shared = $(GEOS_LIB)
320
SPATIALITE_PROJ_yes_fw = $(PROJ_LIB)
321
SPATIALITE_PROJ_yes_shared = $(PROJ_LIB)
322
SPATIALITE_INC_internal = ../../src/core/spatialite/headers
323
SPATIALITE_INC = $(SPATIALITE_INC_$(SQLITE_FORM))
324
SPATIALITE_LIBADD_internal = -liconv -ldl
325
SPATIALITE_LIBADD = $(SPATIALITE_GEOS_$(SPATIALITE_GEOS)_$(SQLITE_FORM)) $(SPATIALITE_PROJ_$(SPATIALITE_PROJ)_$(SQLITE_FORM)) $(SPATIALITE_LIBADD_$(SQLITE_FORM))
327
// defaults by system
328
PYTHON_VERSION_tig = 2.5
329
PYTHON_VERSION_leo = 2.5
330
PYTHON_VERSION_snow = 2.6
332
PYTHON_FORM_leo = system
333
PYTHON_FORM_snow = system
334
// all archs 32bit until Qt Cocoa works; should match ARCHS
335
ARCHS_P_tig = ppc;i386
336
ARCHS_P_leo = ppc;i386
337
ARCHS_P_snow = i386 // ;x86_64
339
PYTHON_PREFIX_fw = /Library/Frameworks/Python.framework
340
PYTHON_PREFIX_system = /System/Library/Frameworks/Python.framework
341
PYTHON_PREFIX = $(PYTHON_PREFIX_$(PYTHON_FORM))/Versions/$(PYTHON_VERSION)
342
PYTHON_BIN_fw = $(PYTHON_PREFIX_fw)/Versions/$(PYTHON_VERSION)/bin
343
PYTHON_BIN_system = /usr/bin
344
PYTHON_BIN = $(PYTHON_BIN_$(PYTHON_FORM))
345
PYTHON_USRBIN_fw = $(PYTHON_BIN_fw)
346
PYTHON_USRBIN_system = /usr/local/bin
347
PYTHON_USRBIN = $(PYTHON_USRBIN_$(PYTHON_FORM))
348
PYTHON_INC = $(PYTHON_PREFIX)/Headers
349
PYTHON_LIB = -framework Python // must always be framework, full path will work
350
PYTHON_HAVE_fw_tig = HAVE_PYTHON=1
351
PYTHON_HAVE_fw_leo = HAVE_PYTHON=1
352
PYTHON_HAVE_fw_snow = HAVE_PYTHON=1
353
PYTHON_HAVE_fw_ = HAVE_PYTHON=1
354
PYTHON_HAVE_system_tig =
355
PYTHON_HAVE_system_leo = HAVE_PYTHON=1
356
PYTHON_HAVE_system_snow = HAVE_PYTHON=1
357
PYTHON_HAVE_system_ =
358
PYTHON_HAVE = $(PYTHON_HAVE_$(PYTHON_FORM)_$(SDKSYS))
359
PYSITE_system = /Library/Python/$(PYTHON_VERSION)/site-packages
360
PYSITE = $(PYSITE_$(PYTHON_FORM))
361
PYTHON = $(PYTHON_PREFIX)/bin/python
363
#include "qgis_user.xcconfig"