From d3f0da06ebba7d4e3571cc4dbd787069ace1c8a1 Mon Sep 17 00:00:00 2001 From: Andrea Ponza Date: Sat, 28 Mar 2020 19:37:25 +0100 Subject: [PATCH] add a stamp file to build documentation once --- doc/doxygen/.gitignore | 1 + doc/doxygen/CMakeLists.txt | 21 +++++++++++++++++++-- 2 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 doc/doxygen/.gitignore diff --git a/doc/doxygen/.gitignore b/doc/doxygen/.gitignore new file mode 100644 index 00000000000..695b5edf900 --- /dev/null +++ b/doc/doxygen/.gitignore @@ -0,0 +1 @@ +pcl.tag diff --git a/doc/doxygen/CMakeLists.txt b/doc/doxygen/CMakeLists.txt index 831bbe8e4d1..c2eff7b03b3 100644 --- a/doc/doxygen/CMakeLists.txt +++ b/doc/doxygen/CMakeLists.txt @@ -37,11 +37,28 @@ endif() set(STRIPPED_HEADERS "${PCL_SOURCE_DIR}/${PCL_MODULES_NAMES}/include") string(REPLACE ";" "/include \\\n ${PCL_SOURCE_DIR}/" STRIPPED_HEADERS "${STRIPPED_HEADERS}") -set(DOC_SOURCE_DIR "\"${PCL_SOURCE_DIR}\"\\") +set(DOC_SOURCE_DIR "${PCL_SOURCE_DIR}") file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/html") set(doxyfile "${CMAKE_CURRENT_BINARY_DIR}/doxyfile") configure_file("${CMAKE_CURRENT_SOURCE_DIR}/doxyfile.in" "${doxyfile}") -add_custom_target(doc ALL "${DOXYGEN_EXECUTABLE}" "${doxyfile}") + +# The following process to use a stamp file is customized from the CMake 3.16.5 `doxygen_add_docs` command +set(STAMP_FILE "${CMAKE_CURRENT_BINARY_DIR}/doc.stamp") +add_custom_command( + VERBATIM + OUTPUT ${STAMP_FILE} + COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR} + COMMAND "${DOXYGEN_EXECUTABLE}" "${doxyfile}" + COMMAND ${CMAKE_COMMAND} -E touch ${STAMP_FILE} + WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" + DEPENDS "${doxyfile}" ${DOC_SOURCE_DIR} + COMMENT "Generate stamp file for target doc" +) +add_custom_target(doc ALL + DEPENDS ${STAMP_FILE} + SOURCES ${DOC_SOURCE_DIR} +) + set_target_properties(doc PROPERTIES FOLDER "Documentation (Doxygen)") if(DOCUMENTATION_HTML_HELP STREQUAL YES) install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/html"