aboutsummaryrefslogtreecommitdiff
path: root/modules/FindFlex.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'modules/FindFlex.cmake')
-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)