From aee29b27ed954e063b505d86acfbfce3ad9ac11a Mon Sep 17 00:00:00 2001 From: Dane Springmeyer Date: Fri, 17 Aug 2012 08:57:49 -0700 Subject: [PATCH] only build geojson plugin if >= boost 1.47 is available to avoid potential compiler errors with missing boost/geometry headers if people try to force older boost versions --- plugins/input/geojson/build.py | 53 +++++++++++++++++++--------------- 1 file changed, 30 insertions(+), 23 deletions(-) diff --git a/plugins/input/geojson/build.py b/plugins/input/geojson/build.py index 8bda87f45..f463862a1 100644 --- a/plugins/input/geojson/build.py +++ b/plugins/input/geojson/build.py @@ -19,33 +19,40 @@ # -Import ('plugin_base') Import ('env') -prefix = env['PREFIX'] +can_build = False -plugin_env = plugin_base.Clone() +if env.get('BOOST_LIB_VERSION_FROM_HEADER'): + boost_version_from_header = int(env['BOOST_LIB_VERSION_FROM_HEADER'].split('_')[1]) + if boost_version_from_header >= 47: + can_build = True -geojson_src = Split( - """ - geojson_datasource.cpp - geojson_featureset.cpp - """ - ) +if not can_build: + print 'WARNING: skipping building the optional geojson datasource plugin which requires boost >= 1.47' +else: + Import ('plugin_base') + prefix = env['PREFIX'] + plugin_env = plugin_base.Clone() + geojson_src = Split( + """ + geojson_datasource.cpp + geojson_featureset.cpp + """ + ) + libraries = [] + # Link Library to Dependencies + libraries.append('mapnik') + libraries.append(env['ICU_LIB_NAME']) + libraries.append('boost_system%s' % env['BOOST_APPEND']) + if env['THREADING'] == 'multi': + libraries.append('boost_thread%s' % env['BOOST_APPEND']) -libraries = [] -# Link Library to Dependencies -libraries.append('mapnik') -libraries.append(env['ICU_LIB_NAME']) -libraries.append('boost_system%s' % env['BOOST_APPEND']) -if env['THREADING'] == 'multi': - libraries.append('boost_thread%s' % env['BOOST_APPEND']) + input_plugin = plugin_env.SharedLibrary('../geojson', source=geojson_src, SHLIBPREFIX='', SHLIBSUFFIX='.input', LIBS=libraries, LINKFLAGS=env['CUSTOM_LDFLAGS']) -input_plugin = plugin_env.SharedLibrary('../geojson', source=geojson_src, SHLIBPREFIX='', SHLIBSUFFIX='.input', LIBS=libraries, LINKFLAGS=env['CUSTOM_LDFLAGS']) + # if the plugin links to libmapnik ensure it is built first + Depends(input_plugin, env.subst('../../../src/%s' % env['MAPNIK_LIB_NAME'])) -# if the plugin links to libmapnik ensure it is built first -Depends(input_plugin, env.subst('../../../src/%s' % env['MAPNIK_LIB_NAME'])) - -if 'uninstall' not in COMMAND_LINE_TARGETS: - env.Install(env['MAPNIK_INPUT_PLUGINS_DEST'], input_plugin) - env.Alias('install', env['MAPNIK_INPUT_PLUGINS_DEST']) + if 'uninstall' not in COMMAND_LINE_TARGETS: + env.Install(env['MAPNIK_INPUT_PLUGINS_DEST'], input_plugin) + env.Alias('install', env['MAPNIK_INPUT_PLUGINS_DEST'])