summaryrefslogtreecommitdiff
path: root/documentation/CMakeLists.txt
diff options
context:
space:
mode:
authorAlbrecht Schlosser <albrechts.fltk@online.de>2015-04-25 21:42:51 +0000
committerAlbrecht Schlosser <albrechts.fltk@online.de>2015-04-25 21:42:51 +0000
commit5f3f1c8bc6737b11ad3e484505126773b576d309 (patch)
tree6463f30cc7b90f10d4ea770611cb0a389da54d38 /documentation/CMakeLists.txt
parenta6a75b81d24b624b554a933732e98f8b076ded3c (diff)
[CMake] Add doxygen documentation generation (STR #3195).
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10720 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'documentation/CMakeLists.txt')
-rw-r--r--documentation/CMakeLists.txt138
1 files changed, 138 insertions, 0 deletions
diff --git a/documentation/CMakeLists.txt b/documentation/CMakeLists.txt
new file mode 100644
index 000000000..08a8493ab
--- /dev/null
+++ b/documentation/CMakeLists.txt
@@ -0,0 +1,138 @@
+#
+# "$Id$"
+#
+# CMakeLists.txt to build docs for the FLTK project using CMake (www.cmake.org)
+#
+# Copyright 1998-2015 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:
+#
+# http://www.fltk.org/COPYING.php
+#
+# Please report all bugs and problems on the following page:
+#
+# http://www.fltk.org/str.php
+#
+
+set (DOCS)
+
+#--------------------------
+# 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
+ )
+
+ # 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
+ DEPENDS fltk
+ )
+
+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
+ DEPENDS fltk
+ )
+
+ # 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_BINARY_DIR}/documentation/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_BINARY_DIR}/documentation/fltk.pdf
+ DESTINATION ${FLTK_DATADIR}/doc/fltk/
+ )
+
+endif(OPTION_INSTALL_PDF_DOCUMENTATION AND OPTION_BUILD_PDF_DOCUMENTATION)