scons: fixes for bypassing configure checks when HOST is provided (iOS build)

This commit is contained in:
Dane Springmeyer 2013-06-14 11:40:45 -07:00
parent 98d21de168
commit 2505001af1

View file

@ -448,7 +448,8 @@ pickle_store = [# Scons internal variables
'SVG_RENDERER', 'SVG_RENDERER',
'SQLITE_LINKFLAGS', 'SQLITE_LINKFLAGS',
'BOOST_LIB_VERSION_FROM_HEADER', 'BOOST_LIB_VERSION_FROM_HEADER',
'BIGINT' 'BIGINT',
'HOST'
] ]
# Add all other user configurable options to pickle pickle_store # Add all other user configurable options to pickle pickle_store
@ -1259,6 +1260,7 @@ if not preconfigured:
has_boost_devel = False has_boost_devel = False
if has_boost_devel: if has_boost_devel:
if not env['HOST']:
env['BOOST_LIB_VERSION_FROM_HEADER'] = conf.GetBoostLibVersion() env['BOOST_LIB_VERSION_FROM_HEADER'] = conf.GetBoostLibVersion()
# The other required boost headers. # The other required boost headers.
@ -1303,7 +1305,7 @@ if not preconfigured:
color_print(4,'Could not find optional header or shared library for boost %s' % libinfo[0]) color_print(4,'Could not find optional header or shared library for boost %s' % libinfo[0])
env['SKIPPED_DEPS'].append('boost ' + libinfo[0]) env['SKIPPED_DEPS'].append('boost ' + libinfo[0])
if env['ICU_LIB_NAME'] not in env['MISSING_DEPS']: if not env['HOST'] and env['ICU_LIB_NAME'] not in env['MISSING_DEPS']:
# http://lists.boost.org/Archives/boost/2009/03/150076.php # http://lists.boost.org/Archives/boost/2009/03/150076.php
# we need libicui18n if using static boost libraries, so it is # we need libicui18n if using static boost libraries, so it is
# important to try this check with the library linked # important to try this check with the library linked
@ -1317,9 +1319,18 @@ if not preconfigured:
env['REQUESTED_PLUGINS'] = [ driver.strip() for driver in Split(env['INPUT_PLUGINS'])] env['REQUESTED_PLUGINS'] = [ driver.strip() for driver in Split(env['INPUT_PLUGINS'])]
SQLITE_HAS_RTREE = None SQLITE_HAS_RTREE = None
if env['HOST']:
SQLITE_HAS_RTREE = True
CHECK_PKG_CONFIG = conf.CheckPKGConfig('0.15.0') CHECK_PKG_CONFIG = conf.CheckPKGConfig('0.15.0')
if len(env['REQUESTED_PLUGINS']): if len(env['REQUESTED_PLUGINS']):
if env['HOST']:
for plugin in env['REQUESTED_PLUGINS']:
details = env['PLUGINS'][plugin]
if details['lib']:
env.AppendUnique(LIBS=details['lib'])
else:
color_print(4,'Checking for requested plugins dependencies...') color_print(4,'Checking for requested plugins dependencies...')
for plugin in env['REQUESTED_PLUGINS']: for plugin in env['REQUESTED_PLUGINS']:
details = env['PLUGINS'][plugin] details = env['PLUGINS'][plugin]
@ -1353,7 +1364,6 @@ if not preconfigured:
if plugin == 'sqlite': if plugin == 'sqlite':
SQLITE_HAS_RTREE = conf.sqlite_has_rtree() SQLITE_HAS_RTREE = conf.sqlite_has_rtree()
sqlite_backup = env.Clone().Dictionary() sqlite_backup = env.Clone().Dictionary()
# if statically linking, on linux we likely # if statically linking, on linux we likely
# need to link sqlite to pthreads and dl # need to link sqlite to pthreads and dl
if env['RUNTIME_LINK'] == 'static': if env['RUNTIME_LINK'] == 'static':
@ -1367,7 +1377,6 @@ if not preconfigured:
env.Append(LIBS=lib) env.Append(LIBS=lib)
except OSError,e: except OSError,e:
pass pass
if SQLITE_HAS_RTREE is None: if SQLITE_HAS_RTREE is None:
SQLITE_HAS_RTREE = conf.sqlite_has_rtree() SQLITE_HAS_RTREE = conf.sqlite_has_rtree()
if not SQLITE_HAS_RTREE: if not SQLITE_HAS_RTREE:
@ -1377,7 +1386,6 @@ if not preconfigured:
env['SKIPPED_DEPS'].append('sqlite_rtree') env['SKIPPED_DEPS'].append('sqlite_rtree')
else: else:
env.Replace(**sqlite_backup) env.Replace(**sqlite_backup)
elif details['lib'] and details['inc']: elif details['lib'] and details['inc']:
if not conf.CheckLibWithHeader(details['lib'], details['inc'], details['lang']): if not conf.CheckLibWithHeader(details['lib'], details['inc'], details['lang']):
env['SKIPPED_DEPS'].append(details['lib']) env['SKIPPED_DEPS'].append(details['lib'])
@ -1388,6 +1396,7 @@ if not preconfigured:
env.PrependUnique(CPPPATH = '#', delete_existing=True) env.PrependUnique(CPPPATH = '#', delete_existing=True)
env.PrependUnique(LIBPATH = '#src', delete_existing=True) env.PrependUnique(LIBPATH = '#src', delete_existing=True)
if not env['HOST']:
if env['PGSQL2SQLITE']: if env['PGSQL2SQLITE']:
if 'sqlite3' not in env['LIBS']: if 'sqlite3' not in env['LIBS']:
env.AppendUnique(LIBS='sqlite3') env.AppendUnique(LIBS='sqlite3')
@ -1591,9 +1600,12 @@ if not preconfigured:
# fetch the mapnik version header in order to set the # fetch the mapnik version header in order to set the
# ABI version used to build libmapnik.so on linux in src/build.py # ABI version used to build libmapnik.so on linux in src/build.py
abi = conf.GetMapnikLibVersion() abi = None
abi_fallback = "3.0.0-pre" abi_fallback = "3.0.0-pre"
if not env['HOST']:
abi = conf.GetMapnikLibVersion()
if not abi: if not abi:
if not env['HOST']:
color_print(1,'Problem encountered parsing mapnik version, falling back to %s' % abi_fallback) color_print(1,'Problem encountered parsing mapnik version, falling back to %s' % abi_fallback)
abi = abi_fallback abi = abi_fallback
@ -1818,7 +1830,7 @@ if not HELP_REQUESTED:
if env['PLUGIN_LINKING'] == 'static' or plugin not in env['REQUESTED_PLUGINS']: if env['PLUGIN_LINKING'] == 'static' or plugin not in env['REQUESTED_PLUGINS']:
if os.path.exists('plugins/input/%s.input' % plugin): if os.path.exists('plugins/input/%s.input' % plugin):
os.unlink('plugins/input/%s.input' % plugin) os.unlink('plugins/input/%s.input' % plugin)
if plugin in env['REQUESTED_PLUGINS']: elif plugin in env['REQUESTED_PLUGINS']:
details = env['PLUGINS'][plugin] details = env['PLUGINS'][plugin]
if details['lib'] in env['LIBS']: if details['lib'] in env['LIBS']:
if env['PLUGIN_LINKING'] == 'shared': if env['PLUGIN_LINKING'] == 'shared':
@ -1858,21 +1870,20 @@ if not HELP_REQUESTED:
os.unlink(plugin_path) os.unlink(plugin_path)
# Build the c++ rundemo app if requested # Build the c++ rundemo app if requested
if not env['HOST']:
if env['DEMO']: if env['DEMO']:
SConscript('demo/c++/build.py') SConscript('demo/c++/build.py')
# Build shapeindex and remove its dependency from the LIBS # Build shapeindex and remove its dependency from the LIBS
if not env['HOST']:
if 'boost_program_options%s' % env['BOOST_APPEND'] in env['LIBS']: if 'boost_program_options%s' % env['BOOST_APPEND'] in env['LIBS']:
if env['SHAPEINDEX']: if env['SHAPEINDEX']:
SConscript('utils/shapeindex/build.py') SConscript('utils/shapeindex/build.py')
# Build the pgsql2psqlite app if requested # Build the pgsql2psqlite app if requested
if env['PGSQL2SQLITE']: if env['PGSQL2SQLITE']:
SConscript('utils/pgsql2sqlite/build.py') SConscript('utils/pgsql2sqlite/build.py')
if env['SVG2PNG']: if env['SVG2PNG']:
SConscript('utils/svg2png/build.py') SConscript('utils/svg2png/build.py')
# devtools not ready for public # devtools not ready for public
#SConscript('utils/ogrindex/build.py') #SConscript('utils/ogrindex/build.py')
env['LIBS'].remove('boost_program_options%s' % env['BOOST_APPEND']) env['LIBS'].remove('boost_program_options%s' % env['BOOST_APPEND'])