diff options
Diffstat (limited to 'cmake/modules/FindDOXYGEN.cmake')
-rw-r--r-- | cmake/modules/FindDOXYGEN.cmake | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/cmake/modules/FindDOXYGEN.cmake b/cmake/modules/FindDOXYGEN.cmake new file mode 100644 index 00000000..52e129a0 --- /dev/null +++ b/cmake/modules/FindDOXYGEN.cmake @@ -0,0 +1,47 @@ +# +# - Find Doxygen +# This module looks for a native (non-Cygwin) Doxygen. +# + +find_program( DOXYGEN_EXECUTABLE + NAMES + doxygen + PATHS + /bin + /usr/bin + /usr/local/bin + /sbin + $ENV{ProgramFiles}/doxygen/bin +) + +# We set various paths in doxygen.cfg via configure_file(). These are +# native system paths which aren't compatible with Cygwin's Doxygen. +string(TOLOWER ${DOXYGEN_EXECUTABLE} _de_lower) +if(${_de_lower} MATCHES "cyg") + set(_ignore_reason "Cygwin Doxygen found at ${DOXYGEN_EXECUTABLE}. Ignoring.") + message(STATUS ${_ignore_reason}) + set(DOXYGEN_EXECUTABLE DOXYGEN_EXECUTABLE-NOTFOUND CACHE FILEPATH ${_ignore_reason} FORCE) +endif() + +include( FindPackageHandleStandardArgs ) +find_package_handle_standard_args( DOXYGEN DEFAULT_MSG DOXYGEN_EXECUTABLE ) + +mark_as_advanced( DOXYGEN_EXECUTABLE ) + +macro( DOXYGEN2HTML _output ) + GET_FILENAME_COMPONENT(_OUTDIR ${_output} PATH) + SET(_OUTDIR ${CMAKE_CURRENT_BINARY_DIR}/${_OUTDIR}) + + add_custom_command( + OUTPUT + COMMAND cmake + -E make_directory ${_OUTDIR} + COMMAND $(DOXYGEN_EXECUTABLE) + doxygen.cfg + COMMAND chmod + -R og+rX ${_OUTDIR} + DEPENDS + doxygen.cfg + ) +endmacro() + |