summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'BuildTools')
-rwxr-xr-xBuildTools/ProjectCopyrightSummary.py32
-rw-r--r--BuildTools/SCons/SConscript.boot7
2 files changed, 39 insertions, 0 deletions
diff --git a/BuildTools/ProjectCopyrightSummary.py b/BuildTools/ProjectCopyrightSummary.py
new file mode 100755
index 0000000..6e2d824
--- /dev/null
+++ b/BuildTools/ProjectCopyrightSummary.py
@@ -0,0 +1,32 @@
+#!/usr/bin/env python
+
+import fnmatch
+import os
+import re
+from sets import Set
+
+projectSourceFiles = []
+for directory in ['Documentation', 'Limber', 'Packages', 'QA', 'Slimber', 'Sluift', 'Swift', 'Swiften', 'SwifTools']:
+ for root, dirnames, filenames in os.walk(directory):
+ for filename in filenames:
+ if any(fnmatch.fnmatch(filename, pattern) for pattern in ['*.cpp', '*.h', '*.mm', '*.m', '*.c']):
+ projectSourceFiles.append(os.path.join(root, filename))
+
+
+def CopyrightNames(filename):
+ names = []
+ with open(filename, 'r') as file:
+ data = file.read()
+ p = re.compile(ur'\* Copyright.*\d\d\d\d (.*?)\.?$', re.MULTILINE)
+ names = re.findall(p, data)
+ return names
+
+
+names = Set()
+for file in projectSourceFiles:
+ copyrightNames = CopyrightNames(file)
+ for name in copyrightNames:
+ names.add(name)
+
+for name in sorted(list(names)):
+ print(name)
diff --git a/BuildTools/SCons/SConscript.boot b/BuildTools/SCons/SConscript.boot
index 7efa8c9..031c556 100644
--- a/BuildTools/SCons/SConscript.boot
+++ b/BuildTools/SCons/SConscript.boot
@@ -176,60 +176,67 @@ if env["max_jobs"] :
pass
except ImportError :
pass
# Set speed options
env.Decider("MD5-timestamp")
env.SetOption("max_drift", 1)
env.SetOption("implicit_cache", True)
# Set the default compiler to CLang on OS X, and set the necessary flags
if env["PLATFORM"] == "darwin" and env["target"] == "native" :
if "cc" not in env :
env["CC"] = "clang"
if platform.machine() == "x86_64" :
env["CCFLAGS"] = ["-arch", "x86_64"]
if "cxx" not in env :
env["CXX"] = "clang++"
if "link" not in env :
# Use clang++ instead of clang, otherwise XCode's clang will cause linking errors due to missing C++ standard lib.
env["LINK"] = "clang++"
if platform.machine() == "x86_64" :
env.Append(LINKFLAGS = ["-arch", "x86_64"])
# Set QT_SELECT variable to enable building on systems that have Qt4 and Qt5 installed and use qtselect
if env["PLATFORM"] != "darwin" and env["PLATFORM"] != "win32" :
if env["qt5"] :
env["ENV"]["QT_SELECT"] = "qt5"
else:
env["ENV"]["QT_SELECT"] = "qt4"
+# Set QT_SELECT variable to enable building on systems that have Qt4 and Qt5 installed and use qtselect
+if env["PLATFORM"] != "darwin" and env["PLATFORM"] != "win32" :
+ if env["qt5"] :
+ env["ENV"]["QT_SELECT"] = "qt5"
+ else:
+ env["ENV"]["QT_SELECT"] = "qt4"
+
# Check whether we are running inside scan-build, and override compiler if so
if "CCC_ANALYZER_HTML" in os.environ :
for key, value in os.environ.items() :
if key.startswith("CCC_") or key.startswith("CLANG") :
env["ENV"][key] = value
env["CC"] = os.environ["CC"]
env["CXX"] = os.environ["CXX"]
# Override the compiler with custom variables set at config time
if "cc" in env :
env["CC"] = env["cc"]
if "cxx" in env :
env["CXX"] = env["cxx"]
if "ar" in env :
env["AR"] = env["ar"]
if "link" in env :
env["SHLINK"] = env["link"]
env["LINK"] = env["link"]
# Process user-defined external flags
for flags_type in ["ccflags", "cxxflags", "linkflags"] :
if flags_type in env :
if isinstance(env[flags_type], str) :
# FIXME: Make the splitting more robust
env[flags_type.upper()] = env[flags_type].split(" ")
else :
env[flags_type.upper()] = env[flags_type]
# This isn't a real flag (yet) AFAIK. Be sure to append it to the CXXFLAGS
# where you need it