From 067428213344ff1067839e2e180848c1699c299d Mon Sep 17 00:00:00 2001 From: Alexander Neundorf Date: Sun, 26 Sep 2010 11:14:51 +0000 Subject: -improved version checking using the new mode of find_package_handle_standard_args() Alex svn path=/trunk/KDE/kdelibs/; revision=1179877 --- modules/FindFlex.cmake | 31 +++++++++++++------------------ 1 file changed, 13 insertions(+), 18 deletions(-) (limited to 'modules') 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, @@ -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) -- cgit v1.2.1