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 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151
|
# - CLuceneDocs.cmake
# This file provides support for building the CLucene Documentation.
# To build the documention, you will have to enable it
# and then do the equivalent of "make doc".
OPTION(ENABLE_CLDOCS "Build the clucene documentation." OFF)
MACRO(SET_YESNO)
FOREACH(param ${ARGV})
IF ( ${param} )
SET(${param} "YES")
ELSE ( ${param} )
SET(${param} "NO")
ENDIF ( ${param} )
ENDFOREACH(param)
ENDMACRO(SET_YESNO)
MACRO(SET_BLANK)
FOREACH(param ${ARGV})
IF ( NOT ${param} )
SET(${param} "")
ENDIF ( NOT ${param} )
ENDFOREACH(param)
ENDMACRO(SET_BLANK)
IF (ENABLE_CLDOCS)
OPTION(CLDOCS_HTML_HELP
"Doxygen should compile HTML into a Help file (CHM)." NO)
OPTION(CLDOCS_HTML
"Doxygen should build HTML documentation." YES)
OPTION(CLDOCS_XML
"Doxygen should build XML documentation." NO)
OPTION(CLDOCS_RTF
"Doxygen should build RTF documentation." NO)
OPTION(CLDOCS_MAN
"Doxygen should build man documentation." NO)
OPTION(CLDOCS_TAGFILE
"Doxygen should build a tagfile." NO)
OPTION(CLDOCS_LATEX
"Doxygen should build Latex documentation." NO )
MARK_AS_ADVANCED(
CLDOCS_HTML_HELP
CLDOCS_LATEX
CLDOCS_XML
CLDOCS_HTML
CLDOCS_RTF
CLDOCS_MAN
CLDOCS_TAGFILE
)
#
# Check for the tools
#
FIND_PACKAGE(Doxygen)
IF ( DOXYGEN_FOUND )
# This creates a new target to build documentation.
# It runs ${DOXYGEN_EXECUTABLE} which is the full path and executable to
# Doxygen on your system, set by the FindDoxygen.cmake module
# (called by FindDocumentation.cmake).
# It runs the final generated Doxyfile against it.
# The DOT_PATH is substituted into the Doxyfile.
ADD_CUSTOM_TARGET(doc
${DOXYGEN_EXECUTABLE} ${PROJECT_BINARY_DIR}/doc/doxyfile
)
IF ( CLDOCS_HTML_HELP )
IF ( NOT CLDOCS_HTML )
MESSAGE ( FATAL_ERROR "CLDOCS_HTML is required to buidl CLDOCS_HTML_HELP" )
ENDIF ( NOT CLDOCS_HTML )
FIND_PACKAGE(HTMLHelp)
IF ( NOT HTML_HELP_COMPILER )
MESSAGE(FATAL_ERROR "HTML Help compiler not found, turn CLDOCS_HTML_HELP off to proceed")
ENDIF ( NOT HTML_HELP_COMPILER )
#make cygwin work with hhc...
IF ( CYGWIN )
EXECUTE_PROCESS ( COMMAND cygpath "${HTML_HELP_COMPILER}"
OUTPUT_VARIABLE HTML_HELP_COMPILER_EX )
STRING ( REPLACE "\n" "" HTML_HELP_COMPILER_EX ${HTML_HELP_COMPILER_EX} )
STRING ( REPLACE "\r" "" HTML_HELP_COMPILER_EX ${HTML_HELP_COMPILER_EX} )
SET ( HTML_HELP_COMPILER_EX "\"${HTML_HELP_COMPILER_EX}\"" )
ELSE ( CYGWIN )
SET ( HTML_HELP_COMPILER_EX ${HTML_HELP_COMPILER} )
ENDIF ( CYGWIN )
ENDIF ( CLDOCS_HTML_HELP )
IF ( CLDOCS_LATEX )
FIND_PACKAGE(LATEX)
IF ( NOT LATEX_COMPILER )
MESSAGE(FATAL_ERROR "Latex compiler not found, turn CLDOCS_LATEX off to proceed")
ENDIF ( NOT LATEX_COMPILER )
ENDIF ( CLDOCS_LATEX )
FIND_PACKAGE(Perl)
IF ( DOXYGEN_DOT_EXECUTABLE )
SET ( HAVE_DOT "YES" )
ELSE ( DOXYGEN_DOT_EXECUTABLE )
SET ( HAVE_DOT "NO" )
ENDIF ( DOXYGEN_DOT_EXECUTABLE )
#doxygen expects YES/NO parameters
SET_YESNO(
CLDOCS_HTML_HELP
CLDOCS_LATEX
CLDOCS_XML
CLDOCS_HTML
CLDOCS_RTF
CLDOCS_MAN
)
#empty out paths if not found
SET_BLANK(
PERL_EXECUTABLE
DOXYGEN_DOT_EXECUTABLE
HTML_HELP_COMPILER
LATEX_COMPILER
)
IF ( CLDOCS_TAGFILE )
SET ( CLDOCS_TAGFILE_LOCATION "${PROJECT_BINARY_DIR}/doc/tag/clucene.tag" )
ENDIF ( CLDOCS_TAGFILE )
# This processes our Doxyfile.cmake and substitutes paths to generate a final Doxyfile
CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/doc/Doxyfile.cmake ${PROJECT_BINARY_DIR}/doc/doxyfile )
CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/doc/helpheader.htm.cmake ${PROJECT_BINARY_DIR}/doc/helpheader.htm )
CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/doc/helpfooter.htm.cmake ${PROJECT_BINARY_DIR}/doc/helpfooter.htm )
CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/doc/doxygen.css.cmake ${PROJECT_BINARY_DIR}/doc/html/doxygen.css )
#create a target for tar.gz html help
FIND_PACKAGE(UnixCommands)
IF ( TAR AND GZIP )
ADD_CUSTOM_TARGET(doc-tarz
COMMAND "${TAR}" "-cf" "doc/clucene-core-doc.tar" "${PROJECT_BINARY_DIR}/doc/html/"
COMMAND "${GZIP}" "doc/clucene-core-doc.tar"
#DEPENDS doc-doxygen
)
ENDIF ( TAR AND GZIP )
#install man if it was built
IF ( CLDOCS_MAN )
INSTALL(DIRECTORY ${PROJECT_BINARY_DIR}/doc/man/ DESTINATION man)
ENDIF ( CLDOCS_MAN )
ELSE ( DOXYGEN_FOUND )
MESSAGE(FATAL_ERROR "Doxygen not found, turn ENABLE_CLDOCS off to proceed")
ENDIF ( DOXYGEN_FOUND )
ENDIF (ENABLE_CLDOCS)
|