From 52ffd46b4aa8dab5f4f3b65dc4ec2eacdf7c6309 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Remko=20Tron=C3=A7on?= <git@el-tramo.be>
Date: Thu, 22 Apr 2010 21:44:46 +0200
Subject: Use installed LibIDN if available.


diff --git a/3rdParty/LibIDN/SConscript b/3rdParty/LibIDN/SConscript
index 138db74..eafb2b1 100644
--- a/3rdParty/LibIDN/SConscript
+++ b/3rdParty/LibIDN/SConscript
@@ -1,56 +1,58 @@
 Import(["env", "conf_env"])
 
+if env.get("LIBIDN_BUNDLED", False) :
+
 ################################################################################
 # Module flags
 ################################################################################
 
-if env["SCONS_STAGE"] == "flags" :
-	env["LIBIDN_FLAGS"] = {
-			"CPPDEFINES": ["IDNA_STATIC"],
-			"CPPPATH": [Dir("src")],
-			"LIBPATH": [Dir(".")],
-			"LIBS": ["IDN"],
-		}
-	if env["PLATFORM"] == "win32" :
-		env["LIBIDN_FLAGS"]["CPPPATH"] += [Dir("stubs/win32")]
+	if env["SCONS_STAGE"] == "flags" :
+		env["LIBIDN_FLAGS"] = {
+				"CPPDEFINES": ["IDNA_STATIC"],
+				"CPPPATH": [Dir("src")],
+				"LIBPATH": [Dir(".")],
+				"LIBS": ["IDN"],
+			}
+		if env["PLATFORM"] == "win32" :
+			env["LIBIDN_FLAGS"]["CPPPATH"] += [Dir("stubs/win32")]
 
 ################################################################################
 # Build
 ################################################################################
 
-if env["SCONS_STAGE"] == "build" :
-	myenv = env.Clone()
-
-# Remove warn flags
-	myenv.Replace(CCFLAGS = [flag for flag in env["CCFLAGS"] if flag not in ["-W", "-Wall"]])
-
-# Check for strcasecmp() or replacement
-	conf = Configure(conf_env)
-	if not conf.CheckFunc('strcasecmp') :
-		if conf.CheckFunc("stricmp") :
-			myenv.Append(CPPDEFINES = [("strcasecmp", "stricmp")])
-		else :
-			print "Error: Cannot find strcasecmp() or stricmp()"
-			Exit(1)
-	if not conf.CheckFunc('strncasecmp') :
-		if conf.CheckFunc("strnicmp") :
-			myenv.Append(CPPDEFINES = [("strncasecmp", "strnicmp")])
-		else :
-			print "Error: Cannot find strncasecmp() or strnicmp()"
-			Exit(1)
-	conf.Finish()
-
-	myenv.Append(CPPDEFINES = "IDNA_STATIC")
-	myenv.Append(CPPPATH = ["src", "stubs"])
-	if myenv["PLATFORM"] == "win32" :
-		myenv.Append(CPPPATH = "stubs/win32")
-
-	myenv.StaticLibrary("IDN", [
-			"src/stringprep.c",
-			"src/profiles.c",
-			"src/rfc3454.c",
-			"src/punycode.c",
-			"src/idna.c",
-			"src/toutf8.c",
-			"src/nfkc.c"
-		])
+	if env["SCONS_STAGE"] == "build" :
+		myenv = env.Clone()
+
+		# Remove warn flags
+		myenv.Replace(CCFLAGS = [flag for flag in env["CCFLAGS"] if flag not in ["-W", "-Wall"]])
+
+		# Check for strcasecmp() or replacement
+		conf = Configure(conf_env)
+		if not conf.CheckFunc('strcasecmp') :
+			if conf.CheckFunc("stricmp") :
+				myenv.Append(CPPDEFINES = [("strcasecmp", "stricmp")])
+			else :
+				print "Error: Cannot find strcasecmp() or stricmp()"
+				Exit(1)
+		if not conf.CheckFunc('strncasecmp') :
+			if conf.CheckFunc("strnicmp") :
+				myenv.Append(CPPDEFINES = [("strncasecmp", "strnicmp")])
+			else :
+				print "Error: Cannot find strncasecmp() or strnicmp()"
+				Exit(1)
+		conf.Finish()
+
+		myenv.Append(CPPDEFINES = "IDNA_STATIC")
+		myenv.Append(CPPPATH = ["src", "stubs"])
+		if myenv["PLATFORM"] == "win32" :
+			myenv.Append(CPPPATH = "stubs/win32")
+
+		myenv.StaticLibrary("IDN", [
+				"src/stringprep.c",
+				"src/profiles.c",
+				"src/rfc3454.c",
+				"src/punycode.c",
+				"src/idna.c",
+				"src/toutf8.c",
+				"src/nfkc.c"
+			])
diff --git a/BuildTools/SCons/SConstruct b/BuildTools/SCons/SConstruct
index ee42e57..0cfa211 100644
--- a/BuildTools/SCons/SConstruct
+++ b/BuildTools/SCons/SConstruct
@@ -250,6 +250,13 @@ if conf.CheckCHeader("expat.h") and conf.CheckLib("expat") :
 	env["HAVE_EXPAT"] = 1
 	env["EXPAT_FLAGS"] = { "LIBS": ["expat"] }
 
+# LibIDN
+if conf.CheckCHeader("idna.h") and conf.CheckLib("idn") :
+	env["LIBIDN_FLAGS"] = { "LIBS": ["idn"] }
+else :
+	env["LIBIDN_BUNDLED"] = 1
+
+
 conf.Finish()
 
 # Xss
-- 
cgit v0.10.2-6-g49f6