summaryrefslogtreecommitdiffstats
path: root/Modules/FindFLEX.cmake
diff options
context:
space:
mode:
authorPatrick Gansterer <paroga@paroga.com>2012-11-26 21:22:39 (GMT)
committerBrad King <brad.king@kitware.com>2012-11-26 21:30:05 (GMT)
commitdf293368933ce5698f62a359e3f2d244a60c33be (patch)
treebc29d31d293b66b390533fbb431bda7f5b2cb604 /Modules/FindFLEX.cmake
parente593f8a1cf8d8f757e6630148a37dc77cdf8eaf1 (diff)
downloadCMake-df293368933ce5698f62a359e3f2d244a60c33be.zip
CMake-df293368933ce5698f62a359e3f2d244a60c33be.tar.gz
CMake-df293368933ce5698f62a359e3f2d244a60c33be.tar.bz2
FindFLEX: Add support for the Win flex-bison distribution
Search for win_flex too and improve version parsing.
Diffstat (limited to 'Modules/FindFLEX.cmake')
-rw-r--r--Modules/FindFLEX.cmake10
1 files changed, 6 insertions, 4 deletions
diff --git a/Modules/FindFLEX.cmake b/Modules/FindFLEX.cmake
index daae94f..79a3a1e 100644
--- a/Modules/FindFLEX.cmake
+++ b/Modules/FindFLEX.cmake
@@ -63,7 +63,7 @@
# (To distribute this file outside of CMake, substitute the full
# License text for the above reference.)
-find_program(FLEX_EXECUTABLE flex DOC "path to the flex executable")
+find_program(FLEX_EXECUTABLE NAMES flex win_flex DOC "path to the flex executable")
mark_as_advanced(FLEX_EXECUTABLE)
find_library(FL_LIBRARY NAMES fl
@@ -93,10 +93,12 @@ if(FLEX_EXECUTABLE)
else()
# older versions of flex printed "/full/path/to/executable version X.Y"
# newer versions use "basename(executable) X.Y"
- get_filename_component(FLEX_EXE_NAME "${FLEX_EXECUTABLE}" NAME)
- string(REGEX REPLACE "^.*${FLEX_EXE_NAME}\"? (version )?([0-9]+[^ ]*)( .*)?$" "\\2"
+ get_filename_component(FLEX_EXE_NAME_WE "${FLEX_EXECUTABLE}" NAME_WE)
+ get_filename_component(FLEX_EXE_EXT "${FLEX_EXECUTABLE}" EXT)
+ string(REGEX REPLACE "^.*${FLEX_EXE_NAME_WE}(${FLEX_EXE_EXT})?\"? (version )?([0-9]+[^ ]*)( .*)?$" "\\3"
FLEX_VERSION "${FLEX_version_output}")
- unset(FLEX_EXE_NAME)
+ unset(FLEX_EXE_EXT)
+ unset(FLEX_EXE_NAME_WE)
endif()
#============================================================