f3724f7488
Building the documentation need not depend on building the library. This change can speed up changing, building, and viewing modified docs.
151 lines
3.4 KiB
CMake
151 lines
3.4 KiB
CMake
#
|
|
# "$Id$"
|
|
#
|
|
# CMakeLists.txt to build docs for the FLTK project using CMake (www.cmake.org)
|
|
#
|
|
# Copyright 1998-2020 by Bill Spitzak and others.
|
|
#
|
|
# This library is free software. Distribution and use rights are outlined in
|
|
# the file "COPYING" which should have been included with this file. If this
|
|
# file is missing or damaged, see the license at:
|
|
#
|
|
# https://www.fltk.org/COPYING.php
|
|
#
|
|
# Please report all bugs and problems on the following page:
|
|
#
|
|
# https://www.fltk.org/str.php
|
|
#
|
|
|
|
set (DOCS)
|
|
|
|
set (FL_VERSION "${FLTK_VERSION_FULL}")
|
|
|
|
if (OPTION_INCLUDE_DRIVER_DOCUMENTATION)
|
|
set (DRIVER_DOCS "DriverDev")
|
|
else ()
|
|
set (DRIVER_DOCS "")
|
|
endif ()
|
|
|
|
#--------------------------
|
|
# build html documentation
|
|
#--------------------------
|
|
|
|
if (OPTION_BUILD_HTML_DOCUMENTATION)
|
|
|
|
list(APPEND DOCS html)
|
|
|
|
# generate Doxygen file "Doxyfile"
|
|
|
|
set(GENERATE_HTML YES)
|
|
set(GENERATE_LATEX NO)
|
|
set(LATEX_HEADER "")
|
|
|
|
configure_file(
|
|
${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in
|
|
${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
|
|
@ONLY
|
|
)
|
|
|
|
configure_file(
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src/tiny.png
|
|
${CMAKE_CURRENT_BINARY_DIR}/html/tiny.png
|
|
COPYONLY
|
|
)
|
|
|
|
# generate html docs
|
|
|
|
add_custom_target(html
|
|
# ALL
|
|
${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
|
|
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
|
COMMENT "Generating HTML documentation" VERBATIM
|
|
)
|
|
|
|
endif (OPTION_BUILD_HTML_DOCUMENTATION)
|
|
|
|
#--------------------------
|
|
# build pdf documentation
|
|
#--------------------------
|
|
|
|
if (OPTION_BUILD_PDF_DOCUMENTATION)
|
|
|
|
list(APPEND DOCS pdf)
|
|
|
|
# generate Doxygen file "Doxybook"
|
|
|
|
set(GENERATE_HTML NO)
|
|
set(GENERATE_LATEX YES)
|
|
set(LATEX_HEADER "${CMAKE_CURRENT_BINARY_DIR}/fltk-book.tex")
|
|
|
|
configure_file(
|
|
${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in
|
|
${CMAKE_CURRENT_BINARY_DIR}/Doxybook
|
|
@ONLY
|
|
)
|
|
|
|
# generate LaTeX header fltk-book.tex
|
|
|
|
set(FL_VERSION ${FLTK_VERSION_FULL})
|
|
set(DOXY_VERSION ${DOXYGEN_VERSION})
|
|
execute_process(COMMAND date +%Y
|
|
OUTPUT_VARIABLE YEAR
|
|
)
|
|
|
|
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/fltk-book.tex.in
|
|
${CMAKE_CURRENT_BINARY_DIR}/fltk-book.tex
|
|
@ONLY
|
|
)
|
|
|
|
# generate fltk.pdf
|
|
|
|
add_custom_command(
|
|
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/fltk.pdf
|
|
COMMAND ${DOXYGEN_EXECUTABLE} Doxybook
|
|
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/make_pdf
|
|
COMMAND cp -f latex/refman.pdf fltk.pdf
|
|
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
|
COMMENT "Generating PDF documentation" VERBATIM
|
|
)
|
|
|
|
# add target 'pdf'
|
|
|
|
add_custom_target(pdf
|
|
# ALL
|
|
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/fltk.pdf
|
|
)
|
|
|
|
endif(OPTION_BUILD_PDF_DOCUMENTATION)
|
|
|
|
#----------------------------------
|
|
# add target 'docs' for all docs
|
|
#----------------------------------
|
|
|
|
if (DOCS)
|
|
|
|
add_custom_target(docs
|
|
# ALL
|
|
DEPENDS ${DOCS}
|
|
)
|
|
|
|
endif (DOCS)
|
|
|
|
#----------------------------------
|
|
# install html + pdf documentation
|
|
#----------------------------------
|
|
|
|
if (OPTION_INSTALL_HTML_DOCUMENTATION AND OPTION_BUILD_HTML_DOCUMENTATION)
|
|
|
|
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html
|
|
DESTINATION ${FLTK_DATADIR}/doc/fltk
|
|
)
|
|
|
|
endif (OPTION_INSTALL_HTML_DOCUMENTATION AND OPTION_BUILD_HTML_DOCUMENTATION)
|
|
|
|
if (OPTION_INSTALL_PDF_DOCUMENTATION AND OPTION_BUILD_PDF_DOCUMENTATION)
|
|
|
|
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/fltk.pdf
|
|
DESTINATION ${FLTK_DATADIR}/doc/fltk/
|
|
)
|
|
|
|
endif (OPTION_INSTALL_PDF_DOCUMENTATION AND OPTION_BUILD_PDF_DOCUMENTATION)
|