X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=doclib%2FSConscript;h=ddaa95e59329e3bd7bbae29cd935d3a4349d603e;hb=532dab5ed9c5a51af5736e893e9b4a1af698bac4;hp=0d93b9338f81176ba9c4c09cbacf179f26a83fa0;hpb=47be4c5261340d3e2ea208bb0b2d96fa256d829a;p=senf.git diff --git a/doclib/SConscript b/doclib/SConscript index 0d93b93..ddaa95e 100644 --- a/doclib/SConscript +++ b/doclib/SConscript @@ -5,15 +5,125 @@ import SENFSCons ########################################################################### -# This is not nice .. really ... -env.Alias( - 'all_docs', - env.Command('search.php', - [ 'doxy-header-overview.html', 'doxy-footer.html', 'html-munge.xsl' ], - [ "sed -e 's/\\$$title/Search results/g' -e 's/\\$$projectname/Overview/g' ${SOURCES[0]} > ${TARGET}.tmp", - 'echo "PHPSEARCH" >> ${TARGET}.tmp', - 'cat ${SOURCES[1]} >> ${TARGET}.tmp', - 'xsltproc --nonet --html --stringparam topdir .. -o - ${SOURCES[2]} ${TARGET}.tmp 2>/dev/null' - + '| sed -e "s/PHPSEARCH//" > $TARGET', - 'rm -f ${TARGET}.tmp' ])) +import yaptu +def modules(): + global EXTRA_MODULES + rv = [] + ix = len(env.Dir('#').abspath)+1 + for module in env.Alias('all_docs')[0].sources: + if module.name != 'html.stamp' : continue + if not [ x for x in EXTRA_MODULES if env.Dir(x[1]).abspath == module.dir.abspath]: + rv.append(('lib%s' % module.dir.dir.dir.name, module.dir.abspath[ix:])) + rv.sort() + return [ (name, env.Dir(path).abspath[ix:]) for name,path in EXTRA_MODULES ] + rv + +def indices(): + ix = len(env.Dir('#').abspath)+1 + return [ doc.dir.abspath[ix:] + for doc in env.Alias('all_docs')[0].sources + if doc.name == "search.idx" ] + +def writeTemplate(target = None, source = None, env = None): + file(target[0].abspath,"w").write(yaptu.process(env['TEMPLATE'], globals(), env.Dictionary())) + +writeTemplate = env.Action(writeTemplate, varlist = [ 'TEMPLATE' ]) + +########################################################################### + +# Extra documentation modules which are handled (named) different from +# library modules +EXTRA_MODULES = [ + ('Overview', '#/doc/html'), + ('Examples', '#/Examples/doc/html'), + ('SENFScons', '#/senfscons/doc/html') ] + +HEADER = """ + + +$title + + + + + + + + +
+
+ """ + +FOOTER = """
+
+
+ +""" + +OVERVIEW_EXTRA_HEADER=""" +
+ +
""" + +SEARCH_PHP=""" + +""" + +SEARCH_PATHS_PHP="""""" + +env.Command('doxy-header.html', None, writeTemplate, + TEMPLATE = HEADER, + TITLE = "Documentation and API reference") +env.Command('doxy-header-overview.html', None, writeTemplate, + TEMPLATE = HEADER+OVERVIEW_EXTRA_HEADER, + TITLE = "Introduction and Overview") +env.Command('doxy-footer.html', None, writeTemplate, + TEMPLATE = FOOTER) +env.Alias('all_docs', + env.Command('search.php', 'html-munge.xsl', + [ writeTemplate, + 'xsltproc --nonet --html --stringparam topdir .. -o - $SOURCE $TARGET 2>/dev/null' + + r'| sed -e "s/\[\[//g" > ${TARGET}.tmp', + 'mv ${TARGET}.tmp ${TARGET}' ], + TEMPLATE = (HEADER + + OVERVIEW_EXTRA_HEADER + + SEARCH_PHP.replace('<','[[').replace('>',']]') + + FOOTER), + TITLE = "Search results")) +env.Alias('all_docs', + env.Command('search_paths.php', None, writeTemplate, + TEMPLATE = SEARCH_PATHS_PHP))