aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--modules/FindFlex.cmake32
1 files changed, 32 insertions, 0 deletions
diff --git a/modules/FindFlex.cmake b/modules/FindFlex.cmake
new file mode 100644
index 00000000..59831ffd
--- /dev/null
+++ b/modules/FindFlex.cmake
@@ -0,0 +1,32 @@
+# - Try to find Flex
+# Once done this will define
+#
+# FLEX_FOUND - system has Flex
+# FLEX_EXECUTABLE - path of the flex executable
+# FLEX_VERSION - the version string, like "2.5.31"
+#
+
+
+FIND_PROGRAM(FLEX_EXECUTABLE NAMES flex)
+
+INCLUDE(MacroEnsureVersion)
+
+IF(FLEX_EXECUTABLE)
+ SET(FLEX_FOUND TRUE)
+
+ EXECUTE_PROCESS(COMMAND ${FLEX_EXECUTABLE} --version
+ OUTPUT_VARIABLE _FLEX_VERSION
+ )
+ string (REGEX MATCH "[0-9]+\\.[0-9]+\\.[0-9]+" FLEX_VERSION "${_FLEX_VERSION}")
+ENDIF(FLEX_EXECUTABLE)
+
+IF(FLEX_FOUND)
+ IF(NOT Flex_FIND_QUIETLY)
+ MESSAGE(STATUS "Found Flex: ${FLEX_EXECUTABLE}")
+ 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)
+