File: AddDocumentation.cmake

package info (click to toggle)
wbxml2 0.11.8%2Bdfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 2,672 kB
  • sloc: ansic: 12,690; xml: 6,399; perl: 294; sh: 159; makefile: 7; cpp: 7
file content (76 lines) | stat: -rw-r--r-- 2,832 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# - InstallDocumentation.cmake
# Installs different types of documentation
#
# Copyright (c) 2008 Michael Bell  <michael.bell@web.de>
#
#  Redistribution and use is allowed according to the terms of the New
#  BSD license.
#  For details see the accompanying COPYING-CMAKE-SCRIPTS file.
#

INCLUDE( Documentation )

SET( SHARE_INSTALL_DIR    "${CMAKE_INSTALL_PREFIX}/share" CACHE INTERNAL "share location" )
SET( DOC_MAN_INSTALL_DIR  "${SHARE_INSTALL_DIR}/man" CACHE INTERNAL "man page location" )
SET( DOC_INSTALL_DIR      "${SHARE_INSTALL_DIR}/doc/${PROJECT_NAME}" CACHE INTERNAL "documentation location" )
SET( DOC_TEXT_INSTALL_DIR "${DOC_INSTALL_DIR}" CACHE INTERNAL "text documentation location" )
SET( DOC_HTML_INSTALL_DIR "${DOC_INSTALL_DIR}/html" CACHE INTERNAL "HTML documentation location" )

MACRO( ADD_DOCUMENTATION _formatName _fileType )

	# _formatName - HTML, TEXT, MAN
	# _fileType   - DIRECTORY, FILE
	# ARGN        - filenames

	# check _formatName

	STRING( TOUPPER ${_formatName} FORMAT_NAME )
	STRING( COMPARE EQUAL ${FORMAT_NAME} "HTML" FORMAT_IS_HTML )
	STRING( COMPARE EQUAL ${FORMAT_NAME} "TEXT" FORMAT_IS_TEXT )
	STRING( COMPARE EQUAL ${FORMAT_NAME} "MAN" FORMAT_IS_MAN )
	IF( NOT ${FORMAT_IS_HTML} AND NOT ${FORMAT_IS_TEXT} AND NOT ${FORMAT_IS_MAN} )
		MESSAGE( SEND_ERROR "ADD_DOCUMENTATION only support HTML, TEXT and MAN as formats." )
		RETURN()
	ENDIF( NOT ${FORMAT_IS_HTML} AND NOT ${FORMAT_IS_TEXT} AND NOT ${FORMAT_IS_MAN} )

	# check _fileType

	STRING( TOUPPER ${_fileType} FILE_TYPE )
	STRING( COMPARE EQUAL ${FILE_TYPE} "DIRECTORY" FILE_IS_DIRECTORY )
	STRING( COMPARE EQUAL ${FILE_TYPE} "FILE" FILE_IS_FILE )
	IF( NOT ${FILE_IS_DIRECTORY} AND NOT ${FILE_IS_FILE} )
		MESSAGE( SEND_ERROR "ADD_DOCUMENTATION only support DIRECTORY and FILE as file types." )
		RETURN()
	ENDIF( NOT ${FILE_IS_DIRECTORY} AND NOT ${FILE_IS_FILE} )

	# install HTML documenation

	IF( ${FORMAT_IS_HTML} )
		IF( ${FILE_IS_DIRECTORY} )
			INSTALL( DIRECTORY ${ARGN} DESTINATION ${DOC_HTML_INSTALL_DIR} )
		ELSE( ${FILE_IS_DIRECTORY} )
			INSTALL( FILES ${ARGN} DESTINATION ${DOC_HTML_INSTALL_DIR} )
		ENDIF( ${FILE_IS_DIRECTORY} )
	ENDIF( ${FORMAT_IS_HTML} )

	# install TEXT documenation

	IF( ${FORMAT_IS_TEXT} )
		IF( ${FILE_IS_DIRECTORY} )
			INSTALL( DIRECTORY ${ARGN} DESTINATION ${DOC_TEXT_INSTALL_DIR} )
		ELSE( ${FILE_IS_DIRECTORY} )
			INSTALL( FILES ${ARGN} DESTINATION ${DOC_TEXT_INSTALL_DIR} )
		ENDIF( ${FILE_IS_DIRECTORY} )
	ENDIF( ${FORMAT_IS_TEXT} )

	# install man pages

	IF( ${FORMAT_IS_MAN} )
		IF( ${FILE_IS_DIRECTORY} )
			INSTALL( DIRECTORY ${ARGN} DESTINATION ${DOC_MAN_INSTALL_DIR} )
		ELSE( ${FILE_IS_DIRECTORY} )
			INSTALL( FILES ${ARGN} DESTINATION ${DOC_MAN_INSTALL_DIR} )
		ENDIF( ${FILE_IS_DIRECTORY} )
	ENDIF( ${FORMAT_IS_MAN} )

ENDMACRO( ADD_DOCUMENTATION _formatName _fileType )