Skip to content

Instantly share code, notes, and snippets.

@ticapix
Last active August 29, 2015 14:07
Show Gist options
  • Select an option

  • Save ticapix/612c5a11b0d44362e6cd to your computer and use it in GitHub Desktop.

Select an option

Save ticapix/612c5a11b0d44362e6cd to your computer and use it in GitHub Desktop.
Doxygen with Cmake
find_package(Doxygen)
if(DOXYGEN_FOUND)
set(SOURCE_DIRECTORIES
${CMAKE_SOURCE_DIR}/src/
# to complete if needed
)
# convert every directory to relative path because doxygen from cygwin env is
# prefixing the paths by a cygwin path ending in /cygwin/c/.../C:/.../Foundation
set(SOURCE_REL_DIRECTORIES "")
foreach(dir ${SOURCE_DIRECTORIES})
file(RELATIVE_PATH _tmp ${CMAKE_CURRENT_BINARY_DIR} ${dir})
set(SOURCE_REL_DIRECTORIES "${SOURCE_REL_DIRECTORIES} ${_tmp}")
endforeach(dir ${SOURCE_DIRECTORIES})
# replace tokens like @var@ in the .in file by the variable value in the .doxygen file
# eg: INPUT = @SOURCE_REL_DIRECTORIES@
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/project.doxygen.in
${CMAKE_CURRENT_BINARY_DIR}/project.doxygen
IMMEDIATE @ONLY)
add_custom_target(GenerateDocumentation
COMMAND ${CMAKE_COMMAND} -E echo_append "Building API Documentation..."
COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/project.doxygen
COMMAND ${CMAKE_COMMAND} -E echo "Done in ${CMAKE_CURRENT_BINARY_DIR}."
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Generating API documentation with Doxygen" VERBATIM
)
endif(DOXYGEN_FOUND)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment