summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemko Tronçon <git@el-tramo.be>2010-10-10 10:10:45 (GMT)
committerRemko Tronçon <git@el-tramo.be>2010-10-10 10:10:45 (GMT)
commitfb7fe3dd7cf48b0e4a7337212129520dff5a236d (patch)
treeaf92d907690aaca32543e3eda57d486562b96304
parent646ab3617d04f6e20b878c09fce5e58c17def88d (diff)
downloadswift-fb7fe3dd7cf48b0e4a7337212129520dff5a236d.zip
swift-fb7fe3dd7cf48b0e4a7337212129520dff5a236d.tar.bz2
Conditionally build documentation.
-rw-r--r--BuildTools/SCons/SConstruct1
-rw-r--r--BuildTools/SCons/Tools/DoxyGen.py26
-rw-r--r--Documentation/API/SConscript7
-rw-r--r--Documentation/SConscript3
4 files changed, 36 insertions, 1 deletions
diff --git a/BuildTools/SCons/SConstruct b/BuildTools/SCons/SConstruct
index 0fe71f1..a43d2c5 100644
--- a/BuildTools/SCons/SConstruct
+++ b/BuildTools/SCons/SConstruct
@@ -258,6 +258,7 @@ if int(ARGUMENTS.get("V", 0)) == 0:
env["FOCOMSTR"] = colorize("FO", "$TARGET", "blue")
env["XSLTCOMSTR"] = colorize("XSLT", "$TARGET", "blue")
env["XMLLINTCOMSTR"] = colorize("XMLLINT", "$SOURCE", "blue")
+ env["DOXYCOMSTR"] = colorize("DOXY", "$SOURCE", "blue")
#Progress(colorize("DEP", "$TARGET", "red")
def checkObjCHeader(context, header) :
diff --git a/BuildTools/SCons/Tools/DoxyGen.py b/BuildTools/SCons/Tools/DoxyGen.py
new file mode 100644
index 0000000..3fc53c4
--- /dev/null
+++ b/BuildTools/SCons/Tools/DoxyGen.py
@@ -0,0 +1,26 @@
+import SCons.Util, os
+
+def generate(env) :
+ def modify_targets(target, source, env) :
+ target = [env.File("html/index.html")]
+ return target, source
+
+ def generate_actions(source, target, env, for_signature) :
+ if env.WhereIs("$DOXYGEN") and env.WhereIs("$DOT") :
+ return [SCons.Action.Action("$DOXYGEN $SOURCE", cmdstr = "$DOXYCOMSTR")]
+ else :
+ return []
+
+ env["DOXYGEN"] = "doxygen"
+ # FIXME: For some reason, things go incredibly slow (at least on OS X)
+ # when not doing this. Some environment flag is having an effect on
+ # this; find out which
+ env["ENV"] = os.environ
+ env["DOT"] = "dot"
+ env["BUILDERS"]["DoxyGen"] = SCons.Builder.Builder(
+ emitter = modify_targets,
+ generator = generate_actions,
+ single_source = True)
+
+def exists(env) :
+ return True
diff --git a/Documentation/API/SConscript b/Documentation/API/SConscript
new file mode 100644
index 0000000..0a7ae36
--- /dev/null
+++ b/Documentation/API/SConscript
@@ -0,0 +1,7 @@
+Import("env")
+
+myenv = env.Clone()
+
+myenv.Tool("DoxyGen", toolpath = ["#/BuildTools/SCons/Tools"])
+
+myenv.DoxyGen("Doxyfile")
diff --git a/Documentation/SConscript b/Documentation/SConscript
index f4d22db..b42fc62 100644
--- a/Documentation/SConscript
+++ b/Documentation/SConscript
@@ -1,4 +1,5 @@
Import("env")
if env["SCONS_STAGE"] == "build" :
- SConscript(dirs = ["SwiftenDevelopersGuide"])
+ if "doc" in ARGUMENTS :
+ SConscript(dirs = ["SwiftenDevelopersGuide", "API"])