diff options
author | Jörg Mayer <jmayer@loplof.de> | 2006-10-24 17:39:32 +0000 |
---|---|---|
committer | Jörg Mayer <jmayer@loplof.de> | 2006-10-24 17:39:32 +0000 |
commit | e8a5a41045ea1af89a2111701df3c03093b59373 (patch) | |
tree | 215b64b41fa646e48e166994be2401233b870af2 /cmake/modules/FindLEX.cmake | |
parent | 493ee85cb01efb108d46bd61cca89487f10a3883 (diff) |
Parts of http://bugs.wireshark.org/bugzilla/show_bug.cgi?id=1179
Frederic Heem:
* More cmake system checks. It compiles dumpcap without running configure,
svn path=/trunk/; revision=19672
Diffstat (limited to 'cmake/modules/FindLEX.cmake')
-rw-r--r-- | cmake/modules/FindLEX.cmake | 43 |
1 files changed, 39 insertions, 4 deletions
diff --git a/cmake/modules/FindLEX.cmake b/cmake/modules/FindLEX.cmake index 31033f23ca..2e307f3605 100644 --- a/cmake/modules/FindLEX.cmake +++ b/cmake/modules/FindLEX.cmake @@ -1,10 +1,9 @@ -# - Find unix commands from cygwin -# This module looks for some usual Unix commands. +# - Find lex executable # INCLUDE(FindCygwin) -FIND_PROGRAM(LEX +FIND_PROGRAM(LEX_EXECUTABLE NAMES lex flex @@ -16,5 +15,41 @@ FIND_PROGRAM(LEX /sbin ) MARK_AS_ADVANCED( - LEX + LEX_EXECUTABLE ) + +--------- +# flex a .ll file + +# search flex +MACRO(FIND_FLEX) + IF(NOT FLEX_EXECUTABLE) + FIND_PROGRAM(FLEX_EXECUTABLE flex) + IF (NOT FLEX_EXECUTABLE) + MESSAGE(FATAL_ERROR "flex not found - aborting") + ENDIF (NOT FLEX_EXECUTABLE) + ENDIF(NOT FLEX_EXECUTABLE) +ENDMACRO(FIND_FLEX) + +MACRO(ADD_FLEX_FILES _sources ) + FIND_FLEX() + + FOREACH (_current_FILE ${ARGN}) + GET_FILENAME_COMPONENT(_in ${_current_FILE} ABSOLUTE) + GET_FILENAME_COMPONENT(_basename ${_current_FILE} NAME_WE) + + SET(_out ${CMAKE_CURRENT_BINARY_DIR}/flex_${_basename}.cpp) + + ADD_CUSTOM_COMMAND( + OUTPUT ${_out} + COMMAND ${FLEX_EXECUTABLE} + ARGS + -o${_out} + ${_in} + DEPENDS ${_in} + ) + + SET(${_sources} ${${_sources}} ${_out} ) + ENDFOREACH (_current_FILE) +ENDMACRO(ADD_FLEX_FILES) + |