diff options
-rw-r--r-- | CMakeLists.txt | 39 | ||||
-rw-r--r-- | cmake/modules/FindLEX.cmake | 37 | ||||
-rw-r--r-- | cmake/modules/FindYACC.cmake | 42 | ||||
-rw-r--r-- | wiretap/CMakeLists.txt | 94 |
4 files changed, 139 insertions, 73 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 27a2828f00..8f3e373c19 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -25,6 +25,8 @@ project(wireshark C) set(dumpcap_LIBS wiretap) +cmake_minimum_required(VERSION 2.6) + #Where to find local cmake scripts set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules) @@ -66,7 +68,7 @@ endif(ENABLE_EXTRA_GCC_CHECKS) if(CMAKE_COMPILER_IS_GNUCC) add_definitions( -DHAVE_CONFIG_H - -D_U_=\"__attribute__\(\(unused\)\)\" + -D_U_=__attribute__\(\(unused\)\) -Wall -Wpointer-arith -W ${WIRESHARK_EXTRA_GCC_FLAGS} ) @@ -78,7 +80,7 @@ endif(CMAKE_COMPILER_IS_GNUCC) subdirs(wiretap) #The minimum package list -set(PACKAGELIST GLIB2 ZLIB PCAP ${PACKAGELIST}) +set(PACKAGELIST GLIB2 ZLIB PCAP LEX YACC ${PACKAGELIST}) #build the gui ? if(BUILD_WIRESHARK) @@ -212,6 +214,13 @@ configure_file(${CMAKE_SOURCE_DIR}/cmakeconfig.h.in ${CMAKE_BINARY_DIR}/config.h link_directories(wiretap) +ADD_CUSTOM_COMMAND( + OUTPUT ${CMAKE_BINARY_DIR}/svnversion.h + COMMAND perl ${CMAKE_SOURCE_DIR}/make-version.pl + ARGS + ${CMAKE_SOURCE_DIR} +) +SET_SOURCE_FILES_PROPERTIES(${CMAKE_BINARY_DIR}/svnversion.h GENERATED) if(BUILD_DUMPCAP) @@ -220,19 +229,19 @@ if(BUILD_DUMPCAP) ) set(DUMPCAP_FILES - capture_opts.c - capture_loop.c - capture-pcap-util.c - capture_stop_conditions.c - clopts_common.c - conditions.c - dumpcap.c - pcapio.c - ringbuffer.c - sync_pipe_write.c - tempfile.c - version_info.c - ${DUMPCAP_PLATFORM_SRC} + svnversion.h + capture_opts.c + capture-pcap-util.c + capture_stop_conditions.c + clopts_common.c + conditions.c + dumpcap.c + pcapio.c + ringbuffer.c + sync_pipe_write.c + tempfile.c + version_info.c + ${DUMPCAP_PLATFORM_SRC} ) add_executable(dumpcap ${DUMPCAP_FILES}) 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) + diff --git a/wiretap/CMakeLists.txt b/wiretap/CMakeLists.txt index 159df4aad9..038a860d90 100644 --- a/wiretap/CMakeLists.txt +++ b/wiretap/CMakeLists.txt @@ -21,44 +21,64 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # -ADD_LIBRARY(wiretap SHARED - 5views.c - airopeek9.c - ascend.c - atm.c - ber.c - buffer.c - catapult_dct2000.c - cosine.c - csids.c - dbs-etherwatch.c - erf.c - etherpeek.c - eyesdn.c - file_access.c - file_wrappers.c - hcidump.c - i4btrace.c - iptrace.c - iseries.c - k12.c - lanalyzer.c - libpcap.c - netmon.c - nettl.c - network_instruments.c - netxray.c - ngsniffer.c - pppdump.c - radcom.c - snoop.c - toshiba.c - visual.c - vms.c - wtap.c - ascend-grammar.c - ascend-scanner.c +set(WIRETAP_FILES + 5views.c + airopeek9.c + ascend.c + atm.c + ber.c + btsnoop.c + buffer.c + catapult_dct2000.c + commview.c + cosine.c + csids.c + daintree-sna.c + dbs-etherwatch.c + dct3trace.c + erf.c + etherpeek.c + eyesdn.c + file_access.c + file_wrappers.c + hcidump.c + i4btrace.c + iptrace.c + iseries.c + k12.c + lanalyzer.c + libpcap.c + mpeg.c + netmon.c + netscreen.c + nettl.c + network_instruments.c + netxray.c + ngsniffer.c + packetlogger.c + pcap-common.c + pcapng.c + pppdump.c + radcom.c + snoop.c + toshiba.c + visual.c + vms.c + wtap.c +) + +ADD_LEX_FILES(WIRETAP_FILES + ascend-scanner.l + k12text.l +) + +ADD_YACC_FILES(WIRETAP_FILES + ascend-grammar.y +) + +ADD_LIBRARY(wiretap SHARED + ${WIRETAP_FILES} ) INSTALL(TARGETS wiretap LIBRARY DESTINATION lib) |