summaryrefslogtreecommitdiff
path: root/cmake
diff options
context:
space:
mode:
authorPierre Joye <pierre.php@gmail.com>2021-08-20 14:40:14 +0700
committerPierre Joye <pierre.php@gmail.com>2021-08-20 14:40:14 +0700
commitb384e7ee6409c16a634fefad0c439922b2f6912a (patch)
treefc474b31b243edade77a935be022898938d517c0 /cmake
parent73ccc1d7e585ec90c9163b509462cfd270631fc8 (diff)
downloadlibgd-b384e7ee6409c16a634fefad0c439922b2f6912a.tar.gz
Add FindNaturalDocs
Diffstat (limited to 'cmake')
-rw-r--r--cmake/modules/FindNaturalDocs.cmake45
1 files changed, 45 insertions, 0 deletions
diff --git a/cmake/modules/FindNaturalDocs.cmake b/cmake/modules/FindNaturalDocs.cmake
new file mode 100644
index 0000000..9bd7044
--- /dev/null
+++ b/cmake/modules/FindNaturalDocs.cmake
@@ -0,0 +1,45 @@
+# - 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) \ No newline at end of file