aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt51
-rw-r--r--README.cmake70
-rw-r--r--cmake/modules/FindGTK2.cmake260
-rw-r--r--cmake/modules/FindPcap.cmake27
-rw-r--r--wiretap/CMakeLists.txt40
5 files changed, 448 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000000..34c8086ab0
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,51 @@
+PROJECT(dumpcap C)
+
+SET(dumpcap_LIBS wiretap)
+
+SET(CMAKE_VERBOSE_MAKEFILE ON)
+SET(BUILD_SHARED_LIBS ON)
+SET(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules)
+
+SET(PLATFORM_SRC
+ capture-pcap-util-unix.c
+)
+
+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
+
+ ${PLATFORM_SRC}
+)
+
+INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/wiretap)
+
+ADD_DEFINITIONS(-DHAVE_CONFIG_H -D_U_=\"__attribute__\(\(unused\)\)\")
+
+LINK_DIRECTORIES(wiretap)
+
+ADD_EXECUTABLE(dumpcap ${dumpcap_FILES})
+
+FIND_PACKAGE(GTK2)
+INCLUDE_DIRECTORIES(${GTK2_INCLUDE_DIR})
+SET(dumpcap_LIBS ${dumpcap_LIBS} ${GTK2_LIBRARIES})
+
+FIND_PACKAGE(ZLIB)
+INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIR})
+SET(dumpcap_LIBS ${dumpcap_LIBS} ${ZLIB_LIBRARIES})
+
+FIND_PACKAGE(Pcap)
+INCLUDE_DIRECTORIES(${PCAP_INCLUDE_DIR})
+SET(dumpcap_LIBS ${dumpcap_LIBS} ${PCAP_LIBRARIES})
+
+TARGET_LINK_LIBRARIES(dumpcap ${dumpcap_LIBS})
+
diff --git a/README.cmake b/README.cmake
new file mode 100644
index 0000000000..4e0a9986d9
--- /dev/null
+++ b/README.cmake
@@ -0,0 +1,70 @@
+Placeholder for cmake development stuff :-)
+
+ Notice
+
+ The CMake build system for Wireshark is not yet ready for
+ building the whole system. You'll still need autofoo to buld it.
+ The only thing that can be build is dumpcap, and even that one
+ requires that you successfully ran autofoo prior to running cmake
+ (e.g. config.h is not yet build, lex and yacc are not run).
+ Basically this is an experiment and if we find out that it works
+ and we like cmake more than autofoo we might switch one day.
+
+Table of contents
+=================
+
+How to get started with cmake?
+Why cmake?
+Why not cmake?
+What needs to be done?
+
+How to get started with cmake?
+==============================
+
+You can find documentation on cmake at: http://www.cmake.org/
+
+cmake is designed to support out of tree builds. So much so, that
+in tree builds do not work properly in all cases.
+
+How to do out of tree build (Unix/Linux):
+1) Install cmake.
+2) Build the project with the old build system once (to generate
+ config.h and run bison and flex to generate some c-files).
+3) Assuming, you are in the top directory of the wireshark source
+ cd ..
+4) mkdir build
+5) cd build
+6) cmake ../<Name_of_WS_source_dir>
+7) make
+
+Why cmake?
+==========
+- Can create project files for some MS and Apple IDEs.
+- Fast
+- Easier to understand/learn
+- One build infrastructure even including Windows?
+...
+
+Why not cmake?
+==============
+- Lots of work to do
+- Everyone who wants to build from source needs cmake
+- Current state of documentation isn't really better than
+ autofoo documentation, in some respect it's even worse
+ (you need to buy a book to get an explanation as to how
+ cmake really works).
+...
+
+What needs to be done?
+======================
+
+only dumpcap and libwiretap have been done, and even those rely on
+autofoo having been run before:
+
+- Add proper GTK1/GLIB2/GLIB1 detection (currently links against gtk2
+ to pull in glib2).
+- Create config.h
+- Autocreated source files in wiretap need to be build from .l, .y files.
+
+All other tools and libs still need to be built.
+
diff --git a/cmake/modules/FindGTK2.cmake b/cmake/modules/FindGTK2.cmake
new file mode 100644
index 0000000000..2ea148bcd3
--- /dev/null
+++ b/cmake/modules/FindGTK2.cmake
@@ -0,0 +1,260 @@
+#
+# try to find GTK2 (and glib) and GTKGLArea
+#
+#
+# Jan Woetzel 06/2004: added /opt/gnome/include/gtk-1.2 path and $ENV{GTK2_HOME}
+# Andreas Schneider 08/2006: added pkgconfig, added lib64 include dirs
+# Joerg Mayer 2006-08-31: rename GTK to GTK2
+
+
+# GTK2_INCLUDE_DIR - Directories to include to use GTK
+# GTK2_LIBRARIES - Files to link against to use GTK
+# GTK2_FOUND - If false, don't try to use GTK
+# GTK2_GL_FOUND - If false, don't try to use GTK's GL features
+
+
+# don't even bother under WIN32
+IF(UNIX)
+ # use pkg-config to get the directories and then use these values
+ # in the FIND_PATH() and FIND_LIBRARY() calls
+ INCLUDE(UsePkgConfig)
+
+ PKGCONFIG(gtk+-2.0 _GTK2IncDir _GTK2LinkDir _GTK2LinkFlags _GTK2Cflags)
+
+ FIND_PATH(GTK2_gtk_INCLUDE_PATH gtk/gtk.h
+ $ENV{GTK2_HOME}
+ ${_GTK2IncDir}
+ /usr/include/gtk-2.0
+ /usr/local/include/gtk-2.0
+ /opt/gnome/include/gtk-2.0 )
+
+ # Some Linux distributions (e.g. Red Hat) have glibconfig.h
+ # and glib.h in different directories, so we need to look
+ # for both.
+ # - Atanas Georgiev <atanas@cs.columbia.edu>
+ PKGCONFIG(glib-2.0 _GLIB2IncDir _GLIB2inkDir _GLIB2LinkFlags _GLIB2Cflags)
+ PKGCONFIG(gmodule-2.0 _GMODULE2IncDir _GMODULE2inkDir _GMODULE2LinkFlags _GMODULE2Cflags)
+ SET(GDIR /opt/gnome/lib/glib-2.0/include)
+ FIND_PATH(GTK2_glibconfig_INCLUDE_PATH glibconfig.h
+ ${_GLIB2IncDir}
+ /opt/gnome/lib64/glib-2.0/include
+ /opt/gnome/lib/glib-2.0/include
+ /usr/lib64/glib-2.0/include
+ /usr/lib/glib-2.0/include
+ )
+MESSAGE("GTK2_glibconfig_INCLUDE_PATH = ${GTK2_glibconfig_INCLUDE_PATH}")
+
+ FIND_PATH(GTK2_glib_INCLUDE_PATH glib.h
+ ${_GLIB2IncDir}
+ /opt/gnome/include/glib-2.0
+ /usr/include/glib-2.0
+ )
+# MESSAGE(" = ${}")
+
+ FIND_PATH(GTK2_gtkgl_INCLUDE_PATH gtkgl/gtkglarea.h
+ ${_GLIB2IncDir}
+ /usr/include
+ /usr/local/include
+ /usr/openwin/share/include
+ /opt/gnome/include
+ )
+
+ PKGCONFIG(pango _PANGOIncDir _PANGOinkDir _PANGOLinkFlags _PANGOCflags)
+
+ FIND_PATH(GTK2_pango_INCLUDE_PATH pango/pango.h
+ ${_PANGOIncDir}
+ /opt/gnome/include/pango-1.0
+ /usr/include/pango-1.0
+ )
+
+ PKGCONFIG(gdk-2.0 _GDK2IncDir _GDK2inkDir _GDK2LinkFlags _GDK2Cflags)
+ FIND_PATH(GTK2_gdkconfig_INCLUDE_PATH gdkconfig.h
+ ${_GDK2IncDir}
+ /opt/gnome/lib/gtk-2.0/include
+ /opt/gnome/lib64/gtk-2.0/include
+ /usr/lib/gtk-2.0/include
+ /usr/lib64/gtk-2.0/include
+ )
+
+ PKGCONFIG(cairo _CAIROIncDir _CAIROinkDir _CAIROLinkFlags _CAIROCflags)
+ FIND_PATH(GTK2_cairo_INCLUDE_PATH cairo.h
+ ${_CAIROIncDir}
+ /opt/gnome/include/cairo
+ /usr/include
+ /usr/include/cairo )
+ #MESSAGE("GTK2_cairo_INCLUDE_PATH = ${GTK2_cairo_INCLUDE_PATH}")
+
+ PKGCONFIG(atk _ATKIncDir _ATKinkDir _ATKLinkFlags _ATKCflags)
+ FIND_PATH(GTK2_atk_INCLUDE_PATH atk/atk.h
+ ${_ATKIncDir}
+ /opt/gnome/include/atk-1.0
+ /usr/include/atk-1.0
+ )
+ #MESSAGE("GTK2_atk_INCLUDE_PATH = ${GTK2_atk_INCLUDE_PATH}")
+
+ FIND_LIBRARY( GTK2_gtkgl_LIBRARY gtkgl
+ ${_GTK2IncDir}
+ /usr/lib
+ /usr/local/lib
+ /usr/openwin/lib
+ /usr/X11R6/lib
+ /opt/gnome/lib
+ )
+
+ #
+ # The 12 suffix is thanks to the FreeBSD ports collection
+ #
+
+ FIND_LIBRARY(GTK2_gtk_LIBRARY
+ NAMES gtk-x11-2.0
+ PATHS ${_GTK2LinkDir}
+ /usr/lib
+ /usr/local/lib
+ /usr/openwin/lib
+ /usr/X11R6/lib
+ /opt/gnome/lib
+ )
+
+ FIND_LIBRARY( GTK2_gdk_LIBRARY
+ NAMES gdk-x11-2.0
+ PATHS ${_GDK2LinkDir}
+ /usr/lib
+ /usr/local/lib
+ /usr/openwin/lib
+ /usr/X11R6/lib
+ /opt/gnome/lib
+ )
+
+ FIND_LIBRARY( GTK2_gmodule_LIBRARY
+ NAMES gmodule-2.0
+ PATHS ${_GMODULE2inkDir}
+ /usr/lib
+ /usr/local/lib
+ /usr/openwin/lib
+ /usr/X11R6/lib
+ /opt/gnome/lib
+ )
+
+ FIND_LIBRARY( GTK2_glib_LIBRARY
+ NAMES glib-2.0
+ PATHS ${_GLIB2inkDir}
+ /usr/lib
+ /usr/local/lib
+ /usr/openwin/lib
+ /usr/X11R6/lib
+ /opt/gnome/lib
+ )
+
+ FIND_LIBRARY( GTK2_Xi_LIBRARY
+ NAMES Xi
+ PATHS /usr/lib
+ /usr/local/lib
+ /usr/openwin/lib
+ /usr/X11R6/lib
+ /opt/gnome/lib
+ )
+
+ FIND_LIBRARY( GTK2_gthread_LIBRARY
+ NAMES gthread-2.0
+ PATHS /usr/lib
+ /usr/local/lib
+ /usr/openwin/lib
+ /usr/X11R6/lib
+ /opt/gnome/lib
+ )
+
+ FIND_LIBRARY( GTK2_gobject_LIBRARY
+ NAMES gobject-2.0
+ PATHS
+ /opt/gnome/lib
+ )
+
+ IF(GTK2_gtk_INCLUDE_PATH)
+ IF(GTK2_glibconfig_INCLUDE_PATH)
+ IF(GTK2_glib_INCLUDE_PATH)
+ IF(GTK2_gtk_LIBRARY)
+ IF(GTK2_glib_LIBRARY)
+ IF(GTK2_pango_INCLUDE_PATH)
+ IF(GTK2_atk_INCLUDE_PATH)
+ IF(GTK2_cairo_INCLUDE_PATH)
+ # Assume that if gtk and glib were found, the other
+ # supporting libraries have also been found.
+
+ SET( GTK2_FOUND TRUE )
+ SET( GTK2_INCLUDE_DIR ${GTK2_gtk_INCLUDE_PATH}
+ ${GTK2_glibconfig_INCLUDE_PATH}
+ ${GTK2_glib_INCLUDE_PATH}
+ ${GTK2_pango_INCLUDE_PATH}
+ ${GTK2_gdkconfig_INCLUDE_PATH}
+ ${GTK2_atk_INCLUDE_PATH}
+ ${GTK2_cairo_INCLUDE_PATH})
+ SET( GTK2_LIBRARIES ${GTK2_gtk_LIBRARY}
+ ${GTK2_gdk_LIBRARY}
+ ${GTK2_glib_LIBRARY} )
+ #${GTK2_gobject_LIBRARY})
+
+ IF(GTK2_gmodule_LIBRARY)
+ SET(GTK2_LIBRARIES ${GTK2_LIBRARIES} ${GTK2_gmodule_LIBRARY})
+ ENDIF(GTK2_gmodule_LIBRARY)
+ IF(GTK2_gthread_LIBRARY)
+ SET(GTK2_LIBRARIES ${GTK2_LIBRARIES} ${GTK2_gthread_LIBRARY})
+ ENDIF(GTK2_gthread_LIBRARY)
+ ELSE(GTK2_cairo_INCLUDE_PATH)
+ MESSAGE("Can not find cairo")
+ ENDIF(GTK2_cairo_INCLUDE_PATH)
+ ELSE(GTK2_atk_INCLUDE_PATH)
+ MESSAGE("Can not find atk")
+ ENDIF(GTK2_atk_INCLUDE_PATH)
+
+ ELSE(GTK2_pango_INCLUDE_PATH)
+ MESSAGE("Can not find pango includes")
+ ENDIF(GTK2_pango_INCLUDE_PATH)
+ ELSE(GTK2_glib_LIBRARY)
+ MESSAGE("Can not find glib lib")
+ ENDIF(GTK2_glib_LIBRARY)
+ ELSE(GTK2_gtk_LIBRARY)
+ MESSAGE("Can not find gtk lib")
+ ENDIF(GTK2_gtk_LIBRARY)
+ ELSE(GTK2_glib_INCLUDE_PATH)
+ MESSAGE("Can not find glib includes")
+ ENDIF(GTK2_glib_INCLUDE_PATH)
+ ELSE(GTK2_glibconfig_INCLUDE_PATH)
+ MESSAGE("Can not find glibconfig")
+ ENDIF(GTK2_glibconfig_INCLUDE_PATH)
+ ELSE(GTK2_gtk_INCLUDE_PATH)
+ MESSAGE("Can not find gtk includes")
+ ENDIF(GTK2_gtk_INCLUDE_PATH)
+
+ if (GTK2_FOUND)
+ if (NOT GTK2_FIND_QUIETLY)
+ message(STATUS "Found GTK: ${GTK2_LIBRARIES}")
+ endif (NOT GTK2_FIND_QUIETLY)
+ else (GTK2_FOUND)
+ if (GTK2_FIND_REQUIRED)
+ message(FATAL_ERROR "Could NOT find GTK")
+ endif (GTK2_FIND_REQUIRED)
+ endif (GTK2_FOUND)
+
+
+ MARK_AS_ADVANCED(
+ GTK2_gdk_LIBRARY
+ GTK2_glib_INCLUDE_PATH
+ GTK2_glib_LIBRARY
+ GTK2_glibconfig_INCLUDE_PATH
+ GTK2_gmodule_LIBRARY
+ GTK2_gthread_LIBRARY
+ GTK2_Xi_LIBRARY
+ GTK2_gtk_INCLUDE_PATH
+ GTK2_gtk_LIBRARY
+ GTK2_gtkgl_INCLUDE_PATH
+ GTK2_gtkgl_LIBRARY
+ GTK2_atk_INCLUDE_PATH
+ GTK2_gdkconfig_INCLUDE_PATH
+# GTK2_gobject_LIBRARY
+ GTK2_pango_INCLUDE_PATH
+ )
+
+ELSE(UNIX)
+ # MESSAGE("FindGTK2 is working on UNIX/LINUX, only!")
+ENDIF(UNIX)
+
diff --git a/cmake/modules/FindPcap.cmake b/cmake/modules/FindPcap.cmake
new file mode 100644
index 0000000000..8eb537d9c7
--- /dev/null
+++ b/cmake/modules/FindPcap.cmake
@@ -0,0 +1,27 @@
+# - Find pcap
+# Find the PCAP includes and library
+#
+# PCAP_INCLUDE_DIR - where to find pcap.h, etc.
+# PCAP_LIBRARIES - List of libraries when using pcap.
+# PCAP_FOUND - True if pcap found.
+
+FIND_PATH(PCAP_INCLUDE_DIR pcap.h
+ /usr/local/include
+ /usr/include
+)
+
+FIND_LIBRARY(PCAP_LIBRARIES
+ NAMES pcap
+ PATHS /usr/lib /usr/local/lib
+)
+
+IF(PCAP_INCLUDE_DIR)
+ IF(PCAP_LIBRARIES)
+ SET( PCAP_FOUND "YES" )
+ ENDIF(PCAP_LIBRARIES)
+ENDIF(PCAP_INCLUDE_DIR)
+
+MARK_AS_ADVANCED(
+ PCAP_LIBRARIES
+ PCAP_INCLUDE_DIR
+)
diff --git a/wiretap/CMakeLists.txt b/wiretap/CMakeLists.txt
new file mode 100644
index 0000000000..1bc5e9c0bd
--- /dev/null
+++ b/wiretap/CMakeLists.txt
@@ -0,0 +1,40 @@
+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
+)
+