summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '3rdParty/LibIDN/SConscript')
-rw-r--r--3rdParty/LibIDN/SConscript55
1 files changed, 55 insertions, 0 deletions
diff --git a/3rdParty/LibIDN/SConscript b/3rdParty/LibIDN/SConscript
new file mode 100644
index 0000000..fad1eba
--- /dev/null
+++ b/3rdParty/LibIDN/SConscript
@@ -0,0 +1,55 @@
+Import(["env", "conf_env"])
+
+################################################################################
+# Module flags
+################################################################################
+
+if env["SCONS_STAGE"] == "flags" :
+ env["LIBIDN_FLAGS"] = {
+ "CPPDEFINES": ["IDNA_STATIC"],
+ "CPPPATH": [Dir("src")],
+ "LIBPATH": [Dir(".")],
+ "LIBS": ["IDN"],
+ }
+
+################################################################################
+# 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")
+ env["LIBIDN_FLAGS"]["CPPPATH"] += [Dir("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"
+ ])