mirror of
				https://git.tukaani.org/xz.git
				synced 2025-10-26 19:12:59 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			115 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			115 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| # SPDX-License-Identifier: 0BSD
 | |
| 
 | |
| #############################################################################
 | |
| #
 | |
| # While it's possible to use the Doxyfile as is to generate liblzma API
 | |
| # documentation, it is recommended to use this script because this adds
 | |
| # the XZ Utils version number to the generated HTML.
 | |
| #
 | |
| # Other features:
 | |
| #  - Generate documentation of the XZ Utils internals.
 | |
| #  - Set input and output paths for out-of-tree builds.
 | |
| #
 | |
| #############################################################################
 | |
| #
 | |
| # Authors: Jia Tan
 | |
| #          Lasse Collin
 | |
| #
 | |
| #############################################################################
 | |
| 
 | |
| set -e
 | |
| 
 | |
| show_usage()
 | |
| {
 | |
| 	echo "Usage: $0 <api|internal> [ABS_TOP_SRCDIR ABS_OUTDIR]"
 | |
| 	echo
 | |
| 	echo "Supported modes:"
 | |
| 	echo " - 'api' (default): liblzma API docs into doc/api"
 | |
| 	echo " - 'internal': internal docs into doc/internal"
 | |
| 	echo
 | |
| 	echo "Absolute source and output dirs may be set" \
 | |
| 		"to do an out-of-tree build."
 | |
| 	echo "The output directory must already exist."
 | |
| 	exit 1
 | |
| }
 | |
| 
 | |
| case $1 in
 | |
| 	api|internal)
 | |
| 		;;
 | |
| 	*)
 | |
| 		show_usage
 | |
| 		;;
 | |
| esac
 | |
| 
 | |
| if type doxygen > /dev/null 2>&1; then
 | |
| 	:
 | |
| else
 | |
| 	echo "$0: 'doxygen' command not found" >&2
 | |
| 	exit 1
 | |
| fi
 | |
| 
 | |
| case $# in
 | |
| 	1)
 | |
| 		# One argument: Building inside the source tree
 | |
| 		ABS_TOP_SRCDIR=`dirname "$0"`/..
 | |
| 		ABS_OUTDIR=$ABS_TOP_SRCDIR/doc
 | |
| 		;;
 | |
| 	3)
 | |
| 		# Three arguments: Possibly an out of tree build
 | |
| 		ABS_TOP_SRCDIR=$2
 | |
| 		ABS_OUTDIR=$3
 | |
| 		;;
 | |
| 	*)
 | |
| 		show_usage
 | |
| 		;;
 | |
| esac
 | |
| 
 | |
| if test ! -f "$ABS_TOP_SRCDIR/doxygen/Doxyfile"; then
 | |
| 	echo "$0: Source dir '$ABS_TOP_SRCDIR/doxygen/Doxyfile' not found" >&2
 | |
| 	exit 1
 | |
| fi
 | |
| if test ! -d "$ABS_OUTDIR"; then
 | |
| 	echo "$0: Output dir '$ABS_OUTDIR' not found" >&2
 | |
| 	exit 1
 | |
| fi
 | |
| 
 | |
| # Get the package version so that it can be included in the generated docs.
 | |
| PACKAGE_VERSION=`cd "$ABS_TOP_SRCDIR" && sh build-aux/version.sh`
 | |
| 
 | |
| case $1 in
 | |
| 	api)
 | |
| 		# Remove old documentation before re-generating the new.
 | |
| 		rm -rf "$ABS_OUTDIR/api"
 | |
| 
 | |
| 		# Generate the HTML documentation by preparing the Doxyfile
 | |
| 		# in stdin and piping the result to the doxygen command.
 | |
| 		# With Doxygen, the last assignment of a value to a tag will
 | |
| 		# override any earlier assignment. So, we can use this
 | |
| 		# feature to override the tags that need to change between
 | |
| 		# "api" and "internal" modes.
 | |
| 		ABS_SRCDIR=$ABS_TOP_SRCDIR/src/liblzma/api
 | |
| 		(
 | |
| 			cat "$ABS_TOP_SRCDIR/doxygen/Doxyfile"
 | |
| 			echo "PROJECT_NUMBER         = $PACKAGE_VERSION"
 | |
| 			echo "OUTPUT_DIRECTORY       = $ABS_OUTDIR"
 | |
| 			echo "STRIP_FROM_PATH        = $ABS_SRCDIR"
 | |
| 			echo "INPUT                  = $ABS_SRCDIR"
 | |
| 		) | doxygen -q -
 | |
| 		;;
 | |
| 
 | |
| 	internal)
 | |
| 		rm -rf "$ABS_OUTDIR/internal"
 | |
| 		(
 | |
| 			cat "$ABS_TOP_SRCDIR/doxygen/Doxyfile"
 | |
| 			echo 'PROJECT_NAME           = "XZ Utils"'
 | |
| 			echo "PROJECT_NUMBER         = $PACKAGE_VERSION"
 | |
| 			echo "OUTPUT_DIRECTORY       = $ABS_OUTDIR"
 | |
| 			echo "STRIP_FROM_PATH        = $ABS_TOP_SRCDIR"
 | |
| 			echo "INPUT                  = $ABS_TOP_SRCDIR/src"
 | |
| 			echo 'HTML_OUTPUT            = internal'
 | |
| 			echo 'SEARCHENGINE           = YES'
 | |
| 		) | doxygen -q -
 | |
| 		;;
 | |
| esac
 |