diff options
Diffstat (limited to 'BuildTools/SCons/SConstruct')
| -rw-r--r-- | BuildTools/SCons/SConstruct | 74 | 
1 files changed, 68 insertions, 6 deletions
| diff --git a/BuildTools/SCons/SConstruct b/BuildTools/SCons/SConstruct index bc7781b..2d9d200 100644 --- a/BuildTools/SCons/SConstruct +++ b/BuildTools/SCons/SConstruct @@ -42,6 +42,9 @@ vars.Add("expat_libname", "Expat library name", "libexpat" if os.name == "nt" el  vars.Add(PathVariable("libidn_includedir", "LibIDN headers location", None, PathVariable.PathAccept))  vars.Add(PathVariable("libidn_libdir", "LibIDN library location", None, PathVariable.PathAccept))  vars.Add("libidn_libname", "LibIDN library name", "libidn" if os.name == "nt" else "idn") +vars.Add(PathVariable("sqlite_includedir", "SQLite headers location", None, PathVariable.PathAccept)) +vars.Add(PathVariable("sqlite_libdir", "SQLite library location", None, PathVariable.PathAccept)) +vars.Add("sqlite_libname", "SQLite library name", "libsqlite3" if os.name == "nt" else "sqlite3")  vars.Add(PathVariable("avahi_includedir", "Avahi headers location", None, PathVariable.PathAccept))  vars.Add(PathVariable("avahi_libdir", "Avahi library location", None, PathVariable.PathAccept))  vars.Add(PathVariable("qt", "Qt location", "", PathVariable.PathAccept)) @@ -178,7 +181,14 @@ else :  		env.Append(CXXFLAGS = ["-Werror"])  	gccVersion = env["CCVERSION"].split(".")  	if gccVersion >= ["4", "5", "0"] : -		env.Append(CCFLAGS = ["-Wlogical-op"]) +		env.Append(CXXFLAGS = ["-Wlogical-op"]) +	if "clang" in env["CC"] : +		env.Append(CXXFLAGS = ["-W#warnings", "-W-Wc++0x-compat", "-Wc++0x-compat", "-Waddress-of-temporary", "-Wambiguous-member-template", "-Warray-bounds", "-Watomic-properties", "-Wbind-to-temporary-copy", "-Wbuiltin-macro-redefined", "-Wc++-compat", "-Wc++0x-extensions", "-Wcomments", "-Wconditional-uninitialized", "-Wconstant-logical-operand", "-Wdeclaration-after-statement", "-Wdeprecated", "-Wdeprecated-implementations", "-Wdeprecated-writable-strings", "-Wduplicate-method-arg", "-Wempty-body", "-Wendif-labels", "-Wenum-compare", "-Wformat=2", "-Wfour-char-constants", "-Wgnu", "-Wincomplete-implementation", "-Winvalid-noreturn", "-Winvalid-offsetof", "-Winvalid-token-paste", "-Wlocal-type-template-args", "-Wmethod-signatures", "-Wmicrosoft", "-Wmissing-declarations", "-Wnon-pod-varargs", "-Wnonfragile-abi2", "-Wnull-dereference", "-Wout-of-line-declaration", "-Woverlength-strings", "-Wpacked", "-Wpointer-arith", "-Wpointer-sign", "-Wprotocol", "-Wreadonly-setter-attrs", "-Wselector", "-Wshift-overflow", "-Wshift-sign-overflow", "-Wstrict-selector-match", "-Wsuper-class-method-mismatch", "-Wtautological-compare", "-Wtypedef-redefinition", "-Wundeclared-selector", "-Wunknown-attributes", "-Wunknown-warning-option", "-Wunnamed-type-template-args", "-Wunused-exception-parameter", "-Wunused-member-function", "-Wused-but-marked-unused", "-Wvariadic-macros"]) +# To enable:  +# "-Wheader-hygiene" +#	"-Wnon-gcc", +# "-Wweak-vtables", +# "-Wlarge-by-value-copy",  if env.get("coverage", 0) :  	assert(env["PLATFORM"] != "win32") @@ -186,7 +196,7 @@ if env.get("coverage", 0) :  	env.Append(LINKFLAGS = ["-fprofile-arcs", "-ftest-coverage"])  if env["PLATFORM"] == "win32" : -	env.Append(LIBS = ["user32", "crypt32", "dnsapi", "ws2_32", "wsock32"]) +	env.Append(LIBS = ["user32", "crypt32", "dnsapi", "ws2_32", "wsock32", "Advapi32"])  	env.Append(CCFLAGS = ["/EHsc", "/nologo"])  	# FIXME: We should find a decent solution for MSVS 10  	if int(env["MSVS_VERSION"].split(".")[0]) < 10 : @@ -194,7 +204,7 @@ if env["PLATFORM"] == "win32" :  		env["SHLINKCOM"] = [env["SHLINKCOM"], 'mt.exe -nologo -manifest ${TARGET}.manifest -outputresource:$TARGET;2']  if env["PLATFORM"] == "darwin" and not env["target"] in ["iphone-device", "iphone-simulator", "xcode"] : -	env.Append(FRAMEWORKS = ["IOKit", "AppKit"]) +	env.Append(FRAMEWORKS = ["IOKit", "AppKit", "SystemConfiguration"])  # Testing  env["TEST_TYPE"] = env["test"] @@ -205,6 +215,7 @@ env["TEST"] = (env["TEST_TYPE"] != "none") or env.GetOption("clean")  if env.get("valgrind", 0) :  	env["TEST_RUNNER"] = "valgrind --suppressions=QA/valgrind.supp -q --leak-check=full --track-origins=yes "  env["TEST_IGNORE_RESULT"] = "ignore_test_result" in ARGUMENTS +env["TEST_CREATE_LIBRARIES"] = "create_test_libraries" in ARGUMENTS  # Packaging  env["DIST"] = "dist" in ARGUMENTS or env.GetOption("clean") @@ -231,12 +242,12 @@ if target in ["iphone-device", "iphone-simulator", "xcode"] :  		# Hard code values  		env["XCODE_PLATFORM_DEVELOPER_BIN_DIR"] = "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin"  		if target == "iphone-device": -			env["XCODE_ARCH_FLAGS"] = ["-arch", "armv6"] +			env["XCODE_ARCH_FLAGS"] = ["-arch", "armv6", "-arch", "armv7"]  			sdkPart = "iPhoneOS"  		else :  			env["XCODE_ARCH_FLAGS"] = ["-arch", "i386"]  			sdkPart = "iPhoneSimulator" -		sdkVer = "4.0" +		sdkVer = "4.3"  		env["XCODE_SDKROOT"] = "/Developer/Platforms/" + sdkPart + ".platform/Developer/SDKs/" + sdkPart + sdkVer + ".sdk"  	# Set the build flags @@ -244,7 +255,7 @@ if target in ["iphone-device", "iphone-simulator", "xcode"] :  	env["CXX"] = "$XCODE_PLATFORM_DEVELOPER_BIN_DIR/g++"  	env["OBJCCFLAGS"] = ["-fobjc-abi-version=2", "-fobjc-legacy-dispatch"]  	env["LD"] = env["CC"] -	env.Append(CCFLAGS = env["XCODE_ARCH_FLAGS"]) +	env.Append(CCFLAGS = env["XCODE_ARCH_FLAGS"] + ["-fvisibility=hidden"])  	env.Append(LINKFLAGS = env["XCODE_ARCH_FLAGS"])  	env.Append(CPPFLAGS = ["-isysroot", "$XCODE_SDKROOT"])  	env.Append(FRAMEWORKS = ["CoreFoundation", "Foundation", "UIKit", "CoreGraphics"]) @@ -320,6 +331,12 @@ def checkObjCHeader(context, header) :  if ARGUMENTS.get("force-configure", 0) :    SCons.SConf.SetCacheMode("force") +def CheckPKG(context, name): +	context.Message( 'Checking for package %s... ' % name ) +	ret = context.TryAction('pkg-config --exists \'%s\'' % name)[0] +	context.Result( ret ) +	return ret +  conf = Configure(conf_env)  if not conf.CheckCXX() or not conf.CheckCC() : @@ -414,6 +431,31 @@ if env["PLATFORM"] != "win32" and env["PLATFORM"] != "darwin" :  		env["XSS_FLAGS"] = xss_flags  	conf.Finish() +# GConf +env["HAVE_GCONF"] = 0 +if env["PLATFORM"] != "win32" and env["PLATFORM"] != "darwin" : +	gconf_env = conf_env.Clone() +	conf = Configure(gconf_env, custom_tests = {"CheckPKG": CheckPKG}) +	if conf.CheckPKG("gconf-2.0") : +		gconf_bare_env = Environment() +		gconf_bare_env.ParseConfig('pkg-config --cflags gconf-2.0 --libs gconf-2.0') +		gconf_flags = { +				"LIBS": gconf_bare_env["LIBS"], +				"CCFLAGS": gconf_bare_env["CCFLAGS"], +				"CPPPATH": gconf_bare_env["CPPPATH"], +				"CPPDEFINES": gconf_bare_env["CPPDEFINES"], +			} +		gconf_env.MergeFlags(gconf_flags) +		if conf.CheckCHeader("gconf/gconf-client.h") and conf.CheckLib("gconf-2") : +			env["HAVE_GCONF"] = 1 +			env["GCONF_FLAGS"] = { +				"LIBS": gconf_env["LIBS"], +				"CCFLAGS": gconf_env["CCFLAGS"], +				"CPPPATH": gconf_env["CPPPATH"], +				"CPPDEFINES": gconf_env["CPPDEFINES"], +			} +	conf.Finish() +  # Sparkle  env["HAVE_SPARKLE"] = 0  if env["PLATFORM"] == "darwin" : @@ -507,6 +549,23 @@ else :  	env["LIBIDN_BUNDLED"] = 1  conf.Finish() +# SQLite +sqlite_conf_env = conf_env.Clone() +sqlite_flags = {} +if env.get("sqlite_libdir", None) : +	sqlite_flags["LIBPATH"] = [env["sqlite_libdir"]] +if env.get("sqlite_includedir", None) : +	sqlite_flags["CPPPATH"] = [env["sqlite_includedir"]] +sqlite_conf_env.MergeFlags(sqlite_flags) +conf = Configure(sqlite_conf_env) +if conf.CheckCHeader("sqlite3.h") and conf.CheckLib(env["sqlite_libname"]) : +	env["HAVE_SQLITE"] = 1 +	env["SQLITE_FLAGS"] = { "LIBS": [env["sqlite_libname"]] } +	env["SQLITE_FLAGS"].update(sqlite_flags) +else : +	env["SQLITE_BUNDLED"] = 1 +conf.Finish() +  # Lua  env["LUA_BUNDLED"] = 1 @@ -621,6 +680,9 @@ if env.Dir("#/.git").exists() :  # Project files  ################################################################################ +# Build tools +env.SConscript(dirs = ["#/BuildTools/CLang"]) +  # Modules  modules = []  for dir in os.listdir(Dir("#/3rdParty").abspath) : | 
 Swift
 Swift