MSWSP: * add parse_lcid()
[wireshark-wip.git] / cmake / modules / FindLEX.cmake
blob955ae3849a0f6d20141f6f8187c536aa6fad317f
2 # $Id$
4 # - Find lex executable
7 INCLUDE(FindCygwin)
9 FIND_PROGRAM(LEX_EXECUTABLE
10   NAMES
11     flex
12     lex
13   PATHS
14     ${CYGWIN_INSTALL_PATH}/bin
15     /bin
16     /usr/bin
17     /usr/local/bin
18     /sbin
21 INCLUDE(FindPackageHandleStandardArgs)
22 FIND_PACKAGE_HANDLE_STANDARD_ARGS(LEX DEFAULT_MSG LEX_EXECUTABLE)
24 MARK_AS_ADVANCED(LEX_EXECUTABLE)
26 # flex a .l file
28 MACRO(ADD_LEX_FILES _sources )
29     FOREACH (_current_FILE ${ARGN})
30       GET_FILENAME_COMPONENT(_in ${_current_FILE} ABSOLUTE)
31       GET_FILENAME_COMPONENT(_basename ${_current_FILE} NAME_WE)
33       SET(_outc ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.c)
34       SET(_outh ${CMAKE_CURRENT_BINARY_DIR}/${_basename}_lex.h)
36       ADD_CUSTOM_COMMAND(
37         OUTPUT ${_outc}
38         COMMAND ${SH_EXECUTABLE} ${SH_FLAGS1} ${SH_FLAGS2} ${CMAKE_SOURCE_DIR}/tools/runlex.sh ${LEX_EXECUTABLE} ${SED_EXECUTABLE}
39           -o${_outc}
40           --header-file=${_outh}
41           ${_in}
42         DEPENDS ${_in}
43       )
44     SET(${_sources} ${${_sources}} ${_outc} )
45     INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})
46   ENDFOREACH (_current_FILE)
47 ENDMACRO(ADD_LEX_FILES)