aboutsummaryrefslogtreecommitdiff
path: root/cmake
diff options
context:
space:
mode:
authorRechi <Rechi@users.noreply.github.com>2022-10-13 23:45:49 +0200
committerRechi <Rechi@users.noreply.github.com>2022-10-13 23:45:49 +0200
commitc1bace50415008c191017db12b1fb8515db8e06f (patch)
tree9d24e5a35c206a2d8d42d300579e198fc7bbabb2 /cmake
parent3ffdc532ff7de9415bde8d465940502a4a16be31 (diff)
[cmake] add version parsing to patch
Diffstat (limited to 'cmake')
-rw-r--r--cmake/modules/buildtools/FindPatch.cmake10
1 files changed, 9 insertions, 1 deletions
diff --git a/cmake/modules/buildtools/FindPatch.cmake b/cmake/modules/buildtools/FindPatch.cmake
index ec6551f765..669b4d2785 100644
--- a/cmake/modules/buildtools/FindPatch.cmake
+++ b/cmake/modules/buildtools/FindPatch.cmake
@@ -67,8 +67,16 @@ if(CMAKE_HOST_WIN32 AND NOT PATCH_EXE)
find_program(PATCH_EXE NAMES patch.exe HINTS ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/bin REQUIRED)
endif()
+if(PATCH_EXE)
+ execute_process(COMMAND "${PATCH_EXE}" --version
+ OUTPUT_VARIABLE PATCH_VERSION
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ string(REGEX MATCH "[^\n]*patch [^\n]*" PATCH_VERSION "${PATCH_VERSION}")
+ string(REGEX REPLACE ".*patch (.*)" "\\1" PATCH_VERSION "${PATCH_VERSION}")
+endif()
+
include(FindPackageHandleStandardArgs)
-find_package_handle_standard_args(Patch REQUIRED_VARS PATCH_EXE)
+find_package_handle_standard_args(Patch REQUIRED_VARS PATCH_EXE VERSION_VAR PATCH_VERSION)
if(PATCH_FOUND)
set(PATCH_EXECUTABLE "${PATCH_EXE}")