From ca39e52da0bf9027ab660fd31d1285b1c1d55659 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Remko=20Tron=C3=A7on?= <git@el-tramo.be>
Date: Wed, 2 Jun 2010 22:04:42 +0200
Subject: 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.

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
 
-- 
cgit v0.10.2-6-g49f6