X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/10da75d0980f596bf0572012fa303a3a0a342b2b..de4c659edad7c62b849894767ed7ed5236df0afc:/docs/doxygen/regen.sh?ds=sidebyside diff --git a/docs/doxygen/regen.sh b/docs/doxygen/regen.sh index 51b673941f..cd101108e5 100755 --- a/docs/doxygen/regen.sh +++ b/docs/doxygen/regen.sh @@ -20,7 +20,7 @@ me=$(basename $0) path=${0%%/$me} # path from which the script has been launched current=$(pwd) cd $path -WXWIDGETS=`cd ../.. && pwd` +export WXWIDGETS=`cd ../.. && pwd` # prepare folders for the cp commands below mkdir -p out/html # we need to copy files in this folder below @@ -56,6 +56,54 @@ fi # doxygen $cfgfile +if [[ "$1" = "qch" ]]; then + # we need to add missing files to the .qhp + cd out/html + qhelpfile="index.qhp" + + # remove all <file> and <files> tags + cat $qhelpfile | grep -v "<file" >temp + + # remove last 4 lines (so we have nothing after the last <keyword> tag) + lines=$(wc -l < temp) + wanted=`expr $lines - 4` + head -n $wanted temp >$qhelpfile + + # generate a list of new <keyword> tags to add to the index file; without + # this step in the 'index' tab of Qt assistant the "wxWindow" class is not + # present; just "wxWindow::wxWindow" ctor is listed. + # NOTE: this operation is not indispensable but produces a QCH easier to use IMO. + sed -e 's/<keyword name="wx[a-zA-Z~]*" id="wx\([a-zA-Z]*\)::[a-zA-Z~]*" ref="\([a-z_]*.html\)#.*"/<keyword name="wx\1" id="wx\1" ref="\2"/g' < $qhelpfile | grep "<keyword name=\"wx" | uniq >temp + cat temp >>$qhelpfile + echo " </keywords>" >>$qhelpfile + echo " <files>" >>$qhelpfile + + # remove useless files to make the qch slim + rm temp *map *md5 + + # add a <file> tag for _any_ file in out/html folder except the .qhp itself + for f in * */*png; do + if [[ $f != $qhelpfile ]]; then + echo " <file>$f</file>" >>$qhelpfile + fi + done + + # add ending tags to the qhp file + echo " </files> + </filterSection> +</QtHelpProject>" >>$qhelpfile + + # replace keyword names so that they appear fully-qualified in the + # "index" tab of the Qt Assistant; e.g. Fit => wxWindow::Fit + # NOTE: this operation is not indispendable but produces a QCH easier to use IMO. + sed -e 's/<keyword name="[a-zA-Z:~]*" id="\([a-zA-Z]*::[a-zA-Z~]*\)"/<keyword name="\1" id="\1"/g' <$qhelpfile >temp + mv temp $qhelpfile + + # last, run qhelpgenerator: + cd ../.. + qhelpgenerator out/html/index.qhp -o out/wx.qch +fi + # Doxygen has the annoying habit to put the full path of the # affected files in the log file; remove it to make the log # more readable