diff options
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/SwiftenDevelopersGuide/Examples/EchoBot/SConscript | 4 | ||||
-rw-r--r-- | Documentation/SwiftenDevelopersGuide/SConscript | 6 |
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("//...", "]]>…<![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) |