45 lines
1.6 KiB
CMake
45 lines
1.6 KiB
CMake
# - Find NaturalDocs
|
|
# This module finds if NaturalDocs is installed, and adds it as an external
|
|
# dependency if it isn't. This code sets the following variables:
|
|
#
|
|
# NATURALDOCS_EXECUTABLE = full path to the naturaldocs binary
|
|
|
|
find_program(NATURALDOCS_EXECUTABLE NAMES naturaldocs NaturalDocs)
|
|
|
|
if(NATURALDOCS_EXECUTABLE)
|
|
execute_process(COMMAND ${NATURALDOCS_EXECUTABLE} --help
|
|
RESULT_VARIABLE res
|
|
OUTPUT_VARIABLE var
|
|
ERROR_VARIABLE var
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
ERROR_STRIP_TRAILING_WHITESPACE)
|
|
if(res)
|
|
if(${NaturalDocs_FIND_REQUIRED})
|
|
message(FATAL_ERROR "Error executing naturaldocs --help")
|
|
elseif(NOT NaturalDocs_FIND_QUIETLY)
|
|
message(WARNING "Warning, could not run naturaldocs --help")
|
|
endif()
|
|
else()
|
|
if(var MATCHES ".*Natural Docs, version [0-9]+\\.[0-9]+.*")
|
|
string(REGEX REPLACE ".*Natural Docs, version ([0-9]+\\.[0-9]+).*"
|
|
"\\1" NATURALDOCS_VERSION_STRING "${var}")
|
|
else()
|
|
if(NOT NaturalDocs_FIND_QUIETLY)
|
|
message(WARNING "regex not supported: {$var}.")
|
|
endif()
|
|
endif()
|
|
|
|
string( REGEX REPLACE "([0-9]+).*" "\\1" NATURALDOCS_VERSION_MAJOR "${NATURALDOCS_VERSION_STRING}" )
|
|
string( REGEX REPLACE "[0-9]+\\.([0-9]+)" "\\1" NATURALDOCS_VERSION_MINOR "${NATURALDOCS_VERSION_STRING}" )
|
|
set(NATURALDOCS_VERSION ${NATURALDOCS_VERSION_MAJOR}.${NATURALDOCS_VERSION_MINOR})
|
|
endif()
|
|
endif()
|
|
|
|
mark_as_advanced(
|
|
NATURALDOCS_EXECUTABLE
|
|
)
|
|
|
|
include(FindPackageHandleStandardArgs)
|
|
find_package_handle_standard_args(NaturalDocs
|
|
REQUIRED_VARS NATURALDOCS_EXECUTABLE
|
|
VERSION_VAR NATURALDOCS_VERSION) |