2020-03-23 20:28:53 +00:00
# Copyright 2018-2020, Collabora, Ltd.
2019-03-18 05:52:32 +00:00
# SPDX-License-Identifier: BSL-1.0
# check if Doxygen is installed
find_package ( Doxygen )
cmake_dependent_option ( BUILD_DOC "Build documentation" ON "DOXYGEN_FOUND" OFF )
cmake_dependent_option ( BUILD_DOC_WARN_UNDOCUMENTED "Warn on undocumented entities when building documentation" OFF "DOXYGEN_FOUND" OFF )
2020-04-29 23:11:43 +00:00
cmake_dependent_option ( BUILD_DOC_EXTRACT_ALL "Extract all entities for documentation, not just documented ones (conflicts with BUILD_DOC_WARN_UNDOCUMENTED)" ON "DOXYGEN_FOUND AND NOT BUILD_DOC_WARN_UNDOCUMENTED" OFF )
2019-03-18 05:52:32 +00:00
if ( BUILD_DOC )
2020-04-29 08:12:19 +00:00
if ( BUILD_DOC_WARN_UNDOCUMENTED )
set ( DOXYGEN_WARN_UNDOCUMENTED YES )
else ( )
set ( DOXYGEN_WARN_UNDOCUMENTED NO )
endif ( )
if ( BUILD_DOC_EXTRACT_ALL )
set ( DOXYGEN_EXTRACT_ALL YES )
else ( )
set ( DOXYGEN_EXTRACT_ALL NO )
endif ( )
2019-03-18 05:52:32 +00:00
2020-04-29 08:12:19 +00:00
# set input and output files
set ( DOXYGEN_IN ${ CMAKE_CURRENT_SOURCE_DIR } /Doxyfile.in )
set ( DOXYGEN_OUT ${ CMAKE_CURRENT_BINARY_DIR } /Doxyfile )
2019-03-18 05:52:32 +00:00
2020-04-29 08:12:19 +00:00
set ( CURBUILDDIR ${ CMAKE_CURRENT_BINARY_DIR } )
set ( SRCDIR ${ PROJECT_SOURCE_DIR } )
set ( BUILDDIR ${ PROJECT_BINARY_DIR } )
# request to configure the file
configure_file ( ${ DOXYGEN_IN } ${ DOXYGEN_OUT } @ONLY )
2019-03-18 05:52:32 +00:00
2020-04-29 08:12:19 +00:00
# note the option ALL which allows to build the docs together with the application
add_custom_target ( doc_doxygen ALL
C O M M A N D $ { D O X Y G E N _ E X E C U T A B L E } $ { D O X Y G E N _ O U T }
W O R K I N G _ D I R E C T O R Y $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R }
C O M M E N T " G e n e r a t i n g A P I d o c u m e n t a t i o n w i t h D o x y g e n "
V E R B A T I M
)
2019-03-18 05:52:32 +00:00
endif ( )