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 )
2021-11-11 23:41:58 +00:00
# cmake-format: off
2019-03-18 05:52:32 +00:00
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
2021-11-11 23:41:58 +00:00
# cmake-format: on
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
2021-11-23 19:37:52 +00:00
# copy the schemas
2021-11-11 23:41:58 +00:00
configure_file (
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / e x a m p l e _ c o n f i g s / c o n f i g _ v 0 . s c h e m a . j s o n
$ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / h t m l / c o n f i g _ v 0 . s c h e m a . j s o n @ O N L Y
)
configure_file (
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / e x a m p l e _ c o n f i g s / c o n f i g _ v 0 . s c h e m a . j s o n . l i c e n s e
$ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / h t m l / c o n f i g _ v 0 . s c h e m a . j s o n . l i c e n s e @ O N L Y
)
2021-11-23 19:37:52 +00:00
configure_file (
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / e x a m p l e _ c o n f i g s / c a l i b r a t i o n _ v 2 . s c h e m a . j s o n
$ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / h t m l / c a l i b r a t i o n _ v 2 . s c h e m a . j s o n @ O N L Y
)
configure_file (
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / e x a m p l e _ c o n f i g s / c a l i b r a t i o n _ v 2 . s c h e m a . j s o n . l i c e n s e
$ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / h t m l / c a l i b r a t i o n _ v 2 . s c h e m a . j s o n . l i c e n s e @ O N L Y
)
2021-04-23 22:25:07 +00:00
2020-04-29 08:12:19 +00:00
# note the option ALL which allows to build the docs together with the application
2021-11-11 23:41:58 +00:00
add_custom_target (
d o c _ d o x y g e n A L L
2020-04-29 08:12:19 +00:00
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 ( )