summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/SwiftenDevelopersGuide')
-rw-r--r--Documentation/SwiftenDevelopersGuide/Examples/EchoBot/SConscript4
-rw-r--r--Documentation/SwiftenDevelopersGuide/SConscript6
2 files changed, 8 insertions, 2 deletions
diff --git a/Documentation/SwiftenDevelopersGuide/Examples/EchoBot/SConscript b/Documentation/SwiftenDevelopersGuide/Examples/EchoBot/SConscript
index 24ebd60..5d27b70 100644
--- a/Documentation/SwiftenDevelopersGuide/Examples/EchoBot/SConscript
+++ b/Documentation/SwiftenDevelopersGuide/Examples/EchoBot/SConscript
@@ -1,32 +1,36 @@
Import("env")
example_env = env.Clone()
example_env.UseFlags(example_env["SWIFTEN_FLAGS"])
example_env.UseFlags(example_env["SWIFTEN_DEP_FLAGS"])
# Precompile Swiften header
# This is useful to slightly speed up compilation.
# if example_env["PLATFORM"] == "win32":
# example_env.WriteVal("Swiften.cpp", example_env.Value("#include <Swiften/Swiften.h>\n"))
# example_env["PCH"] = example_env.PCH("Swiften.cpp")[0]
# example_env["PCHSTOP"] = "Swiften/Swiften.h"
for i in range(1,7) :
example_env.Program("EchoBot" + str(i), ["EchoBot" + str(i) + ".cpp"])
example_env.Program("EchoComponent", "EchoComponent.cpp")
# C++0x
cpp0x = False
cpp0x_env = example_env.Clone()
if env["PLATFORM"] == "win32" :
if int(env["MSVS_VERSION"].split(".")[0]) >= 10 :
cpp0x = True
+elif env["PLATFORM"] == "hpux" :
+ pass
+elif env["PLATFORM"] == "sunos" :
+ pass
else :
if env["CCVERSION"].split(".") >= ["4", "5", "0"] :
# Temporarily disabling c++0x mode because of problems with boost::thread
# on some platforms
#cpp0x = True
cpp0x_env.Replace(CXXFLAGS = [flag for flag in env["CXXFLAGS"] if flag != "-Werror"])
cpp0x_env.Append(CXXFLAGS = ["-std=c++0x"])
if cpp0x :
cpp0x_env.Program("EchoBot0x", "EchoBot0x.cpp")
diff --git a/Documentation/SwiftenDevelopersGuide/SConscript b/Documentation/SwiftenDevelopersGuide/SConscript
index c50641f..ba0eb0b 100644
--- a/Documentation/SwiftenDevelopersGuide/SConscript
+++ b/Documentation/SwiftenDevelopersGuide/SConscript
@@ -2,73 +2,75 @@ Import("env")
env.Tool("DocBook", toolpath = ["#/BuildTools/DocBook/SCons"])
################################################################################
# Code generation helper
################################################################################
import sys, re, os.path
def generateDocBookCode(env, target, source) :
# Strips empty lines from the beginning & end of a program
def stripEmptyLines(program) :
programLines = program.split('\n')
newProgramLines = []
inProgram = False
for line in programLines :
if not re.match("^\s*$", line) or inProgram :
inProgram = True
newProgramLines.append(line)
return '\n'.join(newProgramLines).rstrip()
def createCallouts(program, calloutPrefix) :
newProgramLines = []
calloutLines = []
nextID = 0
for line in program.split("\n") :
# FIXME: Takes the largest match
m = re.match(".*\/* \(\*\) (.*) \*/.*", line)
if m :
cobID = "cob-" + calloutPrefix + "-" + str(nextID)
coID = "co-" + calloutPrefix + "-" + str(nextID)
nextID += 1
line = re.sub("/\*.*\*/", "]]><co id=\"%(cobID)s\" linkends=\"%(coID)s\"/><![CDATA[" % {"cobID" : cobID, "coID" : coID}, line)
calloutLines.append("<callout arearefs=\"%(cobID)s\" id=\"%(coID)s\"><para>%(text)s</para></callout>" % {"cobID": cobID, "coID": coID, "text": m.group(1)})
newProgramLines.append(line)
- callouts = "<calloutlist>" + "\n".join(calloutLines) + "</calloutlist>" if len(calloutLines) > 0 else ""
+ callouts = ""
+ if len(calloutLines) > 0 :
+ callouts = "<calloutlist>" + "\n".join(calloutLines) + "</calloutlist>"
return ("\n".join(newProgramLines), callouts)
-
+
# Parse program
filename = source[0].abspath
filenameBase = os.path.basename(filename).replace(".cpp", "")
inputfile = open(filename)
program = ""
programs = {}
programName = ""
inEllipsis = False
for line in inputfile.readlines() :
if inEllipsis :
if "//..." in line :
inEllipsis = False
else :
if line.startswith("/*") or line.startswith(" *") :
continue
if "//..." in line :
inEllipsis = True
line = line.replace("//...", "]]>&#x2026;<![CDATA[")
else :
m = re.match("^/// (.*)", line)
if m :
if programName :
programs[programName] = program
program = ""
programName = m.group(1).strip().replace(" ", "")
continue
line = re.sub("\t", " ", line)
program += line
programs[programName] = program
inputfile.close()
for programName, program in programs.items() :
program = stripEmptyLines(program)
(program, callouts) = createCallouts(program, filenameBase + "-" + programName)