aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt39
-rw-r--r--cmake/modules/FindLEX.cmake37
-rw-r--r--cmake/modules/FindYACC.cmake42
-rw-r--r--wiretap/CMakeLists.txt94
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)