| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- #! /bin/sh
- #
- # mkdocumentation
- #
- # Create reference documentation for a POCO release.
- #
- # Usage:
- # mkdocumentation [-u] [-t <reltag>] [-f <compfile>] {<component>}
- #
- # -u: Upload file to release repository.
- # -t: Specify release tag.
- # -f <compfile>: Component list file
- # -c <config>: Build using the given configuration
- # <components>: Additional components to include
- #
- # Environment:
- # $POCO_BASE: POCO base directory (e.g., "/cygdrive/p/poco-1.2")
- #
- # Prerequisites:
- # PocoDoc must be in PATH
- #
- if [ "$POCO_BASE" = "" ] ; then
- echo "Error: POCO_BASE not set."
- exit 1
- fi
- make=make
- include=`dirname $0`
- build=$POCO_BASE/stage/docbuild
- dist=$POCO_BASE/releases
- docConfig=""
- read version <$POCO_BASE/VERSION
- osname=`uname -s | tr ' ' '_'`
- osarch=`uname -m | tr ' ' '_'`
- comps=""
- specfile=""
- tag=""
- config=""
- while [ "$1" != "" ] ;
- do
- if [ "$1" = "-f" ] ; then
- shift
- specfile=$1
- shift
- elif [ "$1" = "-t" ] ; then
- shift
- tag=$1
- shift
- elif [ "$1" = "-c" ] ; then
- shift
- config=$1
- shift
- elif [ "$1" = "-C" ] ; then
- shift
- docConfig="$docConfig --config=$1"
- shift
- elif [ "$1" = "-v" ] ; then
- shift
- version=$1
- shift
- else
- comps="$comps $1"
- shift
- fi
- done
- if [ -z "$docConfig" ] ; then
- docConfig=$POCO_BASE/PocoDoc/cfg/mkdocumentation.xml
- fi
- if [ "$specfile" != "" ] ; then
- while read c
- do
- comps="$comps $c"
- done <$specfile
- fi
- allcomps="Foundation XML JSON Util Net $comps"
- #
- # Clean build directory
- #
- echo "Cleaning build directory: $build"
- rm -rf $build
- mkdir -p $build
- mkdir -p $dist
- #
- # Copy POCO sources into build directory
- #
- echo "Copying sources"
- mkrelease -o $build $version $comps
- #
- # Make all files writeable
- #
- chmod -R +w $build
- #
- # Generate documentation
- #
- echo "Generating documentation"
- # Create a PocoDoc configuration file
- docVersion=$version
- if [ $tag ] ; then
- docVersion="$docVersion-$tag"
- fi
- docPath=$dist/poco-${docVersion}-doc
- includes=""
- for inc in `find $build -name include -print` ; do
- includes="$includes,-I$inc"
- done
- : ${CC:=gcc}
- : ${CXX:=g++}
- : ${CXXFLAGS:=-std=c++17}
- echo "CC=$CC" >>$build/PocoDoc.ini
- echo "CXX=$CXX" >>$build/PocoDoc.ini
- echo "CXXFLAGS=$CXXFLAGS" >>$build/PocoDoc.ini
- echo "PocoBuild=$build" >>$build/PocoDoc.ini
- echo "PocoBase=$POCO_BASE" >>$build/PocoDoc.ini
- echo "PocoDoc.output=$docPath" >>$build/PocoDoc.ini
- echo "PocoDoc.version=$docVersion" >> $build/PocoDoc.ini
- echo "Includes=$includes" >> $build/PocoDoc.ini
- PocoDoc $docConfig --config=$build/PocoDoc.ini
- cd $dist
- chmod -R ugo+rw poco-${docVersion}-doc
- chmod -R go+r poco-${docVersion}-doc
- tar cf poco-${docVersion}-doc.tar poco-${docVersion}-doc
- gzip -f poco-${docVersion}-doc.tar
- if [ -x /usr/bin/zip ] ; then
- /usr/bin/zip -r -q poco-${docVersion}-doc.zip poco-${docVersion}-doc
- fi
- echo "Done."
|