summaryrefslogtreecommitdiffstats
path: root/cmake/modules/FindDOXYGEN.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/modules/FindDOXYGEN.cmake')
-rw-r--r--cmake/modules/FindDOXYGEN.cmake47
1 files changed, 47 insertions, 0 deletions
diff --git a/cmake/modules/FindDOXYGEN.cmake b/cmake/modules/FindDOXYGEN.cmake
new file mode 100644
index 0000000..52e129a
--- /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()
+