From 096fcefae9dddd1526f5b6e99a6ae44bc728211d Mon Sep 17 00:00:00 2001 From: Nicholas Dudfield Date: Wed, 28 May 2014 10:08:40 +0700 Subject: [PATCH] Fix clang/travis, prefer static libs when BOOST_ROOT is set. --- .travis.yml | 5 +++++ SConstruct | 18 ++++++++++++++---- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 6e37aa535a..d6b58e8e0b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,6 +12,11 @@ before_install: - sudo apt-get install -qq libboost1.55-all-dev # We want debug symbols for boost as we install gdb later - sudo apt-get install -qq libboost1.55-dbg + - | # Setup the BOOST_ROOT + export BOOST_ROOT=$HOME/boost_root + mkdir -p $BOOST_ROOT/stage + ln -s /usr/lib/x86_64-linux-gnu $BOOST_ROOT/stage/lib + ln -s /usr/include/boost $BOOST_ROOT/boost - sudo apt-get install -qq mlocate - sudo updatedb - sudo locate libboost | grep /lib | grep -e ".a$" diff --git a/SConstruct b/SConstruct index ea1aee0390..dc7bbe2c47 100644 --- a/SConstruct +++ b/SConstruct @@ -199,6 +199,7 @@ def config_base(env): env.Append(LIBPATH=[ os.path.join(BOOST_ROOT, 'stage', 'lib'), ]) + env['BOOST_ROOT'] = BOOST_ROOT except KeyError: pass @@ -262,15 +263,24 @@ def config_env(toolchain, variant, env): '-Wno-unused-but-set-variable' ]) - env.Append(LIBS=[ + boost_libs = [ 'boost_date_time', 'boost_filesystem', 'boost_program_options', 'boost_regex', 'boost_system', - 'boost_thread', - 'dl', - ]) + 'boost_thread' + ] + # We prefer static libraries for boost + if env.get('BOOST_ROOT'): + static_libs = ['%s/stage/lib/lib%s.a' % (env['BOOST_ROOT'], l) for + l in boost_libs] + if all(os.path.exists(f) for f in static_libs): + boost_libs = [File(f) for f in static_libs] + + env.Append(LIBS=boost_libs) + env.Append(LIBS=['dl']) + if Beast.system.osx: env.Append(LIBS=[ 'crypto',