-FIND_PACKAGE(Doxygen REQUIRED)
-
-# The Doxyfile.dox is poorly defined and produce output
-# in the source dir
-ADD_CUSTOM_TARGET(doxygen
-# By default doxygen target is added to the 'all' target. Project is small
-# thus running doxygen is not too time consuming
- ALL
- ${DOXYGEN}
- ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.dox
- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
-)
+# Generate target to build the html documentation through CMake tool
+# After having configured the project with the BUILD_DOC option you can run make doc
+# to generate the html documentation in the doc/html repository of the build folder.
+
+# Try to find the doxygen tool
+FIND_PACKAGE(Doxygen)
+
+IF(DOXYGEN_FOUND)
+ # Configure the doxygen config file with variable from CMake and move it
+ CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.dox.cmake.in
+ ${CMAKE_BINARY_DIR}/doc/Doxyfile-html.dox @ONLY)
+
+ # Configure the html mainpage file of the doxygen documentation with variable
+ # from CMake and move it
+ CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/mainpage.dox.cmake
+ ${CMAKE_BINARY_DIR}/doc/mainpage.dox @ONLY)
+
+ # Generate new target to build the html documentation
+ ADD_CUSTOM_TARGET(doc ALL
+ ${DOXYGEN_EXECUTABLE} ${CMAKE_BINARY_DIR}/doc/Doxyfile-html.dox)
+
+ELSE(DOXYGEN_FOUND)
+
+ MESSAGE(STATUS "Doxygen not found, we cannot generate the documentation")
+
+ENDIF(DOXYGEN_FOUND)