summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemko Tronçon <git@el-tramo.be>2010-06-02 20:04:42 (GMT)
committerRemko Tronçon <git@el-tramo.be>2010-06-02 20:06:29 (GMT)
commitca39e52da0bf9027ab660fd31d1285b1c1d55659 (patch)
treeebbcf7dc2a2c063b9070a779f629ddefd21043bc
parent60a1dfe187dbe11e61e7f867e4c04454a9d3a5e6 (diff)
downloadswift-ca39e52da0bf9027ab660fd31d1285b1c1d55659.zip
swift-ca39e52da0bf9027ab660fd31d1285b1c1d55659.tar.bz2
Add workaround for distros that don't have boost UUID.
Cherry pick UUID out of 3rdParty, and use this as an include path. Since UUID is a header-only lib, this shouldn't pose problems.
-rw-r--r--3rdParty/Boost/.gitignore1
-rw-r--r--3rdParty/Boost/SConscript11
-rw-r--r--BuildTools/SCons/SConstruct3
3 files changed, 14 insertions, 1 deletions
diff --git a/3rdParty/Boost/.gitignore b/3rdParty/Boost/.gitignore
index faa799d..f86949c 100644
--- a/3rdParty/Boost/.gitignore
+++ b/3rdParty/Boost/.gitignore
@@ -7,3 +7,4 @@
*.ilk
*.manifest
/bcp
+uuid
diff --git a/3rdParty/Boost/SConscript b/3rdParty/Boost/SConscript
index a7019e1..49e66e5 100644
--- a/3rdParty/Boost/SConscript
+++ b/3rdParty/Boost/SConscript
@@ -1,6 +1,15 @@
Import("env")
-if env.get("BOOST_BUNDLED", False) :
+# FIXME: Remove this when Boost UUID is present on most distros
+if env.get("BOOST_BUNDLED_UUID_ONLY", False) :
+ # Cherry pick UUID out of the 3rdParty dir, install it in a separate
+ # dir, and use this as an include path.
+ if env["SCONS_STAGE"] == "flags" :
+ env["BOOST_FLAGS"]["CPPFLAGS"] = env["BOOST_FLAGS"].get("CPPFLAGS", []) + ["-I" + env.Dir("uuid").abspath]
+ elif env["SCONS_STAGE"] == "build" :
+ env.Install("uuid/boost", "src/boost/uuid")
+
+elif env.get("BOOST_BUNDLED", False) :
################################################################################
# Common
diff --git a/BuildTools/SCons/SConstruct b/BuildTools/SCons/SConstruct
index 9e79c4c..67d60de 100644
--- a/BuildTools/SCons/SConstruct
+++ b/BuildTools/SCons/SConstruct
@@ -281,6 +281,9 @@ for (lib, header) in boostLibs :
break
if allLibsPresent :
env["BOOST_FLAGS"] = { "LIBS": ["boost_" + lib for lib, header in boostLibs] }
+ if not conf.CheckCXXHeader("boost/uuid/uuid.hpp") :
+ # FIXME: Remove this workaround when UUID is available in most distros
+ env["BOOST_BUNDLED_UUID_ONLY"] = True
else :
env["BOOST_BUNDLED"] = True