Blame doc/CMakeLists.txt

Packit 1c1d7e
# vim:ts=4:sw=4:expandtab:autoindent:
Packit 1c1d7e
#
Packit 1c1d7e
# Copyright (C) 1997-2015 by Dimitri van Heesch.
Packit 1c1d7e
#
Packit 1c1d7e
# Permission to use, copy, modify, and distribute this software and its
Packit 1c1d7e
# documentation under the terms of the GNU General Public License is hereby
Packit 1c1d7e
# granted. No representations are made about the suitability of this software
Packit 1c1d7e
# for any purpose. It is provided "as is" without express or implied warranty.
Packit 1c1d7e
# See the GNU General Public License for more details.
Packit 1c1d7e
#
Packit 1c1d7e
# Documents produced by Doxygen are derivative works derived from the
Packit 1c1d7e
# input used in their production; they are not affected by this license.
Packit 1c1d7e
Packit 1c1d7e
include (${TOP}/cmake/version.cmake)
Packit 1c1d7e
string(TIMESTAMP DATE "%d-%m-%Y")
Packit 1c1d7e
Packit 1c1d7e
find_package(PythonInterp REQUIRED)
Packit 1c1d7e
find_program(EPSTOPDF NAMES epstopdf )
Packit 1c1d7e
find_program(PDFLATEX NAMES pdflatex )
Packit 1c1d7e
find_program(MAKEINDEX NAMES makeindex )
Packit 1c1d7e
include(GNUInstallDirs)
Packit 1c1d7e
Packit 1c1d7e
if (doxygen_BINARY_DIR)
Packit 1c1d7e
    set(DOXYGEN_EXECUTABLE ${doxygen_BINARY_DIR}/bin/doxygen)
Packit 1c1d7e
else()
Packit 1c1d7e
    # when building only the doxygen_doc, from the doc/ directory, the
Packit 1c1d7e
    # doxygen project variables are unknown so look for doxygen in PATH
Packit 1c1d7e
    find_package(Doxygen)
Packit 1c1d7e
endif()
Packit 1c1d7e
Packit 1c1d7e
set(DOC_INSTALL_DIR "share/doc/packages/doxygen" CACHE STRING "Relative path where to install the documentation")
Packit 1c1d7e
set(DOC_FILES
Packit 1c1d7e
        arch.doc
Packit 1c1d7e
        archoverview.eps
Packit 1c1d7e
        archoverview.gif
Packit 1c1d7e
        autolink.doc
Packit 1c1d7e
        changelog.doc
Packit 1c1d7e
        commands.doc
Packit 1c1d7e
        custcmd.doc
Packit 1c1d7e
        customize.doc
Packit 1c1d7e
        diagrams.doc
Packit 1c1d7e
        docblocks.doc
Packit 1c1d7e
        Doxyfile
Packit 1c1d7e
        doxygen_manual.css
Packit 1c1d7e
        doxygen_usage.doc
Packit 1c1d7e
        doxywizard_expert.png
Packit 1c1d7e
        doxywizard.gif
Packit 1c1d7e
        doxywizard_main.png
Packit 1c1d7e
        doxywizard_menu.png
Packit 1c1d7e
        doxywizard_page1.png
Packit 1c1d7e
        doxywizard_page2.png
Packit 1c1d7e
        doxywizard_page3.png
Packit 1c1d7e
        doxywizard_page4.png
Packit 1c1d7e
        doxywizard_usage.doc
Packit 1c1d7e
        external.doc
Packit 1c1d7e
        extsearch.doc
Packit 1c1d7e
        extsearch_flow.dot
Packit 1c1d7e
        extsearch_flow.eps
Packit 1c1d7e
        extsearch_flow.png
Packit 1c1d7e
        faq.doc
Packit 1c1d7e
        features.doc
Packit 1c1d7e
        formulas.doc
Packit 1c1d7e
        tables.doc
Packit 1c1d7e
        grouping.doc
Packit 1c1d7e
        htmlcmds.doc
Packit 1c1d7e
        index.doc
Packit 1c1d7e
        index.hhp.txt
Packit 1c1d7e
        infoflow.eps
Packit 1c1d7e
        infoflow.fig
Packit 1c1d7e
        infoflow.png
Packit 1c1d7e
        install.doc
Packit 1c1d7e
        install_prefix
Packit 1c1d7e
        lists.doc
Packit 1c1d7e
        markdown.doc
Packit 1c1d7e
        output.doc
Packit 1c1d7e
        perlmod.doc
Packit 1c1d7e
        perlmod_tree.doc
Packit 1c1d7e
        preprocessing.doc
Packit 1c1d7e
        searching.doc
Packit 1c1d7e
        starting.doc
Packit 1c1d7e
        trouble.doc
Packit 1c1d7e
        xmlcmds.doc
Packit 1c1d7e
        language.tpl
Packit 1c1d7e
        maintainers.txt
Packit 1c1d7e
        translator.py
Packit 1c1d7e
)
Packit 1c1d7e
file(GLOB LANG_FILES "${TOP}/src/translator_??.h")
Packit 1c1d7e
Packit 1c1d7e
file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/man
Packit 1c1d7e
                    ${PROJECT_BINARY_DIR}/src
Packit 1c1d7e
                    ${PROJECT_BINARY_DIR}/doc)
Packit 1c1d7e
Packit 1c1d7e
file(COPY ${TOP}/VERSION                  DESTINATION ${PROJECT_BINARY_DIR}/)
Packit 1c1d7e
file(COPY ${TOP}/src/translator.h         DESTINATION ${PROJECT_BINARY_DIR}/src/)
Packit 1c1d7e
file(COPY ${TOP}/src/translator_adapter.h DESTINATION ${PROJECT_BINARY_DIR}/src/)
Packit 1c1d7e
file(COPY ${LANG_FILES}                   DESTINATION ${PROJECT_BINARY_DIR}/src/)
Packit 1c1d7e
Packit 1c1d7e
foreach (f  ${DOC_FILES})
Packit 1c1d7e
add_custom_command(OUTPUT ${PROJECT_BINARY_DIR}/doc/${f}
Packit 1c1d7e
    COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/doc/${f} ${PROJECT_BINARY_DIR}/doc/
Packit 1c1d7e
    DEPENDS ${CMAKE_SOURCE_DIR}/doc/${f}
Packit 1c1d7e
    )
Packit 1c1d7e
set_source_files_properties(${PROJECT_BINARY_DIR}/doc/${f} PROPERTIES GENERATED 1)
Packit 1c1d7e
list(APPEND OUT_DOC_FILES "${PROJECT_BINARY_DIR}/doc/${f}")
Packit 1c1d7e
endforeach()
Packit 1c1d7e
Packit 1c1d7e
configure_file(${CMAKE_SOURCE_DIR}/doc/manual.sty         ${PROJECT_BINARY_DIR}/doc/manual.sty)
Packit 1c1d7e
configure_file(${CMAKE_SOURCE_DIR}/doc/doxygen_manual.tex ${PROJECT_BINARY_DIR}/doc/doxygen_manual.tex)
Packit 1c1d7e
configure_file(${CMAKE_SOURCE_DIR}/doc/doxygen.1          ${PROJECT_BINARY_DIR}/man/doxygen.1)
Packit 1c1d7e
configure_file(${CMAKE_SOURCE_DIR}/doc/doxywizard.1       ${PROJECT_BINARY_DIR}/man/doxywizard.1)
Packit 1c1d7e
configure_file(${CMAKE_SOURCE_DIR}/doc/doxysearch.1       ${PROJECT_BINARY_DIR}/man/doxysearch.1)
Packit 1c1d7e
configure_file(${CMAKE_SOURCE_DIR}/doc/doxyindexer.1      ${PROJECT_BINARY_DIR}/man/doxyindexer.1)
Packit 1c1d7e
Packit 1c1d7e
# doc/language.doc (see tag Doxyfile:INPUT)
Packit 1c1d7e
add_custom_command(
Packit 1c1d7e
        COMMAND ${PYTHON_EXECUTABLE} translator.py
Packit 1c1d7e
        DEPENDS ${PROJECT_BINARY_DIR}/doc/maintainers.txt ${PROJECT_BINARY_DIR}/doc/language.tpl ${PROJECT_BINARY_DIR}/doc/translator.py
Packit 1c1d7e
        OUTPUT language.doc
Packit 1c1d7e
        WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/doc
Packit 1c1d7e
)
Packit 1c1d7e
set_source_files_properties(language.doc PROPERTIES GENERATED 1)
Packit 1c1d7e
Packit 1c1d7e
# doc/config.doc (see tag Doxyfile:INPUT)
Packit 1c1d7e
add_custom_command(
Packit 1c1d7e
        COMMAND ${PYTHON_EXECUTABLE}  ${TOP}/src/configgen.py -doc ${TOP}/src/config.xml > config.doc
Packit 1c1d7e
        DEPENDS ${TOP}/src/config.xml ${TOP}/src/configgen.py
Packit 1c1d7e
        OUTPUT config.doc
Packit 1c1d7e
        WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/doc/
Packit 1c1d7e
)
Packit 1c1d7e
set_source_files_properties(config.doc PROPERTIES GENERATED 1)
Packit 1c1d7e
################################################################################
Packit 1c1d7e
add_custom_target(run_doxygen
Packit 1c1d7e
        COMMENT "Generating Latex and HTML documentation."
Packit 1c1d7e
        COMMAND ${DOXYGEN_EXECUTABLE}
Packit 1c1d7e
        DEPENDS ${PROJECT_BINARY_DIR}/doc/language.doc ${PROJECT_BINARY_DIR}/doc/config.doc
Packit 1c1d7e
        DEPENDS ${OUT_DOC_FILES}
Packit 1c1d7e
        DEPENDS examples
Packit 1c1d7e
        DEPENDS doxygen
Packit 1c1d7e
        WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/doc/
Packit 1c1d7e
)
Packit 1c1d7e
Packit 1c1d7e
add_custom_target(doxygen_pdf
Packit 1c1d7e
        COMMENT "Generating Doxygen Manual PDF."
Packit 1c1d7e
        COMMAND ${CMAKE_COMMAND} -E remove refman.tex
Packit 1c1d7e
        COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_BINARY_DIR}/doc/doxygen_manual.tex  .
Packit 1c1d7e
        COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_BINARY_DIR}/doc/manual.sty  .
Packit 1c1d7e
        COMMAND ${EPSTOPDF} ${CMAKE_SOURCE_DIR}/doc/doxygen_logo.eps --outfile=doxygen_logo.pdf
Packit 1c1d7e
        COMMAND ${PDFLATEX}  -shell-escape doxygen_manual.tex
Packit 1c1d7e
        COMMAND ${MAKEINDEX} doxygen_manual.idx
Packit 1c1d7e
        COMMAND ${PDFLATEX}  -shell-escape doxygen_manual.tex
Packit 1c1d7e
        DEPENDS run_doxygen
Packit 1c1d7e
        WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/latex
Packit 1c1d7e
)
Packit 1c1d7e
add_custom_target(docs
Packit 1c1d7e
        COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/doc/doxygen_logo.gif      ${PROJECT_BINARY_DIR}/html/
Packit 1c1d7e
        COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/doc/doxygen_logo_low.gif  ${PROJECT_BINARY_DIR}/html/
Packit 1c1d7e
        DEPENDS ${PROJECT_BINARY_DIR}/man/doxygen.1
Packit 1c1d7e
                ${PROJECT_BINARY_DIR}/man/doxywizard.1
Packit 1c1d7e
                ${PROJECT_BINARY_DIR}/man/doxysearch.1
Packit 1c1d7e
                ${PROJECT_BINARY_DIR}/man/doxyindexer.1
Packit 1c1d7e
                doxygen_pdf
Packit 1c1d7e
        VERBATIM
Packit 1c1d7e
        )
Packit 1c1d7e
Packit 1c1d7e
################################################################################
Packit 1c1d7e
install(FILES
Packit 1c1d7e
        "${PROJECT_BINARY_DIR}/man/doxygen.1"
Packit 1c1d7e
        "${PROJECT_BINARY_DIR}/man/doxywizard.1"
Packit 1c1d7e
        "${PROJECT_BINARY_DIR}/man/doxysearch.1"
Packit 1c1d7e
        "${PROJECT_BINARY_DIR}/man/doxyindexer.1"
Packit 1c1d7e
        DESTINATION ${CMAKE_INSTALL_MANDIR}/man1
Packit 1c1d7e
)
Packit 1c1d7e
Packit 1c1d7e
install(FILES
Packit 1c1d7e
        "${PROJECT_BINARY_DIR}/latex/doxygen_manual.pdf"
Packit 1c1d7e
        DESTINATION "${CMAKE_INSTALL_PREFIX}/${DOC_INSTALL_DIR}"
Packit 1c1d7e
)
Packit 1c1d7e
Packit 1c1d7e
install(DIRECTORY
Packit 1c1d7e
        "${PROJECT_BINARY_DIR}/html"
Packit 1c1d7e
        DESTINATION "${CMAKE_INSTALL_PREFIX}/${DOC_INSTALL_DIR}"
Packit 1c1d7e
)