diff options
author | Alexander Neundorf <neundorf@kde.org> | 2010-09-26 11:14:51 +0000 |
---|---|---|
committer | Alexander Neundorf <neundorf@kde.org> | 2010-09-26 11:14:51 +0000 |
commit | 067428213344ff1067839e2e180848c1699c299d (patch) | |
tree | 1a1db17aa95f0fca7ecbdcd237cc1a661dcf4b75 | |
parent | a79b5418e491a83ea758c04992aa4f65a033ee59 (diff) | |
download | extra-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.cmake | 31 |
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) |