From fb7fe3dd7cf48b0e4a7337212129520dff5a236d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Remko=20Tron=C3=A7on?= <git@el-tramo.be>
Date: Sun, 10 Oct 2010 12:10:45 +0200
Subject: Conditionally build documentation.


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"])
-- 
cgit v0.10.2-6-g49f6