aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFriedrich W. H. Kossebau <kossebau@kde.org>2021-07-18 11:27:08 +0200
committerFriedrich W. H. Kossebau <kossebau@kde.org>2021-07-18 11:27:08 +0200
commita143cf02e40a46d08b6960e9296ea44d40d41b3f (patch)
treec1475527f2c30f6bd8b676cc848d5828aa617adc
parent95d1808924d9ecdf3037939ba78950fe20ee1396 (diff)
downloadextra-cmake-modules-a143cf02e40a46d08b6960e9296ea44d40d41b3f.tar.gz
extra-cmake-modules-a143cf02e40a46d08b6960e9296ea44d40d41b3f.tar.bz2
FindGperf: support version check
-rw-r--r--find-modules/FindGperf.cmake18
1 files changed, 18 insertions, 0 deletions
diff --git a/find-modules/FindGperf.cmake b/find-modules/FindGperf.cmake
index 4eb00e70..42877a0f 100644
--- a/find-modules/FindGperf.cmake
+++ b/find-modules/FindGperf.cmake
@@ -20,6 +20,9 @@ This will define the following variables:
``Gperf_EXECUTABLE``
The gperf executable.
+``Gperf_VERSION``
+ The gperf version. (since 5.85)
+
If ``Gperf_FOUND`` is TRUE, it will also define the following imported
target:
@@ -56,12 +59,27 @@ ecm_find_package_version_check(Gperf)
# Find gperf
find_program(Gperf_EXECUTABLE NAMES gperf)
+if(Gperf_EXECUTABLE)
+ execute_process(COMMAND ${Gperf_EXECUTABLE} -v
+ OUTPUT_VARIABLE _version_string
+ ERROR_QUIET
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ if(_version_string MATCHES "^GNU gperf ([-0-9\\.]+)")
+ set(Gperf_VERSION "${CMAKE_MATCH_1}")
+ endif()
+ unset(_version_string)
+else()
+ set(Gperf_VERSION)
+endif()
+
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Gperf
FOUND_VAR
Gperf_FOUND
REQUIRED_VARS
Gperf_EXECUTABLE
+ VERSION_VAR
+ Gperf_VERSION
)
mark_as_advanced(Gperf_EXECUTABLE)