| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209 | 
							- #!/bin/bash
 
- #
 
- #
 
- # This bash script regenerates the HTML doxygen version of the
 
- # wxWidgets manual and adjusts the doxygen log to make it more
 
- # readable.
 
- #
 
- # Usage:
 
- #    ./regen.sh [html|chm|xml|latex|all]
 
- #
 
- # Pass "x" to regen only the X output format and "all" to regen them all.
 
- # If no arguments are passed all formats are regenerated
 
- # (just like passing "all").
 
- #
 
- # remember current folder and then cd to the docs/doxygen one
 
- me=$(basename $0)
 
- path=${0%%/$me}        # path from which the script has been launched
 
- current=$(pwd)
 
- cd $path
 
- if [[ -z "$WXWIDGETS" ]]; then
 
-     # Notice the use of -P to ensure we get the canonical path even if there
 
-     # are symlinks in the current path. This is important because Doxygen
 
-     # strips this string from the paths in the generated files textually and it
 
-     # wouldn't work if it contained symlinks.
 
-     WXWIDGETS=`cd ../.. && pwd -P`
 
-     if [ "$OSTYPE" = "cygwin" ]; then
 
-         WXWIDGETS=`cygpath -w $WXWIDGETS`
 
-     fi
 
-     export WXWIDGETS
 
- fi
 
- if [ "$DOXYGEN" = "" ]; then
 
-     DOXYGEN=doxygen
 
- fi
 
- # Check that doxygen has the correct version as different versions of it are
 
- # unfortunately not always (in fact, practically never) compatible.
 
- #
 
- # Still allow using incompatible version for some quick local testing if really
 
- # needed and 1.8.2 can't be installed for whatever reason.
 
- if [[ -z $WX_SKIP_DOXYGEN_VERSION_CHECK ]]; then
 
-     doxygen_version=`$DOXYGEN --version`
 
-     doxygen_version_required=1.8.2
 
-     if [[ $doxygen_version != $doxygen_version_required ]]; then
 
-         echo "Doxygen version $doxygen_version is not supported."
 
-         echo "Please use Doxygen $doxygen_version_required or export WX_SKIP_DOXYGEN_VERSION_CHECK."
 
-         exit 1
 
-     fi
 
- fi
 
- # prepare folders for the cp commands below
 
- mkdir -p out/html       # we need to copy files in this folder below
 
- mkdir -p out/html/generic
 
- # These are not automatically copied by Doxygen because they're not
 
- # used in doxygen documentation, only in our html footer and by our
 
- # custom aliases
 
- cp images/generic/*png out/html/generic
 
- # Defaults for settings controlled by this script
 
- export GENERATE_DOCSET="NO";
 
- export GENERATE_HTML="NO";
 
- export GENERATE_HTMLHELP="NO";
 
- export GENERATE_LATEX="NO";
 
- export GENERATE_QHP="NO";
 
- export GENERATE_XML="NO";
 
- export SEARCHENGINE="NO";
 
- export SERVER_BASED_SEARCH="NO";
 
- # Which format should we generate during this run?
 
- case "$1" in
 
-     all) # All *main* formats, not all formats, here for backwards compat.
 
-         export GENERATE_HTML="YES";
 
-         export GENERATE_HTMLHELP="YES";
 
-         export GENERATE_XML="YES";
 
-         ;;
 
-     chm)
 
-         export GENERATE_HTML="YES";
 
-         export GENERATE_HTMLHELP="YES";
 
-         ;;
 
-     docset)
 
-         export GENERATE_DOCSET="YES";
 
-         export GENERATE_HTML="YES";
 
-         ;;
 
-     latex)
 
-         export GENERATE_LATEX="YES";
 
-         ;;
 
-     php) # HTML, but with PHP Search Engine
 
-         export GENERATE_HTML="YES";
 
-         export SEARCHENGINE="YES";
 
-         export SERVER_BASED_SEARCH="YES";
 
-         ;;
 
-     qch)
 
-         export GENERATE_HTML="YES";
 
-         export GENERATE_QHP="YES";
 
-         ;;
 
-     xml)
 
-         export GENERATE_XML="YES";
 
-         ;;
 
-     *) # Default to HTML only
 
-         export GENERATE_HTML="YES";
 
-         export SEARCHENGINE="YES";
 
-         ;;
 
- esac
 
- #
 
- # NOW RUN DOXYGEN
 
- #
 
- # NB: we do this _after_ copying the required files to the output folders
 
- #     otherwise when generating the CHM file with Doxygen, those files are
 
- #     not included!
 
- #
 
- $DOXYGEN Doxyfile
 
- 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
 
- if [[ "$1" = "docset" ]]; then
 
-     BASENAME="wxWidgets-3.0"    # was org.wxwidgets.doxygen.docset.wx30
 
-     DOCSETNAME="$BASENAME.docset"
 
-     ATOM="$BASENAME.atom"
 
-     ATOMDIR="http://docs.wxwidgets.org/docsets"
 
-     XAR="$BASENAME.xar"
 
-     XARDIR="http://docs.wxwidgets.org/docsets"
 
-     XCODE_INSTALL=`xcode-select -print-path`
 
-     
 
-     cd out/html
 
-     DESTINATIONDIR=`pwd`/../docset
 
-     
 
-     mkdir -p $DESTINATIONDIR
 
-     rm -rf $DESTINATIONDIR/$DOCSETNAME
 
-     rm -f $DESTINATIONDIR/$XAR
 
-     
 
-     make DOCSET_NAME=$DESTINATIONDIR/$DOCSETNAME
 
-     
 
-     defaults write $DESTINATIONDIR/$DOCSETNAME/Contents/Info CFBundleVersion 1.3
 
-     defaults write $DESTINATIONDIR/$DOCSETNAME/Contents/Info CFBundleShortVersionString 1.3
 
-     defaults write $DESTINATIONDIR/$DOCSETNAME/Contents/Info CFBundleName "wxWidgets 3.0"
 
-     defaults write $DESTINATIONDIR/$DOCSETNAME/Contents/Info DocSetFeedURL $ATOMDIR/$ATOM
 
-     defaults write $DESTINATIONDIR/$DOCSETNAME/Contents/Info DocSetFallbackURL http://docs.wxwidgets.org
 
-     defaults write $DESTINATIONDIR/$DOCSETNAME/Contents/Info DocSetDescription "API reference and conceptual documentation for wxWidgets 3.0"
 
-     defaults write $DESTINATIONDIR/$DOCSETNAME/Contents/Info NSHumanReadableCopyright "Copyright 1992-2014 wxWidgets team, Portions 1996 Artificial Intelligence Applications Institute"
 
-     defaults write $DESTINATIONDIR/$DOCSETNAME/Contents/Info isJavaScriptEnabled true
 
-     defaults write $DESTINATIONDIR/$DOCSETNAME/Contents/Info dashIndexFilePath index.html
 
-     defaults write $DESTINATIONDIR/$DOCSETNAME/Contents/Info DocSetPlatformFamily wx
 
-     $XCODE_INSTALL/usr/bin/docsetutil package -atom $DESTINATIONDIR/$ATOM -download-url $XARDIR/$XAR -output $DESTINATIONDIR/$XAR $DESTINATIONDIR/$DOCSETNAME
 
-     cd ../..
 
- 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
 
- currpath=`pwd`/
 
- interfacepath=`cd ../../interface && pwd`/
 
- cat doxygen.log | sed -e "s|$currpath||g" -e "s|$interfacepath||g" > temp
 
- cat temp > doxygen.log
 
- rm temp
 
- # return to the original folder from which this script was launched
 
- cd $current
 
 
  |