aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Neundorf <neundorf@kde.org>2010-09-26 11:14:51 +0000
committerAlexander Neundorf <neundorf@kde.org>2010-09-26 11:14:51 +0000
commit067428213344ff1067839e2e180848c1699c299d (patch)
tree1a1db17aa95f0fca7ecbdcd237cc1a661dcf4b75
parenta79b5418e491a83ea758c04992aa4f65a033ee59 (diff)
downloadextra-cmake-modules-067428213344ff1067839e2e180848c1699c299d.tar.gz
extra-cmake-modules-067428213344ff1067839e2e180848c1699c299d.tar.bz2
-improved version checking using the new mode of find_package_handle_standard_args()
Alex svn path=/trunk/KDE/kdelibs/; revision=1179877
-rw-r--r--modules/FindFlex.cmake31
1 files changed, 13 insertions, 18 deletions
diff --git a/modules/FindFlex.cmake b/modules/FindFlex.cmake
index a2db9864..6e54c5c4 100644
--- a/modules/FindFlex.cmake
+++ b/modules/FindFlex.cmake
@@ -4,6 +4,9 @@
# FLEX_FOUND - system has Flex
# FLEX_EXECUTABLE - path of the flex executable
# FLEX_VERSION - the version string, like "2.5.31"
+#
+# The minimum required version of Flex can be specified using the
+# standard syntax, e.g. find_package(Flex 2.5)
# Copyright (c) 2008, Jakob Petsovits, <jpetso@gmx.at>
@@ -12,29 +15,21 @@
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
FIND_PROGRAM(FLEX_EXECUTABLE NAMES flex)
+FIND_PATH(FLEX_INCLUDE_DIR FlexLexer.h )
+FIND_LIBRARY(FLEX_LIBRARY fl)
-INCLUDE(MacroEnsureVersion)
-
-IF(FLEX_EXECUTABLE)
- SET(FLEX_FOUND TRUE)
+IF(FLEX_EXECUTABLE AND NOT FLEX_VERSION)
EXECUTE_PROCESS(COMMAND ${FLEX_EXECUTABLE} --version
- OUTPUT_VARIABLE _FLEX_VERSION
+ OUTPUT_VARIABLE _FLEX_VERSION_OUTPUT
)
- string (REGEX MATCH "[0-9]+\\.[0-9]+\\.[0-9]+" FLEX_VERSION "${_FLEX_VERSION}")
-ENDIF(FLEX_EXECUTABLE)
+ STRING (REGEX MATCH "[0-9]+\\.[0-9]+\\.[0-9]+" _FLEX_VERSION "${_FLEX_VERSION_OUTPUT}")
+ SET(FLEX_VERSION "${_FLEX_VERSION}" CACHE STRING "Version number of Flex" FORCE)
+ENDIF(FLEX_EXECUTABLE AND NOT FLEX_VERSION)
-FIND_PATH(FLEX_INCLUDE_DIR FlexLexer.h )
-FIND_LIBRARY(FLEX_LIBRARY fl)
-IF(FLEX_FOUND)
- IF(NOT Flex_FIND_QUIETLY)
- MESSAGE(STATUS "Found Flex: ${FLEX_EXECUTABLE} ${FLEX_VERSION}")
- ENDIF(NOT Flex_FIND_QUIETLY)
-ELSE(FLEX_FOUND)
- IF(Flex_FIND_REQUIRED)
- MESSAGE(FATAL_ERROR "Could not find Flex")
- ENDIF(Flex_FIND_REQUIRED)
-ENDIF(FLEX_FOUND)
+INCLUDE(FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(Flex REQUIRED_VARS FLEX_EXECUTABLE
+ VERSION_VAR FLEX_VERSION )
MARK_AS_ADVANCED(FLEX_INCLUDE_DIR FLEX_LIBRARY FLEX_EXECUTABLE)