wireshark/cmake/modules/FindDOXYGEN.cmake

48 lines
1.1 KiB
CMake

#
# - 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()