Add the ability to pass custom CXXFLAGS and LDFLAGS that will be prioritized above other compiler and linker flags
This commit is contained in:
parent
65ef9a3548
commit
523b09701e
17 changed files with 81 additions and 37 deletions
|
@ -243,6 +243,8 @@ opts.AddVariables(
|
||||||
# Compiler options
|
# Compiler options
|
||||||
('CXX', 'The C++ compiler to use to compile mapnik (defaults to g++).', 'g++'),
|
('CXX', 'The C++ compiler to use to compile mapnik (defaults to g++).', 'g++'),
|
||||||
('CC', 'The C compiler used for configure checks of C libs (defaults to gcc).', 'gcc'),
|
('CC', 'The C compiler used for configure checks of C libs (defaults to gcc).', 'gcc'),
|
||||||
|
('CUSTOM_CXXFLAGS', 'Custom C++ flags, e.g. -I<include dir> if you have headers in a nonstandard directory <include dir>', ''),
|
||||||
|
('CUSTOM_LDFLAGS', 'Custom linker flags, e.g. -L<lib dir> if you have libraries in a nonstandard directory <lib dir>', ''),
|
||||||
EnumVariable('OPTIMIZATION','Set g++ optimization level','2', ['0','1','2','3','4']),
|
EnumVariable('OPTIMIZATION','Set g++ optimization level','2', ['0','1','2','3','4']),
|
||||||
# Note: setting DEBUG=True will override any custom OPTIMIZATION level
|
# Note: setting DEBUG=True will override any custom OPTIMIZATION level
|
||||||
BoolVariable('DEBUG', 'Compile a debug version of Mapnik', 'False'),
|
BoolVariable('DEBUG', 'Compile a debug version of Mapnik', 'False'),
|
||||||
|
@ -339,6 +341,8 @@ pickle_store = [# Scons internal variables
|
||||||
'LIBPATH',
|
'LIBPATH',
|
||||||
'LIBS',
|
'LIBS',
|
||||||
'LINKFLAGS',
|
'LINKFLAGS',
|
||||||
|
'CUSTOM_LDFLAGS', # user submitted
|
||||||
|
'CUSTOM_CXXFLAGS', # user submitted
|
||||||
# Mapnik's SConstruct build variables
|
# Mapnik's SConstruct build variables
|
||||||
'PLUGINS',
|
'PLUGINS',
|
||||||
'ABI_VERSION',
|
'ABI_VERSION',
|
||||||
|
@ -785,11 +789,15 @@ if not preconfigured:
|
||||||
env['CPPPATH'] = ['#include', '#']
|
env['CPPPATH'] = ['#include', '#']
|
||||||
env['LIBPATH'] = ['#src']
|
env['LIBPATH'] = ['#src']
|
||||||
|
|
||||||
|
# set any custom cxxflags to come first
|
||||||
|
env.Append(CXXFLAGS = env['CUSTOM_CXXFLAGS'])
|
||||||
|
|
||||||
# Solaris & Sun Studio settings (the `SUNCC` flag will only be
|
# Solaris & Sun Studio settings (the `SUNCC` flag will only be
|
||||||
# set if the `CXX` option begins with `CC`)
|
# set if the `CXX` option begins with `CC`)
|
||||||
SOLARIS = env['PLATFORM'] == 'SunOS'
|
SOLARIS = env['PLATFORM'] == 'SunOS'
|
||||||
env['SUNCC'] = SOLARIS and env['CXX'].startswith('CC')
|
env['SUNCC'] = SOLARIS and env['CXX'].startswith('CC')
|
||||||
|
|
||||||
|
|
||||||
# If the Sun Studio C++ compiler (`CC`) is used instead of GCC.
|
# If the Sun Studio C++ compiler (`CC`) is used instead of GCC.
|
||||||
if env['SUNCC']:
|
if env['SUNCC']:
|
||||||
env['CC'] = 'cc'
|
env['CC'] = 'cc'
|
||||||
|
|
|
@ -28,7 +28,6 @@ Import('env')
|
||||||
prefix = env['PREFIX']
|
prefix = env['PREFIX']
|
||||||
target_path = env['PYTHON_INSTALL_LOCATION'] + '/mapnik2'
|
target_path = env['PYTHON_INSTALL_LOCATION'] + '/mapnik2'
|
||||||
|
|
||||||
linkflags = ''
|
|
||||||
libraries = ['mapnik2','png','jpeg']
|
libraries = ['mapnik2','png','jpeg']
|
||||||
|
|
||||||
if env['BOOST_PYTHON_LIB']:
|
if env['BOOST_PYTHON_LIB']:
|
||||||
|
@ -68,12 +67,12 @@ if env['PLATFORM'] == 'Darwin':
|
||||||
# http://developer.apple.com/mac/library/DOCUMENTATION/Darwin/Reference/ManPages/man1/ld.1.html
|
# http://developer.apple.com/mac/library/DOCUMENTATION/Darwin/Reference/ManPages/man1/ld.1.html
|
||||||
|
|
||||||
if env['PYTHON_DYNAMIC_LOOKUP']:
|
if env['PYTHON_DYNAMIC_LOOKUP']:
|
||||||
linkflags = '-undefined dynamic_lookup'
|
python_link_flag = '-undefined dynamic_lookup'
|
||||||
elif env['FRAMEWORK_PYTHON']:
|
elif env['FRAMEWORK_PYTHON']:
|
||||||
if env['FRAMEWORK_SEARCH_PATH']:
|
if env['FRAMEWORK_SEARCH_PATH']:
|
||||||
# if the user has supplied a custom root path to search for
|
# if the user has supplied a custom root path to search for
|
||||||
# a given Python framework, then use that to direct the linker
|
# a given Python framework, then use that to direct the linker
|
||||||
linkflags = '-F%s -framework Python -Z' % env['FRAMEWORK_SEARCH_PATH']
|
python_link_flag = '-F%s -framework Python -Z' % env['FRAMEWORK_SEARCH_PATH']
|
||||||
else:
|
else:
|
||||||
# otherwise be as explicit as possible for linking to the same Framework
|
# otherwise be as explicit as possible for linking to the same Framework
|
||||||
# as the executable we are building with (or is pointed to by the PYTHON variable)
|
# as the executable we are building with (or is pointed to by the PYTHON variable)
|
||||||
|
@ -84,21 +83,25 @@ if env['PLATFORM'] == 'Darwin':
|
||||||
# See: http://trac.mapnik.org/ticket/380
|
# See: http://trac.mapnik.org/ticket/380
|
||||||
link_prefix = env['PYTHON_SYS_PREFIX']
|
link_prefix = env['PYTHON_SYS_PREFIX']
|
||||||
if '.framework' in link_prefix:
|
if '.framework' in link_prefix:
|
||||||
linkflags = '-F%s -framework Python -Z' % os.path.dirname(link_prefix.split('.')[0])
|
python_link_flag = '-F%s -framework Python -Z' % os.path.dirname(link_prefix.split('.')[0])
|
||||||
elif '/System' in link_prefix:
|
elif '/System' in link_prefix:
|
||||||
linkflags = '-F/System/Library/Frameworks/ -framework Python -Z'
|
python_link_flag = '-F/System/Library/Frameworks/ -framework Python -Z'
|
||||||
else:
|
else:
|
||||||
# should we fall back to -lpython here?
|
# should we fall back to -lpython here?
|
||||||
linkflags = '-F/ -framework Python'
|
python_link_flag = '-F/ -framework Python'
|
||||||
|
|
||||||
# if we are not linking to a framework then use the *nix standard approach
|
# if we are not linking to a framework then use the *nix standard approach
|
||||||
else:
|
else:
|
||||||
linkflags = '-lpython%s' % env['PYTHON_VERSION']
|
# TODO - do we need to pass -L/?
|
||||||
|
python_link_flag = '-lpython%s' % env['PYTHON_VERSION']
|
||||||
|
|
||||||
|
if env['CUSTOM_LDFLAGS']:
|
||||||
|
linkflags = '%s %s' % (env['CUSTOM_LDFLAGS'], python_link_flag)
|
||||||
|
else:
|
||||||
|
linkflags = python_link_flag
|
||||||
|
|
||||||
paths = '''
|
paths = '''
|
||||||
"""Configuration paths of Mapnik fonts and input plugins (autogenerated by SCons)."""
|
"""Configuration paths of Mapnik fonts and input plugins (auto-generated by SCons)."""
|
||||||
|
|
||||||
import os
|
import os
|
||||||
|
|
||||||
|
@ -149,7 +152,7 @@ py_env.Append(CPPPATH = env['PYTHON_INCLUDES'])
|
||||||
if env['SVN_REVISION']:
|
if env['SVN_REVISION']:
|
||||||
sources.remove('mapnik_python.cpp')
|
sources.remove('mapnik_python.cpp')
|
||||||
env2 = py_env.Clone()
|
env2 = py_env.Clone()
|
||||||
env2.Append(CCFLAGS='-DSVN_REVISION=%s' % env['SVN_REVISION'])
|
env2.Append(CXXFLAGS='-DSVN_REVISION=%s' % env['SVN_REVISION'])
|
||||||
if env['HAS_CAIRO'] or env['HAS_PYCAIRO']:
|
if env['HAS_CAIRO'] or env['HAS_PYCAIRO']:
|
||||||
if env['HAS_CAIRO']:
|
if env['HAS_CAIRO']:
|
||||||
env2.ParseConfig('pkg-config --libs --cflags cairomm-1.0')
|
env2.ParseConfig('pkg-config --libs --cflags cairomm-1.0')
|
||||||
|
|
|
@ -24,6 +24,8 @@ Import ('env')
|
||||||
prefix = env['PREFIX']
|
prefix = env['PREFIX']
|
||||||
install_prefix = env['DESTDIR'] + '/' + prefix
|
install_prefix = env['DESTDIR'] + '/' + prefix
|
||||||
|
|
||||||
|
plugin_env = env.Clone()
|
||||||
|
|
||||||
gdal_src = Split(
|
gdal_src = Split(
|
||||||
"""
|
"""
|
||||||
gdal_datasource.cpp
|
gdal_datasource.cpp
|
||||||
|
@ -36,7 +38,7 @@ if env['PLATFORM'] == 'Darwin':
|
||||||
libraries.append('mapnik2')
|
libraries.append('mapnik2')
|
||||||
libraries.append(env['ICU_LIB_NAME'])
|
libraries.append(env['ICU_LIB_NAME'])
|
||||||
|
|
||||||
gdal_inputdriver = env.SharedLibrary('../gdal', source=gdal_src, SHLIBPREFIX='', SHLIBSUFFIX='.input', LIBS=libraries)
|
gdal_inputdriver = plugin_env.SharedLibrary('../gdal', source=gdal_src, SHLIBPREFIX='', SHLIBSUFFIX='.input', LIBS=libraries, LINKFLAGS=env['CUSTOM_LDFLAGS'])
|
||||||
|
|
||||||
if 'uninstall' not in COMMAND_LINE_TARGETS:
|
if 'uninstall' not in COMMAND_LINE_TARGETS:
|
||||||
env.Install(install_prefix + '/' + env['LIBDIR_SCHEMA'] + env['LIB_DIR_NAME'] + '/input', gdal_inputdriver)
|
env.Install(install_prefix + '/' + env['LIBDIR_SCHEMA'] + env['LIB_DIR_NAME'] + '/input', gdal_inputdriver)
|
||||||
|
|
|
@ -24,6 +24,8 @@ Import ('env')
|
||||||
prefix = env['PREFIX']
|
prefix = env['PREFIX']
|
||||||
install_prefix = env['DESTDIR'] + '/' + prefix
|
install_prefix = env['DESTDIR'] + '/' + prefix
|
||||||
|
|
||||||
|
plugin_env = env.Clone()
|
||||||
|
|
||||||
kismet_src = Split(
|
kismet_src = Split(
|
||||||
"""
|
"""
|
||||||
kismet_datasource.cpp
|
kismet_datasource.cpp
|
||||||
|
@ -37,7 +39,7 @@ if env['PLATFORM'] == 'Darwin':
|
||||||
libraries.append(env['ICU_LIB_NAME'])
|
libraries.append(env['ICU_LIB_NAME'])
|
||||||
libraries.append('boost_thread%s' % env['BOOST_APPEND'])
|
libraries.append('boost_thread%s' % env['BOOST_APPEND'])
|
||||||
|
|
||||||
kismet_inputdriver = env.SharedLibrary('../kismet', source=kismet_src, SHLIBPREFIX='', SHLIBSUFFIX='.input', LIBS=libraries)
|
kismet_inputdriver = plugin_env.SharedLibrary('../kismet', source=kismet_src, SHLIBPREFIX='', SHLIBSUFFIX='.input', LIBS=libraries, LINKFLAGS=env['CUSTOM_LDFLAGS'])
|
||||||
|
|
||||||
if 'uninstall' not in COMMAND_LINE_TARGETS:
|
if 'uninstall' not in COMMAND_LINE_TARGETS:
|
||||||
env.Install(install_prefix + '/' + env['LIBDIR_SCHEMA'] + env['LIB_DIR_NAME'] + '/input', kismet_inputdriver)
|
env.Install(install_prefix + '/' + env['LIBDIR_SCHEMA'] + env['LIB_DIR_NAME'] + '/input', kismet_inputdriver)
|
||||||
|
|
|
@ -24,6 +24,8 @@ Import ('env')
|
||||||
prefix = env['PREFIX']
|
prefix = env['PREFIX']
|
||||||
install_prefix = env['DESTDIR'] + '/' + prefix
|
install_prefix = env['DESTDIR'] + '/' + prefix
|
||||||
|
|
||||||
|
plugin_env = env.Clone()
|
||||||
|
|
||||||
occi_src = Split(
|
occi_src = Split(
|
||||||
"""
|
"""
|
||||||
occi_types.cpp
|
occi_types.cpp
|
||||||
|
@ -39,7 +41,7 @@ if env['PLATFORM'] == 'Darwin':
|
||||||
libraries.append('mapnik2')
|
libraries.append('mapnik2')
|
||||||
libraries.append(env['ICU_LIB_NAME'])
|
libraries.append(env['ICU_LIB_NAME'])
|
||||||
|
|
||||||
occi_inputdriver = env.SharedLibrary('../occi', source=occi_src, SHLIBPREFIX='', SHLIBSUFFIX='.input', LIBS=libraries)
|
occi_inputdriver = plugin_env.SharedLibrary('../occi', source=occi_src, SHLIBPREFIX='', SHLIBSUFFIX='.input', LIBS=libraries, LINKFLAGS=env['CUSTOM_LDFLAGS'])
|
||||||
|
|
||||||
if 'uninstall' not in COMMAND_LINE_TARGETS:
|
if 'uninstall' not in COMMAND_LINE_TARGETS:
|
||||||
env.Install(install_prefix + '/' + env['LIBDIR_SCHEMA'] + env['LIB_DIR_NAME'] + '/input', occi_inputdriver)
|
env.Install(install_prefix + '/' + env['LIBDIR_SCHEMA'] + env['LIB_DIR_NAME'] + '/input', occi_inputdriver)
|
||||||
|
|
|
@ -25,6 +25,8 @@ Import ('env')
|
||||||
prefix = env['PREFIX']
|
prefix = env['PREFIX']
|
||||||
install_prefix = env['DESTDIR'] + '/' + prefix
|
install_prefix = env['DESTDIR'] + '/' + prefix
|
||||||
|
|
||||||
|
plugin_env = env.Clone()
|
||||||
|
|
||||||
ogr_src = Split(
|
ogr_src = Split(
|
||||||
"""
|
"""
|
||||||
ogr_converter.cpp
|
ogr_converter.cpp
|
||||||
|
@ -43,7 +45,7 @@ if env['PLATFORM'] == 'Darwin':
|
||||||
libraries.append('boost_system%s' % env['BOOST_APPEND'])
|
libraries.append('boost_system%s' % env['BOOST_APPEND'])
|
||||||
libraries.append('boost_filesystem%s' % env['BOOST_APPEND'])
|
libraries.append('boost_filesystem%s' % env['BOOST_APPEND'])
|
||||||
|
|
||||||
ogr_inputdriver = env.SharedLibrary('../ogr', source=ogr_src, SHLIBPREFIX='', SHLIBSUFFIX='.input', LIBS=libraries)
|
ogr_inputdriver = plugin_env.SharedLibrary('../ogr', source=ogr_src, SHLIBPREFIX='', SHLIBSUFFIX='.input', LIBS=libraries, LINKFLAGS=env['CUSTOM_LDFLAGS'])
|
||||||
|
|
||||||
if 'uninstall' not in COMMAND_LINE_TARGETS:
|
if 'uninstall' not in COMMAND_LINE_TARGETS:
|
||||||
env.Install(install_prefix + '/' + env['LIBDIR_SCHEMA'] + env['LIB_DIR_NAME'] + '/input', ogr_inputdriver)
|
env.Install(install_prefix + '/' + env['LIBDIR_SCHEMA'] + env['LIB_DIR_NAME'] + '/input', ogr_inputdriver)
|
||||||
|
|
|
@ -24,6 +24,8 @@ Import ('env')
|
||||||
prefix = env['PREFIX']
|
prefix = env['PREFIX']
|
||||||
install_prefix = env['DESTDIR'] + '/' + prefix
|
install_prefix = env['DESTDIR'] + '/' + prefix
|
||||||
|
|
||||||
|
plugin_env = env.Clone()
|
||||||
|
|
||||||
osm_src = Split(
|
osm_src = Split(
|
||||||
"""
|
"""
|
||||||
osmparser.cpp
|
osmparser.cpp
|
||||||
|
@ -41,7 +43,7 @@ if env['PLATFORM'] == 'Darwin':
|
||||||
libraries.append('mapnik2')
|
libraries.append('mapnik2')
|
||||||
libraries.append(env['ICU_LIB_NAME'])
|
libraries.append(env['ICU_LIB_NAME'])
|
||||||
|
|
||||||
osm_inputdriver = env.SharedLibrary('../osm', source=osm_src, SHLIBPREFIX='', SHLIBSUFFIX='.input', LIBS=libraries)
|
osm_inputdriver = plugin_env.SharedLibrary('../osm', source=osm_src, SHLIBPREFIX='', SHLIBSUFFIX='.input', LIBS=libraries, LINKFLAGS=env['CUSTOM_LDFLAGS'])
|
||||||
|
|
||||||
if 'uninstall' not in COMMAND_LINE_TARGETS:
|
if 'uninstall' not in COMMAND_LINE_TARGETS:
|
||||||
env.Install(install_prefix + '/' + env['LIBDIR_SCHEMA'] + env['LIB_DIR_NAME'] + '/input', osm_inputdriver)
|
env.Install(install_prefix + '/' + env['LIBDIR_SCHEMA'] + env['LIB_DIR_NAME'] + '/input', osm_inputdriver)
|
||||||
|
|
|
@ -24,6 +24,8 @@ Import ('env')
|
||||||
prefix = env['PREFIX']
|
prefix = env['PREFIX']
|
||||||
install_prefix = env['DESTDIR'] + '/' + prefix
|
install_prefix = env['DESTDIR'] + '/' + prefix
|
||||||
|
|
||||||
|
plugin_env = env.Clone()
|
||||||
|
|
||||||
postgis_src = Split(
|
postgis_src = Split(
|
||||||
"""
|
"""
|
||||||
postgis.cpp
|
postgis.cpp
|
||||||
|
@ -39,7 +41,7 @@ if env['PLATFORM'] == 'Darwin':
|
||||||
if env['THREADING'] == 'multi':
|
if env['THREADING'] == 'multi':
|
||||||
libraries.append('boost_thread%s' % env['BOOST_APPEND'])
|
libraries.append('boost_thread%s' % env['BOOST_APPEND'])
|
||||||
|
|
||||||
postgis_inputdriver = env.SharedLibrary('../postgis', source=postgis_src, SHLIBPREFIX='', SHLIBSUFFIX='.input', LIBS=libraries)
|
postgis_inputdriver = plugin_env.SharedLibrary('../postgis', source=postgis_src, SHLIBPREFIX='', SHLIBSUFFIX='.input', LIBS=libraries, LINKFLAGS=env['CUSTOM_LDFLAGS'])
|
||||||
|
|
||||||
if 'uninstall' not in COMMAND_LINE_TARGETS:
|
if 'uninstall' not in COMMAND_LINE_TARGETS:
|
||||||
env.Install(install_prefix + '/' + env['LIBDIR_SCHEMA'] + env['LIB_DIR_NAME'] + '/input', postgis_inputdriver)
|
env.Install(install_prefix + '/' + env['LIBDIR_SCHEMA'] + env['LIB_DIR_NAME'] + '/input', postgis_inputdriver)
|
||||||
|
|
|
@ -24,6 +24,8 @@ Import ('env')
|
||||||
prefix = env['PREFIX']
|
prefix = env['PREFIX']
|
||||||
install_prefix = env['DESTDIR'] + '/' + prefix
|
install_prefix = env['DESTDIR'] + '/' + prefix
|
||||||
|
|
||||||
|
plugin_env = env.Clone()
|
||||||
|
|
||||||
raster_src = Split(
|
raster_src = Split(
|
||||||
"""
|
"""
|
||||||
raster_datasource.cpp
|
raster_datasource.cpp
|
||||||
|
@ -39,7 +41,7 @@ if env['PLATFORM'] == 'Darwin':
|
||||||
libraries.append('boost_system%s' % env['BOOST_APPEND'])
|
libraries.append('boost_system%s' % env['BOOST_APPEND'])
|
||||||
libraries.append('boost_filesystem%s' % env['BOOST_APPEND'])
|
libraries.append('boost_filesystem%s' % env['BOOST_APPEND'])
|
||||||
|
|
||||||
raster_inputdriver = env.SharedLibrary('../raster', source=raster_src, SHLIBPREFIX='', SHLIBSUFFIX='.input', LIBS=libraries)
|
raster_inputdriver = plugin_env.SharedLibrary('../raster', source=raster_src, SHLIBPREFIX='', SHLIBSUFFIX='.input', LIBS=libraries, LINKFLAGS=env['CUSTOM_LDFLAGS'])
|
||||||
|
|
||||||
if 'uninstall' not in COMMAND_LINE_TARGETS:
|
if 'uninstall' not in COMMAND_LINE_TARGETS:
|
||||||
env.Install(install_prefix + '/' + env['LIBDIR_SCHEMA'] + env['LIB_DIR_NAME'] + '/input', raster_inputdriver)
|
env.Install(install_prefix + '/' + env['LIBDIR_SCHEMA'] + env['LIB_DIR_NAME'] + '/input', raster_inputdriver)
|
||||||
|
|
|
@ -24,6 +24,8 @@ Import ('env')
|
||||||
prefix = env['PREFIX']
|
prefix = env['PREFIX']
|
||||||
install_prefix = env['DESTDIR'] + '/' + prefix
|
install_prefix = env['DESTDIR'] + '/' + prefix
|
||||||
|
|
||||||
|
plugin_env = env.Clone()
|
||||||
|
|
||||||
rasterlite_src = Split(
|
rasterlite_src = Split(
|
||||||
"""
|
"""
|
||||||
rasterlite_datasource.cpp
|
rasterlite_datasource.cpp
|
||||||
|
@ -36,7 +38,7 @@ if env['PLATFORM'] == 'Darwin':
|
||||||
libraries.append('mapnik2')
|
libraries.append('mapnik2')
|
||||||
libraries.append(env['ICU_LIB_NAME'])
|
libraries.append(env['ICU_LIB_NAME'])
|
||||||
|
|
||||||
rasterlite_inputdriver = env.SharedLibrary('../rasterlite', source=rasterlite_src, SHLIBPREFIX='', SHLIBSUFFIX='.input', LIBS=libraries)
|
rasterlite_inputdriver = plugin_env.SharedLibrary('../rasterlite', source=rasterlite_src, SHLIBPREFIX='', SHLIBSUFFIX='.input', LIBS=libraries, LINKFLAGS=env['CUSTOM_LDFLAGS'])
|
||||||
|
|
||||||
if 'uninstall' not in COMMAND_LINE_TARGETS:
|
if 'uninstall' not in COMMAND_LINE_TARGETS:
|
||||||
env.Install(install_prefix + '/' + env['LIBDIR_SCHEMA'] + env['LIB_DIR_NAME'] + '/input', rasterlite_inputdriver)
|
env.Install(install_prefix + '/' + env['LIBDIR_SCHEMA'] + env['LIB_DIR_NAME'] + '/input', rasterlite_inputdriver)
|
||||||
|
|
|
@ -25,6 +25,8 @@ Import ('env')
|
||||||
prefix = env['PREFIX']
|
prefix = env['PREFIX']
|
||||||
install_prefix = env['DESTDIR'] + '/' + prefix
|
install_prefix = env['DESTDIR'] + '/' + prefix
|
||||||
|
|
||||||
|
plugin_env = env.Clone()
|
||||||
|
|
||||||
shape_src = Split(
|
shape_src = Split(
|
||||||
"""
|
"""
|
||||||
dbffile.cpp
|
dbffile.cpp
|
||||||
|
@ -44,11 +46,10 @@ if env['PLATFORM'] == 'Darwin':
|
||||||
libraries.append('boost_system%s' % env['BOOST_APPEND'])
|
libraries.append('boost_system%s' % env['BOOST_APPEND'])
|
||||||
libraries.append('boost_filesystem%s' % env['BOOST_APPEND'])
|
libraries.append('boost_filesystem%s' % env['BOOST_APPEND'])
|
||||||
|
|
||||||
env2 = env.Clone()
|
|
||||||
if env['SHAPE_MEMORY_MAPPED_FILE']:
|
if env['SHAPE_MEMORY_MAPPED_FILE']:
|
||||||
env2.Append(CXXFLAGS = '-DSHAPE_MEMORY_MAPPED_FILE')
|
plugin_env.Append(CXXFLAGS = '-DSHAPE_MEMORY_MAPPED_FILE')
|
||||||
|
|
||||||
shape_inputdriver = env2.SharedLibrary('../shape', SHLIBSUFFIX='.input', source=shape_src, SHLIBPREFIX='', LIBS = libraries)
|
shape_inputdriver = plugin_env.SharedLibrary('../shape', SHLIBSUFFIX='.input', source=shape_src, SHLIBPREFIX='', LIBS = libraries, LINKFLAGS=env['CUSTOM_LDFLAGS'])
|
||||||
|
|
||||||
if 'uninstall' not in COMMAND_LINE_TARGETS:
|
if 'uninstall' not in COMMAND_LINE_TARGETS:
|
||||||
env.Install(install_prefix + '/' + env['LIBDIR_SCHEMA'] + env['LIB_DIR_NAME'] + '/input', shape_inputdriver)
|
env.Install(install_prefix + '/' + env['LIBDIR_SCHEMA'] + env['LIB_DIR_NAME'] + '/input', shape_inputdriver)
|
||||||
|
|
|
@ -24,6 +24,8 @@ Import ('env')
|
||||||
prefix = env['PREFIX']
|
prefix = env['PREFIX']
|
||||||
install_prefix = env['DESTDIR'] + '/' + prefix
|
install_prefix = env['DESTDIR'] + '/' + prefix
|
||||||
|
|
||||||
|
plugin_env = env.Clone()
|
||||||
|
|
||||||
sqlite_src = Split(
|
sqlite_src = Split(
|
||||||
"""
|
"""
|
||||||
sqlite_datasource.cpp
|
sqlite_datasource.cpp
|
||||||
|
@ -38,7 +40,7 @@ if env['PLATFORM'] == 'Darwin':
|
||||||
libraries.append('boost_system%s' % env['BOOST_APPEND'])
|
libraries.append('boost_system%s' % env['BOOST_APPEND'])
|
||||||
libraries.append('boost_filesystem%s' % env['BOOST_APPEND'])
|
libraries.append('boost_filesystem%s' % env['BOOST_APPEND'])
|
||||||
|
|
||||||
sqlite_inputdriver = env.SharedLibrary('../sqlite', source=sqlite_src, SHLIBPREFIX='', SHLIBSUFFIX='.input', LIBS=libraries)
|
sqlite_inputdriver = plugin_env.SharedLibrary('../sqlite', source=sqlite_src, SHLIBPREFIX='', SHLIBSUFFIX='.input', LIBS=libraries, LINKFLAGS=env['CUSTOM_LDFLAGS'])
|
||||||
|
|
||||||
if 'uninstall' not in COMMAND_LINE_TARGETS:
|
if 'uninstall' not in COMMAND_LINE_TARGETS:
|
||||||
env.Install(install_prefix + '/' + env['LIBDIR_SCHEMA'] + env['LIB_DIR_NAME'] + '/input', sqlite_inputdriver)
|
env.Install(install_prefix + '/' + env['LIBDIR_SCHEMA'] + env['LIB_DIR_NAME'] + '/input', sqlite_inputdriver)
|
||||||
|
|
|
@ -26,6 +26,8 @@ from subprocess import Popen, PIPE
|
||||||
|
|
||||||
Import('env')
|
Import('env')
|
||||||
|
|
||||||
|
lib_env = env.Clone()
|
||||||
|
|
||||||
def call(cmd, silent=True):
|
def call(cmd, silent=True):
|
||||||
stdin, stderr = Popen(cmd, shell=True, stdout=PIPE, stderr=PIPE).communicate()
|
stdin, stderr = Popen(cmd, shell=True, stdout=PIPE, stderr=PIPE).communicate()
|
||||||
if not stderr:
|
if not stderr:
|
||||||
|
@ -33,10 +35,11 @@ def call(cmd, silent=True):
|
||||||
elif not silent:
|
elif not silent:
|
||||||
print stderr
|
print stderr
|
||||||
|
|
||||||
|
|
||||||
def ldconfig(*args,**kwargs):
|
def ldconfig(*args,**kwargs):
|
||||||
call('ldconfig')
|
call('ldconfig')
|
||||||
|
|
||||||
|
mapnik_lib_link_flag = ''
|
||||||
|
|
||||||
ABI_VERSION = env['ABI_VERSION']
|
ABI_VERSION = env['ABI_VERSION']
|
||||||
|
|
||||||
prefix = env['PREFIX']
|
prefix = env['PREFIX']
|
||||||
|
@ -83,16 +86,16 @@ if env['PLATFORM'] == 'Darwin':
|
||||||
lib_path = '%s/%s' % (lib_dir,mapnik_libname)
|
lib_path = '%s/%s' % (lib_dir,mapnik_libname)
|
||||||
else:
|
else:
|
||||||
lib_path = mapnik_libname
|
lib_path = mapnik_libname
|
||||||
linkflags = '-Wl,-install_name,%s' % lib_path
|
mapnik_lib_link_flag += ' -Wl,-install_name,%s' % lib_path
|
||||||
_d = {'version':env['MAPNIK_VERSION_STRING']}
|
_d = {'version':env['MAPNIK_VERSION_STRING']}
|
||||||
linkflags += ' -current_version %(version)s -compatibility_version %(version)s' % _d
|
mapnik_lib_link_flag += ' -current_version %(version)s -compatibility_version %(version)s' % _d
|
||||||
elif env['PLATFORM'] == 'SunOS':
|
elif env['PLATFORM'] == 'SunOS':
|
||||||
if env['CXX'].startswith('CC'):
|
if env['CXX'].startswith('CC'):
|
||||||
linkflags = '-R. -h %s' % mapnik_libname
|
mapnik_lib_link_flag += ' -R. -h %s' % mapnik_libname
|
||||||
else:
|
else:
|
||||||
linkflags = '-Wl,-h,%s' % mapnik_libname
|
mapnik_lib_link_flag += ' -Wl,-h,%s' % mapnik_libname
|
||||||
else: # Linux and others
|
else: # Linux and others
|
||||||
linkflags = '-Wl,-rpath-link,. -Wl,-soname,%s' % mapnik_libname
|
mapnik_lib_link_flag += ' -Wl,-rpath-link,. -Wl,-soname,%s' % mapnik_libname
|
||||||
|
|
||||||
source = Split(
|
source = Split(
|
||||||
"""
|
"""
|
||||||
|
@ -171,7 +174,7 @@ if True : # agg backend
|
||||||
)
|
)
|
||||||
|
|
||||||
if env['HAS_CAIRO']:
|
if env['HAS_CAIRO']:
|
||||||
env2 = env.Clone()
|
env2 = lib_env.Clone()
|
||||||
env2.Append(CXXFLAGS = '-DHAVE_CAIRO')
|
env2.Append(CXXFLAGS = '-DHAVE_CAIRO')
|
||||||
env2.ParseConfig('pkg-config --libs --cflags cairomm-1.0')
|
env2.ParseConfig('pkg-config --libs --cflags cairomm-1.0')
|
||||||
fixup = ['cairo_renderer.cpp','graphics.cpp','image_util.cpp']
|
fixup = ['cairo_renderer.cpp','graphics.cpp','image_util.cpp']
|
||||||
|
@ -193,7 +196,7 @@ elif env['XMLPARSER'] == 'libxml2' and env['HAS_LIBXML2']:
|
||||||
"""
|
"""
|
||||||
libxml2_loader.cpp
|
libxml2_loader.cpp
|
||||||
""")
|
""")
|
||||||
env2 = env.Clone()
|
env2 = lib_env.Clone()
|
||||||
env2.Append(CXXFLAGS = '-DHAVE_LIBXML2')
|
env2.Append(CXXFLAGS = '-DHAVE_LIBXML2')
|
||||||
fixup = ['load_map.cpp','libxml2_loader.cpp']
|
fixup = ['load_map.cpp','libxml2_loader.cpp']
|
||||||
for cpp in fixup:
|
for cpp in fixup:
|
||||||
|
@ -220,9 +223,14 @@ if env['SVG_RENDERER']: # svg backend
|
||||||
svg/process_shield_symbolizer.cpp
|
svg/process_shield_symbolizer.cpp
|
||||||
svg/process_text_symbolizer.cpp
|
svg/process_text_symbolizer.cpp
|
||||||
""")
|
""")
|
||||||
env.Append(CXXFLAGS = '-DSVG_RENDERER')
|
lib_env.Append(CXXFLAGS = '-DSVG_RENDERER')
|
||||||
|
|
||||||
mapnik = env.SharedLibrary('mapnik2', source, LIBS=libraries, LINKFLAGS=linkflags)
|
if env['CUSTOM_LDFLAGS']:
|
||||||
|
linkflags = '%s %s' % (env['CUSTOM_LDFLAGS'], mapnik_lib_link_flag)
|
||||||
|
else:
|
||||||
|
linkflags = mapnik_lib_link_flag
|
||||||
|
|
||||||
|
mapnik = lib_env.SharedLibrary('mapnik2', source, LIBS=libraries, LINKFLAGS=linkflags)
|
||||||
|
|
||||||
if env['PLATFORM'] != 'Darwin':
|
if env['PLATFORM'] != 'Darwin':
|
||||||
# Symlink command, only works if both files are in same directory
|
# Symlink command, only works if both files are in same directory
|
||||||
|
|
|
@ -43,11 +43,11 @@ if env['HAS_BOOST_SYSTEM']:
|
||||||
if env['HAS_CAIRO']:
|
if env['HAS_CAIRO']:
|
||||||
private_libs += ' -lcairomm-1.0 -lcairo'
|
private_libs += ' -lcairomm-1.0 -lcairo'
|
||||||
|
|
||||||
other_libs = ''.join([' -L%s' % i for i in env['LIBPATH'] if not i.startswith('#')])
|
other_libs = env['CUSTOM_LDFLAGS'] + ''.join([' -L%s' % i for i in env['LIBPATH'] if not i.startswith('#')])
|
||||||
other_libs += private_libs
|
other_libs += private_libs
|
||||||
|
|
||||||
# todo - refine this list
|
# todo - refine this list
|
||||||
other_includes = ''.join([' -I%s' % i for i in env['CPPPATH'] if not i.startswith('#')])
|
other_includes = env['CUSTOM_CXXFLAGS'] + ''.join([' -I%s' % i for i in env['CPPPATH'] if not i.startswith('#')])
|
||||||
|
|
||||||
top = '''#!/bin/sh
|
top = '''#!/bin/sh
|
||||||
|
|
||||||
|
|
|
@ -26,6 +26,8 @@ Import ('env')
|
||||||
prefix = env['PREFIX']
|
prefix = env['PREFIX']
|
||||||
install_prefix = env['DESTDIR'] + '/' + prefix
|
install_prefix = env['DESTDIR'] + '/' + prefix
|
||||||
|
|
||||||
|
program_env = env.Clone()
|
||||||
|
|
||||||
source = Split(
|
source = Split(
|
||||||
"""
|
"""
|
||||||
ogrindex.cpp
|
ogrindex.cpp
|
||||||
|
@ -48,7 +50,7 @@ if env['PLATFORM'] == 'Darwin':
|
||||||
libraries.append(env['ICU_LIB_NAME'])
|
libraries.append(env['ICU_LIB_NAME'])
|
||||||
|
|
||||||
|
|
||||||
ogrindex = env.Program('ogrindex', source, CPPPATH=headers, LIBS=libraries)
|
ogrindex = program_env.Program('ogrindex', source, CPPPATH=headers, LIBS=libraries, LINKFLAGS=env['CUSTOM_LDFLAGS'])
|
||||||
|
|
||||||
if 'uninstall' not in COMMAND_LINE_TARGETS:
|
if 'uninstall' not in COMMAND_LINE_TARGETS:
|
||||||
env.Install(install_prefix + '/bin', ogrindex)
|
env.Install(install_prefix + '/bin', ogrindex)
|
||||||
|
|
|
@ -24,6 +24,8 @@ Import ('env')
|
||||||
prefix = env['PREFIX']
|
prefix = env['PREFIX']
|
||||||
install_prefix = env['DESTDIR'] + '/' + prefix
|
install_prefix = env['DESTDIR'] + '/' + prefix
|
||||||
|
|
||||||
|
program_env = env.Clone()
|
||||||
|
|
||||||
source = Split(
|
source = Split(
|
||||||
"""
|
"""
|
||||||
main.cpp
|
main.cpp
|
||||||
|
@ -42,7 +44,7 @@ if env['PLATFORM'] == 'Darwin':
|
||||||
libraries.append(env['ICU_LIB_NAME'])
|
libraries.append(env['ICU_LIB_NAME'])
|
||||||
|
|
||||||
if 'uninstall' not in COMMAND_LINE_TARGETS:
|
if 'uninstall' not in COMMAND_LINE_TARGETS:
|
||||||
pgsql2sqlite = env.Program('pgsql2sqlite', source, CPPPATH=headers, LIBS=libraries)
|
pgsql2sqlite = program_env.Program('pgsql2sqlite', source, CPPPATH=headers, LIBS=libraries, LINKFLAGS=env['CUSTOM_LDFLAGS'])
|
||||||
env.Install(install_prefix + '/bin', pgsql2sqlite)
|
env.Install(install_prefix + '/bin', pgsql2sqlite)
|
||||||
env.Alias('install', install_prefix + '/bin')
|
env.Alias('install', install_prefix + '/bin')
|
||||||
|
|
||||||
|
|
|
@ -26,6 +26,8 @@ Import ('env')
|
||||||
prefix = env['PREFIX']
|
prefix = env['PREFIX']
|
||||||
install_prefix = env['DESTDIR'] + '/' + prefix
|
install_prefix = env['DESTDIR'] + '/' + prefix
|
||||||
|
|
||||||
|
program_env = env.Clone()
|
||||||
|
|
||||||
source = Split(
|
source = Split(
|
||||||
"""
|
"""
|
||||||
shapeindex.cpp
|
shapeindex.cpp
|
||||||
|
@ -47,7 +49,7 @@ if env['HAS_BOOST_SYSTEM']:
|
||||||
libraries.append(boost_system)
|
libraries.append(boost_system)
|
||||||
|
|
||||||
|
|
||||||
shapeindex = env.Program('shapeindex', source, CPPPATH=headers, LIBS=libraries)
|
shapeindex = program_env.Program('shapeindex', source, CPPPATH=headers, LIBS=libraries, LINKFLAGS=env['CUSTOM_LDFLAGS'])
|
||||||
|
|
||||||
if 'uninstall' not in COMMAND_LINE_TARGETS:
|
if 'uninstall' not in COMMAND_LINE_TARGETS:
|
||||||
env.Install(install_prefix + '/bin', shapeindex)
|
env.Install(install_prefix + '/bin', shapeindex)
|
||||||
|
|
Loading…
Reference in a new issue