diff options
author | Robert Dailey <rcdailey@gmail.com> | 2017-06-30 14:29:49 (GMT) |
---|---|---|
committer | Robert Dailey <rcdailey@gmail.com> | 2017-07-06 15:00:28 (GMT) |
commit | 796b8fcb14072bef72fe324015c0a62e2006b0db (patch) | |
tree | 5c21c3174df472e72a8e20388336072755d4ddce /Modules/FindDoxygen.cmake | |
parent | cf9a994d9a53db02d8ddaa2bf3f9da0bc8f6f19b (diff) | |
download | CMake-796b8fcb14072bef72fe324015c0a62e2006b0db.zip CMake-796b8fcb14072bef72fe324015c0a62e2006b0db.tar.gz CMake-796b8fcb14072bef72fe324015c0a62e2006b0db.tar.bz2 |
FindDoxygen: Create DOXYGEN_OUTPUT_DIRECTORY if it doesn't exist
If the doxygen output directory does not exist, create it prior to
running the doxygen commands.
Diffstat (limited to 'Modules/FindDoxygen.cmake')
-rw-r--r-- | Modules/FindDoxygen.cmake | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/Modules/FindDoxygen.cmake b/Modules/FindDoxygen.cmake index fb16f20..46bf340 100644 --- a/Modules/FindDoxygen.cmake +++ b/Modules/FindDoxygen.cmake @@ -179,7 +179,8 @@ Functions will be converted to an absolute path relative to the current binary directory. This is necessary because doxygen will normally be run from a directory within the source tree so that relative source paths work as - expected. + expected. If this directory does not exist, it will be recursively created + prior to executing the doxygen commands. To change any of these defaults or override any other Doxygen config option, set relevant variables before calling ``doxygen_add_docs()``. For example: @@ -1020,6 +1021,13 @@ doxygen_add_docs() for target ${targetName}") WARN_LOGFILE XML_OUTPUT ) + + # Store the unmodified value of DOXYGEN_OUTPUT_DIRECTORY prior to invoking + # doxygen_quote_value() below. This will mutate the string specifically for + # consumption by Doxygen's config file, which we do not want when we use it + # later in the custom target's commands. + set( _original_doxygen_output_dir ${DOXYGEN_OUTPUT_DIRECTORY} ) + foreach(_item IN LISTS _doxygen_quoted_options) doxygen_quote_value(DOXYGEN_${_item}) endforeach() @@ -1030,8 +1038,8 @@ doxygen_add_docs() for target ${targetName}") configure_file("${_doxyfile_template}" "${_target_doxyfile}") # Add the target - add_custom_target( - ${targetName} + add_custom_target( ${targetName} VERBATIM + COMMAND ${CMAKE_COMMAND} -E make_directory ${_original_doxygen_output_dir} COMMAND "${DOXYGEN_EXECUTABLE}" "${_target_doxyfile}" WORKING_DIRECTORY "${_args_WORKING_DIRECTORY}" DEPENDS "${_target_doxyfile}" |