Blame doc/CMakeLists.txt

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