diff options
author | Jörg Mayer <jmayer@loplof.de> | 2009-05-29 10:57:47 +0000 |
---|---|---|
committer | Jörg Mayer <jmayer@loplof.de> | 2009-05-29 10:57:47 +0000 |
commit | 18887f7b72ee2e4c38774a511b774a5d6e098072 (patch) | |
tree | 839fe8153e295c981b07293d73afe57fab7b80ef /cmake | |
parent | b4aeb97ed51b1f0d868c8a17ae1d50587a0418f1 (diff) | |
download | wireshark-18887f7b72ee2e4c38774a511b774a5d6e098072.tar.gz wireshark-18887f7b72ee2e4c38774a511b774a5d6e098072.tar.bz2 wireshark-18887f7b72ee2e4c38774a511b774a5d6e098072.zip |
Resume work on CMake for Wireshark. Finally found and fixed a
few mistakes that I made earlier.
Current status: dumpcap still doesn't build
Next step: Add a ylwrap like workaround for flex misbehaviour.
svn path=/trunk/; revision=28518
Diffstat (limited to 'cmake')
-rw-r--r-- | cmake/modules/FindLEX.cmake | 37 | ||||
-rw-r--r-- | cmake/modules/FindYACC.cmake | 42 |
2 files changed, 58 insertions, 21 deletions
diff --git a/cmake/modules/FindLEX.cmake b/cmake/modules/FindLEX.cmake index 2e307f3605..38dfeac5d4 100644 --- a/cmake/modules/FindLEX.cmake +++ b/cmake/modules/FindLEX.cmake @@ -5,8 +5,8 @@ INCLUDE(FindCygwin) FIND_PROGRAM(LEX_EXECUTABLE NAMES - lex flex + lex PATH ${CYGWIN_INSTALL_PATH}/bin /bin @@ -18,38 +18,39 @@ MARK_AS_ADVANCED( LEX_EXECUTABLE ) ---------- -# flex a .ll file +# flex a .l file # search flex -MACRO(FIND_FLEX) - IF(NOT FLEX_EXECUTABLE) - FIND_PROGRAM(FLEX_EXECUTABLE flex) - IF (NOT FLEX_EXECUTABLE) +MACRO(FIND_LEX) + IF(NOT LEX_EXECUTABLE) + FIND_PROGRAM(LEX_EXECUTABLE flex) + IF (NOT LEX_EXECUTABLE) MESSAGE(FATAL_ERROR "flex not found - aborting") - ENDIF (NOT FLEX_EXECUTABLE) - ENDIF(NOT FLEX_EXECUTABLE) -ENDMACRO(FIND_FLEX) + ENDIF (NOT LEX_EXECUTABLE) + ENDIF(NOT LEX_EXECUTABLE) +ENDMACRO(FIND_LEX) -MACRO(ADD_FLEX_FILES _sources ) - FIND_FLEX() +MACRO(ADD_LEX_FILES _sources ) + FIND_LEX() 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) + SET(_outc ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.c) + SET(_outh ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.h) ADD_CUSTOM_COMMAND( - OUTPUT ${_out} - COMMAND ${FLEX_EXECUTABLE} + OUTPUT ${_outc} ${_outh} + COMMAND ${LEX_EXECUTABLE} ARGS - -o${_out} + -o${_outc} + --header-file=${_outh} ${_in} DEPENDS ${_in} ) - SET(${_sources} ${${_sources}} ${_out} ) + SET(${_sources} ${${_sources}} ${_outc} ${_outh} ) ENDFOREACH (_current_FILE) -ENDMACRO(ADD_FLEX_FILES) +ENDMACRO(ADD_LEX_FILES) diff --git a/cmake/modules/FindYACC.cmake b/cmake/modules/FindYACC.cmake index 31499224fc..c12a4c8226 100644 --- a/cmake/modules/FindYACC.cmake +++ b/cmake/modules/FindYACC.cmake @@ -4,10 +4,10 @@ INCLUDE(FindCygwin) -FIND_PROGRAM(YACC +FIND_PROGRAM(YACC_EXECUTABLE NAMES - yacc bison + yacc PATH ${CYGWIN_INSTALL_PATH}/bin /bin @@ -16,5 +16,41 @@ FIND_PROGRAM(YACC /sbin ) MARK_AS_ADVANCED( - YACC + YACC_EXECUTABLE ) + + +# search flex +MACRO(FIND_YACC) + IF(NOT YACC_EXECUTABLE) + FIND_PROGRAM(YACC_EXECUTABLE bison) + IF (NOT YACC_EXECUTABLE) + MESSAGE(FATAL_ERROR "flex not found - aborting") + ENDIF (NOT YACC_EXECUTABLE) + ENDIF(NOT YACC_EXECUTABLE) +ENDMACRO(FIND_YACC) + +MACRO(ADD_YACC_FILES _sources ) + FIND_YACC() + + 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}/${_basename}.c) + + ADD_CUSTOM_COMMAND( + OUTPUT ${_out} + COMMAND ${YACC_EXECUTABLE} + ARGS + -d + -p ${_basename} + -o${_out} + ${_in} + DEPENDS ${_in} + ) + + SET(${_sources} ${${_sources}} ${_out} ) + ENDFOREACH (_current_FILE) +ENDMACRO(ADD_YACC_FILES) + |