From: g0dil Date: Wed, 19 Aug 2009 10:18:00 +0000 (+0000) Subject: Fix HTML @TOPDIR@ links X-Git-Url: http://g0dil.de/git?a=commitdiff_plain;h=86b3d95df28c60c80ac852dc8356d814788366a7;p=senf.git Fix HTML @TOPDIR@ links Add doclib/doxygen.sh dependency to documentation build Fix doclib/doxygen.sh shell (bash instead of sh) git-svn-id: https://svn.berlios.de/svnroot/repos/senf/trunk@1304 270642c3-0616-0410-b53a-bc976706d245 --- diff --git a/doclib/SConscript b/doclib/SConscript index 097ec6b..696fc27 100644 --- a/doclib/SConscript +++ b/doclib/SConscript @@ -232,7 +232,6 @@ div.tabs li.$projectname a { background-color: #EDE497; }
  • ChangeLog
  • Browse SVN
  • Bug Tracker
  • -
  • Open Issues
  • diff --git a/doclib/doxygen.sh b/doclib/doxygen.sh index 2992bd2..b2acf84 100755 --- a/doclib/doxygen.sh +++ b/doclib/doxygen.sh @@ -1,11 +1,12 @@ -#!/bin/sh -e +#!/bin/bash -e do_html_cleanup() { sed -e 's/id="current"/class="current"/' \ | tidy -ascii -q --wrap 0 --show-warnings no --fix-uri no \ | sed -e 's/name="\([^"]*\)"\([^>]*\) id="\1"/name="\1"\2/g' \ - | xsltproc --novalid --nonet --html --stringparam topdir $TOPDIR "$base/html-munge.xsl" - + | xsltproc --novalid --nonet --html --stringparam topdir "$reltopdir" \ + "$base/html-munge.xsl" - } ########################################################################### @@ -62,7 +63,7 @@ EOF exit 1 fi -if [ "$tagfile" == "YES" -a -z "$tagfile_name" ]; then +if [ "$tagfile" = "YES" -a -z "$tagfile_name" ]; then echo "--tagfile-name is required with --tagfile" exit 1 fi @@ -86,13 +87,14 @@ relpath() srcd="${src%%/*}" dstd="${dst%%/*}" if [ "$srcd" = "$dstd" ]; then - src="${src#*/}" - dst="${dst#*/}" + src="${src#$srcd}"; src="${src#/}" + dst="${dst#$dstd}"; dst="${dst#/}" else break fi done - echo "`echo "$src" | sed -e "s/[^\/]*/../g"`/$dst" # `" + rel="`echo "$src" | sed -e "s/[^\/]*/../g"`/$dst" # `" + echo "${rel%/}" } # Log executed commands @@ -119,6 +121,8 @@ if [ ! -r "SConstruct" ]; then exit 1; fi TOPDIR="`pwd`"; +reltopdir="`relpath "$doxydir/$output_dir/$html_dir" "$TOPDIR"`" #`" +echo "relpath $doxydir/$output_dir/$html_dir $TOPDIR -> $reltopdir" cd "$doxydir" @@ -137,7 +141,7 @@ fi ## Call doxygen proper generate_tagfile="" -if [ "$tagfile" == "YES" ]; then +if [ "$tagfile" = "YES" ]; then generate_tagfile="$tagfile_name" fi export TOPDIR html tagfile tagfile_name tagfiles output_dir html_dir generate_tagfile @@ -147,7 +151,7 @@ cmd ${DOXYGEN:-doxygen} ## Clean up tagfile, if generated -if [ "$tagfile" == "YES" ]; then +if [ "$tagfile" = "YES" ]; then mv "$tagfile_name" "${tagfile_name}.orig" cmd xsltproc --novalid --nonet -o "$tagfile_name" "$tagxsl" "${tagfile_name}.orig" fi @@ -173,7 +177,7 @@ fi ## Postprocess html files, if generated -if [ "$html" == "YES" ]; then +if [ "$html" = "YES" ]; then for h in "$doxydir/$output_dir/$html_dir"/*.html; do cmd html_cleanup "$h" done diff --git a/senfscons/SENFSCons.py b/senfscons/SENFSCons.py index 90b51c8..1701b99 100644 --- a/senfscons/SENFSCons.py +++ b/senfscons/SENFSCons.py @@ -456,16 +456,17 @@ def Doxygen(env, doxyfile = "Doxyfile", extra_sources = []): # Rule to generate tagfile # (need to exclude the 'clean' case, otherwise we'll have duplicate nodes) if not env.GetOption('clean'): - env.Append(ALL_TAGFILES = - env.Doxygen(doxyfile, - DOXYOPTS = [ '--tagfile-name', '"${MODULE}.tag"', - '--tagfile' ], - DOXYENV = { 'TOPDIR' : env.Dir('#').abspath, - 'output_dir' : 'doc', - 'html_dir' : 'html', - 'html' : 'NO', - 'generate_tagfile': 'doc/${MODULE}.tag' }, - MODULE = module )[0].abspath) + tagfile = env.Doxygen(doxyfile, + DOXYOPTS = [ '--tagfile-name', '"${MODULE}.tag"', + '--tagfile' ], + DOXYENV = { 'TOPDIR' : env.Dir('#').abspath, + 'output_dir' : 'doc', + 'html_dir' : 'html', + 'html' : 'NO', + 'generate_tagfile': 'doc/${MODULE}.tag' }, + MODULE = module ) + env.Append(ALL_TAGFILES = tagfile[0].abspath) + env.Depends(tagfile, env.File('#/doclib/doxygen.sh')) # Rule to generate HTML documentation doc = env.Doxygen(doxyfile, @@ -478,6 +479,7 @@ def Doxygen(env, doxyfile = "Doxyfile", extra_sources = []): 'output_dir' : 'doc', 'html_dir' : 'html', 'html' : 'YES' } ) + env.Depends(doc, env.File('#/doclib/doxygen.sh')) # Copy the extra_sources (the images) into the documentation directory # (need to exclude the 'clean' case otherwise there are multiple ways to clean the copies)