# ------------------------------------------------------------------------- # Doxygen documentation batch # modified by S. Barre (Time-stamp: <2005-06-17 15:12:59 barre> # ------------------------------------------------------------------------- # Path to several tools (_PROG to avoid the typical GZIP env var pb) # Example: # DOXYGEN_PROG=@DOXYGEN@ (INCLUDE(FindDoxygen.cmake)) # GZIP_PROG=@GZIP@ (INCLUDE(FindCygwin.cmake)) # HHC_PROG=@HTML_HELP_COMPILER@ (INCLUDE(FindHTMLHelp.cmake)) # MV_PROG=@MV@ (INCLUDE(FindCygwin.cmake)) # PERL_PROG=@PERL@ (INCLUDE(FindPerl.cmake)) # RM_PROG=@RM@ (INCLUDE(FindCygwin.cmake)) # TAR_PROG=@TAR@ (INCLUDE(FindCygwin.cmake)) # WGET_PROG=@WGET@ (INCLUDE(FindWget.cmake)) # export DOXYGEN_PROG="@DOXYGEN@" # Doxygen export GZIP_PROG="@GZIP@" # gzip (Unix-like 'gzip compressor') export GNUPLOT_PROG="@GNUPLOT@" # gnuplot (data plotting program) export HHC_PROG="@HTML_HELP_COMPILER@" # HTML Help Compiler export MV_PROG="@MV@" # mv (Unix-like 'move/rename files') export CP_PROG="@CP@" # mv (Unix-like 'move/rename files') export PERL_PROG="@PERL@" # Perl export RM_PROG="@RM@" # rm (Unix-like 'remove files') export TAR_PROG="@TAR@" # tar (Unix-like 'archiver') export WGET_PROG="@WGET@" # wget (remote file retrieval) # PROJECT_NAME: # Documentation/project name. Used in some of the resulting file names and # xrefs to uniquify two or more projects linked together through their # Doxygen's tag files. Mandatory for each documentation set. # Note: might be the same as the doxyfile's PROJECT_NAME # Example: # PROJECT_NAME=VTK # export PROJECT_NAME=@DOXYGEN_PROJECT_NAME@ # PATH_TO_VTK_DOX_SCRIPTS: # Path to the directory holding the Perl scripts used to produce the VTK doc # in Doxygen format. You need the VTK source files or a local copy of # these scripts. # Example: # PATH_TO_VTK_DOX_SCRIPTS=@CMAKE_CURRENT_SOURCE_DIR@ # export PATH_TO_VTK_DOX_SCRIPTS="@DOXYGEN_SOURCE_DIR@" export PATH_TO_VTKGDCM_FINAL_PATH="@VTKGDCM_FINAL_PATH@" # SOURCE_DIR: # Source directory. The top directory of the source files. # Example: # SOURCE_DIR=@DOXYGEN_PROJECT_SOURCE_DIR@ # export SOURCE_DIR="@DOXYGEN_PROJECT_SOURCE_DIR@" # REL_PATH_TO_TOP: # Relative path from the top directory of the source files to the directory # (or top directory) holding the files to document. Useful if several parts # of the same source directory should be documented separately. # Example: # REL_PATH_TO_TOP=. # REL_PATH_TO_TOP=framework/src # export REL_PATH_TO_TOP=. # INTERMEDIATE_DOX_DIR: # Directory where the intermediate Doxygen files should be stored (mainly # these headers files converted from the VTK format to the Doxygen format). # This directory is erased at the end of this script, unless you comment # the corresponding line. # DOXTEMP might be used to simplify the syntax. # Example: # DOXTEMP=DOXTEMP=@CMAKE_CURRENT_BINARY_DIR@ # INTERMEDIATE_DOX_DIR=$DOXTEMP/dox # export DOXTEMP="@CMAKE_CURRENT_BINARY_DIR@" export INTERMEDIATE_DOX_DIR="$DOXTEMP/dox" # CVSWEB_CHECKOUT, CVSWEB_CHECKOUT_SUFFIX: # URL to the CVSWeb of the project, in checkout mode (i.e. appending a file # name to this URL will retrieve the contents of the file). In the same way # CVSWEB_CHECKOUT_SUFFIX is appended to the result. # Example: # CVSWEB_CHECKOUT=http://public.kitware.com/cgi-bin/cvsweb.cgi/~checkout~/VTK # CVSWEB_CHECKOUT_SUFFIX=?cvsroot=CMake # export CVSWEB_CHECKOUT="@DOXYGEN_CVSWEB_CHECKOUT@" export CVSWEB_CHECKOUT_SUFFIX="@DOXYGEN_CVSWEB_CHECKOUT_SUFFIX@" # DOXYFILE: # Path to the Doxygen configuration file (i.e. doxyfile). # Example: # DOXYFILE=$DOXTEMP/doxyfile # export DOXYFILE="$DOXTEMP/doxyfile" # OUTPUT_DIRECTORY ALLOW_ERASE_OUTPUT_DIRECTORY: # Path to the Doxygen output directory (where the resulting doc is stored). # Note: should be the same as your doxyfile's OUTPUT_DIRECTORY # If ON, allows the output directory to be erased when some advanced output # file have been produced (HTML Help, or TAR archive for example). # Example: # OUTPUT_DIRECTORY=$DOXTEMP/doc # ALLOW_ERASE_OUTPUT_DIRECTORY=ON # export OUTPUT_DIRECTORY="$DOXTEMP/doc" export ALLOW_ERASE_OUTPUT_DIRECTORY=ON # COMPILE_HTML_HELP RESULTING_HTML_HELP_FILE: # Compile the CHM (Compressed HTML) HTML Help file, name of the resulting # file. If set to ON and name is non-empty these options will actually # trigger the HTML-Help compiler to create the CHM. The resulting # file (usually index.chm) will be renamed to this name. # Note: if ON, the whole $OUTPUT_DIRECTORY will be erased at the end of # this script, since this file is considered to be one of the # advanced final output, unless ALLOW_ERASE_OUTPUT_DIRECTORY is OFF # Note: your doxyfile should be configured to enable HTML Help creation # (using GENERATE_HTML = YES, GENERATE_HTMLHELP = YES) # Example: # COMPILE_HTML_HELP=ON # COMPILE_HTML_HELP=@DOCUMENTATION_HTML_HELP@ # RESULTING_HTML_HELP_FILE=$DOXTEMP/vtk4.chm # export COMPILE_HTML_HELP=@DOCUMENTATION_HTML_HELP@ export RESULTING_HTML_HELP_FILE="$DOXTEMP/$PROJECT_NAME.chm" # CREATE_HTML_TARZ_ARCHIVE RESULTING_HTML_TARZ_ARCHIVE_FILE: # Create a compressed (gzip) tar archive of the html directory (located # under the OUTPUT_DIRECTORY), and name of the resulting archive file. # Note: your doxyfile should be configured to enable HTML creation # (using GENERATE_HTML = YES) # Example: # CREATE_HTML_TARZ_ARCHIVE=ON # CREATE_HTML_TARZ_ARCHIVE=@DOCUMENTATION_HTML_TARZ@ # RESULTING_HTML_TARZ_ARCHIVE_FILE=$DOXTEMP/vtk4-html.tar.gz # export CREATE_HTML_TARZ_ARCHIVE=@DOCUMENTATION_HTML_TARZ@ export RESULTING_HTML_TARZ_ARCHIVE_FILE="$DOXTEMP/$PROJECT_NAME-html.tar.gz" # DOWNLOAD_VTK_TAGFILE VTK_TAGFILE VTK_TAGFILE_REMOTE_DIR VTK_TAGFILE_DEST_DIR: # Download the VTK tag file, name, remote location and destination dir of this # tag file. If set to ON, the tag file is retrieved from its remote location # using wget and stored in the destination dir. # The tag file is expected to be compressed using gzip, but DO NOT include # the .gz extension in VTK_TAGFILE. # Note: your doxyfile must be tailored to make use-of or create this tag file. # (using TAGFILES = vtk4-nightly.tag=http://www.vtk.org/doc/nightly/html # or GENERATE_TAGFILE = "@FOO_BINARY_DIR@/Utilities/Doxygen/vtk4.tag") # Example: # DOWNLOAD_VTK_TAGFILE=OFF # VTK_TAGFILE=vtk4-nightly.tag # VTK_TAGFILE_REMOTE_DIR=http://www.vtk.org/doc/nightly/html # VTK_TAGFILE_DEST_DIR=$DOXTEMP # export DOWNLOAD_VTK_TAGFILE=@DOCUMENTATION_DOWNLOAD_VTK_TAGFILE@ export VTK_TAGFILE=vtkNightlyDoc.tag export VTK_TAGFILE_REMOTE_DIR="http://www.vtk.org/files/nightly" export VTK_TAGFILE_DEST_DIR="$DOXTEMP" echoexit() { echo "$1" exit 1 } cd "${DOXTEMP}" || echoexit "Cannot find Doxygen output directory: ${DOXTEMP}" # ---------------------------------------------------------------------------- # Convert the VTK headers to the Doxygen format. echo "Convert the VTK headers to the Doxygen format." if test "x$PERL_PROG" != "xNOTFOUND" ; then $PERL_PROG "$PATH_TO_VTK_DOX_SCRIPTS/doc_header2doxygen.pl" \ --to "$INTERMEDIATE_DOX_DIR" \ --relativeto "@DOXYGEN_SOURCE_LOCATIONS_DIR@" \ @DOXYGEN_SOURCE_LOCATIONS@ || echoexit "Problem converting VTK headers" if test "x@DOXYGEN_BINARY_LOCATIONS_DIR@" != "x"; then $PERL_PROG "$PATH_TO_VTK_DOX_SCRIPTS/doc_header2doxygen.pl" \ --to "$INTERMEDIATE_DOX_DIR" \ --relativeto "@DOXYGEN_BINARY_LOCATIONS_DIR@" \ @DOXYGEN_BINARY_LOCATIONS@ || echoexit "Problem converting VTK headers" fi fi echo "Convert the VTK headers to the Doxygen format - done" # ---------------------------------------------------------------------------- # Build the full-text index. echo "Build the full-text index." if test "x$PERL_PROG" != "xNOTFOUND" ; then $PERL_PROG "$PATH_TO_VTK_DOX_SCRIPTS/doc_index.pl" \ --project "$PROJECT_NAME" \ --stop "$PATH_TO_VTK_DOX_SCRIPTS/doc_index.stop" \ --store "doc_""$PROJECT_NAME""_index.dox" \ --to "$INTERMEDIATE_DOX_DIR" \ @DOXYGEN_SOURCE_LOCATIONS@ \ @DOXYGEN_BINARY_LOCATIONS@ || echoexit "Problem building full-text index" fi echo "Build the full-text index - done" # # ---------------------------------------------------------------------------- # # Generate the 'Class to Demos' page cross-linking each class to these # # demos that use that class. # if test "x$PERL_PROG" != "xNOTFOUND" ; then # $PERL_PROG $PATH_TO_VTK_DOX_SCRIPTS/doc_class2example.pl \ # --datamatch "\W((VTK|ParaView)_DATA_ROOT|(VTK|MedVIP)Data|(vtk)?GetDataRoot|ExpandDataFileName)\W" \ # --dataicon "paper-clip.gif" \ # --dirmatch "^demos$" \ # --label "Demos" \ # --project "$PROJECT_NAME" \ # --store "doc_""$PROJECT_NAME""_class2demos.dox" \ # --title "Class To Demos" \ # --to "$INTERMEDIATE_DOX_DIR" \ # --unique "d" \ # "$SOURCE_DIR/framework/demos" # fi # ---------------------------------------------------------------------------- # Retrieve the (gziped) VTK 4 tag file and decompress it if test "x$DOWNLOAD_VTK_TAGFILE" == "xON" ; then if test "x$VTK_TAGFILE" != "x" ; then if test "x$WGET_PROG" != "xNOTFOUND" ; then $WGET_PROG -nd -nH \ "$VTK_TAGFILE_REMOTE_DIR/$VTK_TAGFILE.gz" \ -O "$VTK_TAGFILE_DEST_DIR/$VTK_TAGFILE.gz" if test "x$GZIP_PROG" != "xNOTFOUND" ; then $GZIP_PROG -f -d "$VTK_TAGFILE_DEST_DIR/$VTK_TAGFILE.gz" fi fi fi fi # ---------------------------------------------------------------------------- # Create the Doxygen doc. if test "x$DOXYGEN_PROG" != "xNOTFOUND" ; then if test "x$RM_PROG" != "xNOTFOUND" ; then $RM_PROG -fr "$OUTPUT_DIRECTORY" fi $DOXYGEN_PROG "$DOXYFILE" || echoexit "Problem running doxygen" fi # ---------------------------------------------------------------------------- # Clean the HTML pages to remove the path to the intermediate Doxygen dir. if test "x$PERL_PROG" != "xNOTFOUND" ; then $PERL_PROG "$PATH_TO_VTK_DOX_SCRIPTS/doc_rmpath.pl" \ --to "$INTERMEDIATE_DOX_DIR" \ --html "$OUTPUT_DIRECTORY/html" || echoexit "Problem cleaning HTML pages" fi # ---------------------------------------------------------------------------- # Create the CHM HTML HELP doc. if test "x$COMPILE_HTML_HELP" == "xON" ; then if test "x$RESULTING_HTML_HELP_FILE" != "x" ; then cd "$OUTPUT_DIRECTORY/html" if test "x$HHC_PROG" != "xNOTFOUND" ; then $HHC_PROG index.hhp || echoexit "Problem generating CHM" if test "x$MV_PROG" != "xNOTFOUND" ; then $MV_PROG -f index.chm "$RESULTING_HTML_HELP_FILE" fi fi fi fi # ---------------------------------------------------------------------------- # Create the compressed tar archive. if test "x$CREATE_HTML_TARZ_ARCHIVE" == "xON" ; then if test "x$RESULTING_HTML_TARZ_ARCHIVE_FILE" != "x" ; then cd "$OUTPUT_DIRECTORY" if test "x$TAR_PROG" != "xNOTFOUND" ; then if test "x$RM_PROG" != "xNOTFOUND" ; then $RM_PROG -f html.tar fi $TAR_PROG -cf html.tar html if test "x$GZIP_PROG" != "xNOTFOUND" ; then if test "x$RM_PROG" != "xNOTFOUND" ; then $RM_PROG -f html.tar.gz fi $GZIP_PROG html.tar $MV_PROG -f html.tar.gz "$RESULTING_HTML_TARZ_ARCHIVE_FILE" fi fi fi fi # ---------------------------------------------------------------------------- # Let's overwrite any *vtk* file produce by our custom vtk/doxygen tool # on top of the existing doxygen one. if test "x$CP_PROG" != "xNOTFOUND" ; then $CP_PROG "$OUTPUT_DIRECTORY/html/"*vtk* "$PATH_TO_VTKGDCM_FINAL_PATH" fi # ---------------------------------------------------------------------------- # Clean-up. if test "x$RM_PROG" != "xNOTFOUND" ; then $RM_PROG -fr "$INTERMEDIATE_DOX_DIR" if test "x$DOWNLOAD_VTK_TAGFILE" == "xON" ; then if test "x$VTK_TAGFILE" != "x" ; then $RM_PROG -f "$VTK_TAGFILE_DEST_DIR/$VTK_TAGFILE" fi fi if test "x$COMPILE_HTML_HELP" == "xON" ; then if test "x$RESULTING_HTML_HELP_FILE" != "x" ; then if test "x$ALLOW_ERASE_OUTPUT_DIRECTORY" == "xON" ; then $RM_PROG -fr "$OUTPUT_DIRECTORY" fi fi fi fi