Add a comment
[metze/wireshark/wip.git] / CMakeLists.txt
1 # CMakeLists.txt
2 #
3 # $Id$
4 #
5 # Wireshark - Network traffic analyzer
6 # By Gerald Combs <gerald@wireshark.org>
7 # Copyright 1998 Gerald Combs
8 #
9 # This program is free software; you can redistribute it and/or
10 # modify it under the terms of the GNU General Public License
11 # as published by the Free Software Foundation; either version 2
12 # of the License, or (at your option) any later version.
13 #
14 # This program is distributed in the hope that it will be useful,
15 # but WITHOUT ANY WARRANTY; without even the implied warranty of
16 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 # GNU General Public License for more details.
18 #
19 # You should have received a copy of the GNU General Public License
20 # along with this program; if not, write to the Free Software
21 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
22 #
23
24 project(wireshark C)
25
26 set(dumpcap_LIBS wiretap)
27
28 # Disable this later. Alternative: "make VERBOSE=1"
29 set(CMAKE_VERBOSE_MAKEFILE ON)
30
31 set(BUILD_SHARED_LIBS ON)
32 set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules)
33
34 set(dumpcap_PLATFORM_SRC
35         capture-pcap-util-unix.c
36 )
37
38 set(dumpcap_FILES
39         capture_opts.c
40         capture_loop.c
41         capture-pcap-util.c
42         capture_stop_conditions.c
43         clopts_common.c
44         conditions.c
45         dumpcap.c
46         pcapio.c
47         ringbuffer.c
48         sync_pipe_write.c
49         tempfile.c
50         version_info.c
51
52         ${dumpcap_PLATFORM_SRC}
53 )
54
55 include_directories(${CMAKE_BINARY_DIR}
56         ${CMAKE_SOURCE_DIR}
57         ${CMAKE_SOURCE_DIR}/wiretap)
58
59 add_definitions(-DHAVE_CONFIG_H -D_U_=\"__attribute__\(\(unused\)\)\")
60
61 link_directories(wiretap)
62
63 add_executable(dumpcap ${dumpcap_FILES})
64
65 option(BUILD_WITH_GLIB2 "Build using gtk2/glib2 instead of gtk/glib" ON)
66 option(BUILD_WIRESHARK  "Build the GUI version of Wireshark" ON)
67 option(ENABLE_STATIC    "Build a static version of Wireshark" OFF)
68
69 if (BUILD_WITH_GLIB2)
70         if (BUILD_WIRESHARK)
71                 find_package(GTK2 REQUIRED)
72                 if (GTK2_FOUND)
73                         message(GTK2_FOUND)
74                         include_directories(${GTK2_INCLUDE_DIR})
75                         # set(dumpcap_LIBS ${dumpcap_LIBS} ${GTK2_LIBRARIES})
76                 endif (GTK2_FOUND)
77         endif (BUILD_WIRESHARK)
78         find_package(GLIB2 REQUIRED)
79         if (GLIB2_FOUND)
80                 message(GLIB2_FOUND)
81                 include_directories(${GLIB2_INCLUDE_DIR})
82                 set(dumpcap_LIBS ${dumpcap_LIBS} ${GLIB2_glib_LIBRARY})
83         endif (GLIB2_FOUND)
84 else (BUILD_WITH_GLIB2)
85         if (BUILD_WIRESHARK)
86                 find_package(GTK REQUIRED)
87                 if (GTK_FOUND)
88                         message(GTK_FOUND)
89                         include_directories(${GTK_INCLUDE_DIR})
90                         # set(dumpcap_LIBS ${dumpcap_LIBS} ${GTK_LIBRARIES})
91                 endif (GTK_FOUND)
92         endif (BUILD_WIRESHARK)
93         find_package(GLIB REQUIRED)
94         if (GLIB_FOUND)
95                 message(GLIB_FOUND)
96                 include_directories(${GLIB_INCLUDE_DIR})
97                 set(dumpcap_LIBS ${dumpcap_LIBS} ${GLIB_glib_LIBRARIES})
98         endif (GLIB_FOUND)
99 endif (BUILD_WITH_GLIB2)
100
101 set(PACKAGELIST ZLIB PCAP)
102
103 foreach(PACKAGE ${PACKAGELIST})
104         find_package(${PACKAGE})
105         message(${PACKAGE}_FOUND)
106         if (${PACKAGE}_FOUND)
107                 include_directories(${${PACKAGE}_INCLUDE_DIR})
108                 set(dumpcap_LIBS ${dumpcap_LIBS} ${${PACKAGE}_LIBRARIES})
109         endif (${PACKAGE}_FOUND)
110 endforeach(PACKAGE)
111
112 configure_file(${CMAKE_SOURCE_DIR}/cmakeconfig.h.in ${CMAKE_BINARY_DIR}/config.h)
113
114 target_link_libraries(dumpcap ${dumpcap_LIBS})
115