gtkradiant/gendox

151 lines
4.4 KiB
Text
Raw Permalink Normal View History

#!/bin/bash
#
# Shell script to make doxygen documentation by specifying a target directory
# on the command line
#
# Gef (gefdavis@dingoblue.net.au) -- August 2001
# TODO:
# - Dynamic ChangeLog (page gets updated with each commit)
# - Have the ability to specify server dox or local dox, which will then
# change the content on the main page
# - Incorporate a scaled gtkradiant splash image into the pages
#------------------------------------------------------------------------
# Set some variables
#------------------------------------------------------------------------
# WORKINGDIR=`pwd`;
RETVAL=0;
TARGETSTRING='';
EXTRAS_PATH="./Doxygen_files";
CONFIG_OUTPUT="$EXTRAS_PATH/genConf";
DOXYCONFIG="./DoxyConfig";
DOXYFILE="$EXTRAS_PATH/Doxyfile";
NEWDOXYFILE="$EXTRAS_PATH/genDoxyfile";
declare -a TARGETLIST[$#];
COUNTER=0;
TARGETCOUNT=0;
QUIETMODE=0;
# added -k command line option to kill running doxygen procs
KILLON=0
#------------------------------------------------------------------------
# load the functions
#------------------------------------------------------------------------
if [ -f "$EXTRAS_PATH/gendoxfunctions" ] ; then
. $EXTRAS_PATH/gendoxfunctions
else
echo -e "Missing critical files...\n";
exit 1;
fi
#------------------------------------------------------------------------
# parse the command line options
#------------------------------------------------------------------------
COMLINE="$*";
OPTCOUNT="$#";
parse_commandline;
if [ $RETVAL -gt 0 ] ; then
echo -e "Exiting.";
exit $RETVAL;
fi
if [ $KILLON -gt 0 ] ; then
PIDOF_DOXYGEN=`pidof -x doxygen`
MYPID=$$
if [ -z "$PIDOF_DOXYGEN" ] ; then
[ $QUIETMODE -gt 0 ] || echo -e " * Killing other doxygen pids";
killall -q -9 doxygen
else
[ $QUIETMODE -gt 0 ] || echo -e " * Killing other doxygen pids";
kill -9 $PIDOF_DOXYGEN &> /dev/null
fi
[ $QUIETMODE -gt 0 ] || echo -e " * Cleaning up gendox pids";
killall -q -9 `pidof -x gendox | sed -e s/$MYPID//` &> /dev/null
fi
# If the output dir hasn't been set yet...
#if [ -z "$OUTPUTDIR" ] ; then
# OUTPUTDIR="../$(basename `pwd`)-doxygen";
#fi
#------------------------------------------------------------------------
# execute some functions to determine stuff(c)
# Get the perl path (either from the config file, or find it)
#------------------------------------------------------------------------
get_perlpath;
if [ X"$PERLPATH" == "X" ] ; then
echo -e "\nError: A working install of perl is needed to use doxygen";
exit 2;
fi
[ $QUIETMODE -gt 0 ] || echo -e " -> Set PERL_PATH to: $PERLPATH";
get_dotpath;
[ $QUIETMODE -gt 0 ] || echo -e " -> Set HAVE_DOT to: $HAVEDOT";
if [ X"$HAVEDOT" == "XYes" ] ; then
[ $QUIETMODE -gt 0 ] || echo -e " -> Set DOT_PATH to: $DOTPATH";
fi
get_language;
[ $QUIETMODE -gt 0 ] || echo -e " -> Set OUTPUT_LANGUAGE to: $OUPUTLANGUAGE";
get_projectname;
[ $QUIETMODE -gt 0 ] || echo -e " -> Set PROJECT_NAME to: $PROJECTNAME";
get_version;
[ $QUIETMODE -gt 0 ] || echo -e " -> Set PROJECT_NUMBER to: $VERSION";
#------------------------------------------------------------------------
# Got everything we need, now write the DoxyConfig file and run doxygen
#------------------------------------------------------------------------
# Clean up first
clean_up;
# Put the images & reference pages in the right place
move_stuff;
if [ $RETVAL -ge 666 ] ; then
exit 666;
fi
# Generate the config file
gen_doxyconfig;
if [ $RETVAL -gt 0 ] ; then
echo -e "Error: You are missing critical files."
exit RETVAL;
fi
# build the reference page and the index
build_extra_html;
# Generate documentation
RETVAL=0;
run_doxygen;
if [ $RETVAL -gt 0 ] ; then
echo -e "Doxygen error: returned $RETVAL";
echo -e " Check doxygen.log for details";
elif [ $RETVAL -lt 0 ] ; then
echo -e "Doxygen error: Doxygen returned $RETVAL";
fi
# if the log file is empty, remove it
if [ ! -s ./doxygen.log ] ; then
rm -f ./doxygen.log
fi
#------------------------------------------------------------------------
# Done.
#------------------------------------------------------------------------
[ $QUIETMODE -gt 0 ] || echo -e "Finished...";
[ $QUIETMODE -gt 0 ] || echo -e "Duration: $SECONDS seconds\n";
# echo -e "** Removing output while in debug mode **";
# echo -e "** Output dir: $OUTPUTDIR **\n";
# rm -rf $OUTPUTDIR
exit 0;