forked from osmocom/wireshark
99d4de66e5
My attachment adds a link to a XSLT file to the preamble of the PDML. The XSLT will transform the PDML to a HTML page, and the HTML page features a look similar to Wireshark. See http://cubic.org/~doj/ebay/a.pdml for an example. The patch also contains a small perl program which converts the Wireshark colortable into javascript code which is used in the XSLT file. If you want to use a different color scheme you would execute the perl program and insert the generated javascript function into your XSLT file. To view the HTML you could either place the PDML and XSLT file on your webserver and verify that your webserver sends the PDML file as "text/xml". Then your webbrowser will find the linked XSLT file, download that as well and convert the PDML to HTML on the fly. You could also use an XSLT processor like xsltproc to convert the PDML and XSLT into a static HTML file. From me: Minor fixups. svn path=/trunk/; revision=37298
995 lines
21 KiB
CMake
995 lines
21 KiB
CMake
# CMakeLists.txt
|
|
#
|
|
# $Id$
|
|
#
|
|
# Wireshark - Network traffic analyzer
|
|
# By Gerald Combs <gerald@wireshark.org>
|
|
# Copyright 1998 Gerald Combs
|
|
#
|
|
# This program is free software; you can redistribute it and/or
|
|
# modify it under the terms of the GNU General Public License
|
|
# as published by the Free Software Foundation; either version 2
|
|
# of the License, or (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program; if not, write to the Free Software
|
|
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
#
|
|
|
|
project(Wireshark C)
|
|
|
|
cmake_minimum_required(VERSION 2.6)
|
|
set(CMAKE_BACKWARDS_COMPATIBILITY 2.6)
|
|
|
|
# Needs to be set after cmake_minimum_required or cmake_policy(VERSION)
|
|
#if(COMMAND cmake_policy)
|
|
# cmake_policy(SET CMP0015 NEW)
|
|
#endif(COMMAND cmake_policy)
|
|
|
|
# set(PROJECT_VERSION "1.3.4-rc5")
|
|
# set(PROJECT_VERSION "1.3.4rc5")
|
|
# set(PROJECT_VERSION "1.3.4")
|
|
# If not set, copy over Wireshark version from configure.in AC_INIT
|
|
if(NOT PROJECT_VERSION)
|
|
file(STRINGS
|
|
${CMAKE_SOURCE_DIR}/configure.in
|
|
VERSIONLINE
|
|
REGEX "\\(wireshark, .*\\)"
|
|
)
|
|
string(REGEX REPLACE ".*\\(wireshark, (.*)\\).*"
|
|
"\\1"
|
|
PROJECT_VERSION
|
|
${VERSIONLINE}
|
|
)
|
|
endif()
|
|
string(REGEX REPLACE "([0-9]+)\\..*"
|
|
"\\1"
|
|
PROJECT_MAJOR_VERSION
|
|
${PROJECT_VERSION}
|
|
)
|
|
string(REGEX REPLACE ".*\\.([0-9]+)\\..*"
|
|
"\\1"
|
|
PROJECT_MINOR_VERSION
|
|
${PROJECT_VERSION}
|
|
)
|
|
string(REGEX REPLACE ".*\\..*\\.([0-9]+).*"
|
|
"\\1"
|
|
PROJECT_PATCH_VERSION
|
|
${PROJECT_VERSION}
|
|
)
|
|
string(REGEX REPLACE ".*\\..*\\.[0-9]+(.*)"
|
|
"\\1"
|
|
PROJECT_VERSION_EXTENSION
|
|
${PROJECT_VERSION}
|
|
)
|
|
message(STATUS "V: ${PROJECT_VERSION}, MaV: ${PROJECT_MAJOR_VERSION}, MiV: ${PROJECT_MINOR_VERSION}, PL: ${PROJECT_PATCH_VERSION}, EV: ${PROJECT_VERSION_EXTENSION}.")
|
|
|
|
#Where to find local cmake scripts
|
|
set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules)
|
|
INCLUDE(UseLemon)
|
|
INCLUDE(UseMakeDissectorReg)
|
|
INCLUDE(UseMakeTapReg)
|
|
|
|
# Under linux the release mode (CMAKE_BUILD_TYPE=release) defines NDEBUG
|
|
|
|
# Disable this later. Alternative: "make VERBOSE=1"
|
|
set(CMAKE_VERBOSE_MAKEFILE ON)
|
|
|
|
#Defines CMAKE_INSTALL_BINDIR, CMAKE_INSTALL_DATADIR, etc ...
|
|
include(CMakeInstallDirs)
|
|
|
|
include_directories(
|
|
${CMAKE_BINARY_DIR}
|
|
${CMAKE_SOURCE_DIR}
|
|
${CMAKE_SOURCE_DIR}/epan
|
|
${CMAKE_SOURCE_DIR}/tools/lemon
|
|
${CMAKE_SOURCE_DIR}/wiretap
|
|
)
|
|
|
|
#Where to put libraries
|
|
if(NOT LIBRARY_OUTPUT_PATH)
|
|
set(LIBRARY_OUTPUT_PATH ${Wireshark_BINARY_DIR}/lib CACHE INTERNAL
|
|
"Single output directory for building all libraries.")
|
|
endif()
|
|
|
|
|
|
include(CMakeOptions.txt)
|
|
|
|
|
|
set(WIRESHARK_C_FLAGS
|
|
-O2
|
|
-Wall
|
|
-W
|
|
-Wextra
|
|
-Wdeclaration-after-statement
|
|
-Wendif-labels
|
|
-Wpointer-arith
|
|
-Wno-pointer-sign
|
|
-Warray-bounds
|
|
-Wcast-align
|
|
-Wformat-security
|
|
-Wold-style-definition
|
|
-fexcess-precision=fast
|
|
)
|
|
|
|
set(WIRESHARK_EXTRA_C_FLAGS
|
|
-pedantic
|
|
-Woverflow
|
|
-Wlogical-op
|
|
-Wno-overlength-strings
|
|
-fstrict-overflow -Wstrict-overflow=4
|
|
-Wunreachable-code
|
|
-Wunsafe-loop-optimizations
|
|
-Wno-long-long
|
|
-Wbad-function-cast
|
|
-Wcast-qual
|
|
-Waddress
|
|
-Warray-bounds
|
|
-Wattributes
|
|
-Wdiv-by-zero
|
|
-Wformat-security
|
|
-Wignored-qualifiers
|
|
-Wpragmas
|
|
-Wredundant-decls
|
|
-Wvla
|
|
-Wc++-compat
|
|
-Wjump-misses-init
|
|
# packet-ncp2222.inc prevents this from going into all warnings
|
|
-Wwrite-strings
|
|
# GLib blocks this for now.
|
|
-Wstrict-prototypes
|
|
# All the registration functions block these for now.
|
|
-Wmissing-prototypes
|
|
-Wmissing-declarations
|
|
# Problem with packet-afs.c
|
|
-Wshadow
|
|
# More cleanup needed for this on LP64
|
|
-Wshorten-64-to-32
|
|
)
|
|
|
|
if(ENABLE_EXTRA_GCC_CHECKS) # This overrides -Werror
|
|
set(WIRESHARK_C_FLAGS ${WIRESHARK_C_FLAGS} ${WIRESHARK_EXTRA_C_FLAGS})
|
|
endif()
|
|
|
|
add_definitions(
|
|
-DHAVE_CONFIG_H
|
|
-DPACKAGE=\"wireshark\"
|
|
)
|
|
|
|
# Counterhack to work around some cache magic in CHECK_C_SOURCE_COMPILES
|
|
include(CheckCCompilerFlag)
|
|
set(C 0)
|
|
# Sigh: Have to use THIS_FLAG instead of ${F} for some reason
|
|
foreach(THIS_FLAG ${WIRESHARK_C_FLAGS})
|
|
set(F WS_C_FLAG_${C})
|
|
set(${F} ${THIS_FLAG})
|
|
set(V WS_C_FLAG_VALID${C})
|
|
check_c_compiler_flag(${${F}} ${V})
|
|
if (${${V}})
|
|
add_definitions(${${F}})
|
|
endif()
|
|
math(EXPR C "${C} + 1")
|
|
endforeach()
|
|
|
|
if(NOT DISABLE_WERROR AND NOT ENABLE_EXTRA_GCC_CHECKS)
|
|
check_c_compiler_flag(-Werror WERROR)
|
|
else()
|
|
set(WERROR 0)
|
|
endif()
|
|
|
|
if(CMAKE_COMPILER_IS_GNUCC)
|
|
add_definitions( -D_U_=__attribute__\(\(unused\)\) )
|
|
else()
|
|
add_definitions( -D_U_=\"\" )
|
|
endif()
|
|
|
|
set(WIRESHARK_LD_FLAGS
|
|
-Wl,--as-needed
|
|
# -flto
|
|
# -fwhopr
|
|
# -fwhole-program
|
|
)
|
|
|
|
include(CheckCLinkerFlag)
|
|
set(C 0)
|
|
# Sigh: Have to use THIS_FLAG instead of ${F} for some reason
|
|
foreach(THIS_FLAG ${WIRESHARK_LD_FLAGS})
|
|
set(F WS_LD_FLAG_${C})
|
|
set(${F} ${THIS_FLAG})
|
|
set(V WS_LD_FLAG_VALID${C})
|
|
check_c_linker_flag(${${F}} ${V})
|
|
if (${${V}})
|
|
set(WS_LINK_FLAGS ${WS_LINK_FLAGS} ${${F}})
|
|
endif()
|
|
math(EXPR C "${C} + 1")
|
|
endforeach()
|
|
|
|
if(ENABLE_STATIC)
|
|
set(LINK_MODE_LIB STATIC)
|
|
set(LINK_MODE_MODULE STATIC)
|
|
else()
|
|
set(LINK_MODE_LIB SHARED)
|
|
set(LINK_MODE_MODULE MODULE)
|
|
endif()
|
|
|
|
# The packagelist is doing some magic: If we add XXX to the packagelist, we
|
|
# - may optionally set XXX_OPTIONS to pass to the find_package command
|
|
# - will call FindXXX.cmake
|
|
# - return found libraries in XXX_LIBRARIES
|
|
# - return found include in XXX_INCLUDE_DIRS
|
|
# - set HAVE_XXX
|
|
|
|
#The minimum package list
|
|
set(PACKAGELIST GLIB2 GMODULE2 PCAP M LEX YACC Perl SH PythonInterp)
|
|
set(GLIB2_FIND_REQUIRED)
|
|
set(GLIB2_MIN_VERSION 2.4.0)
|
|
set(PCAP_REQUIRED)
|
|
set(M_REQUIRED)
|
|
|
|
set(PACKAGELIST ${PACKAGELIST} HtmlViewer)
|
|
|
|
#Build the gui ?
|
|
if(BUILD_wireshark)
|
|
set(PACKAGELIST ${PACKAGELIST} GTK2)
|
|
set(GTK2_OPTIONS COMPONENTS gtk)
|
|
set(GTK2_DEBUG false)
|
|
endif()
|
|
|
|
if(BUILD_dumpcap)
|
|
set(PACKAGELIST ${PACKAGELIST} GTHREAD2)
|
|
set(GHTREAD2_REQUIRED)
|
|
endif()
|
|
|
|
# SMI SNMP
|
|
if(ENABLE_SMI)
|
|
set(PACKAGELIST ${PACKAGELIST} SMI)
|
|
endif()
|
|
|
|
# GNU crypto
|
|
if(ENABLE_GCRYPT)
|
|
set(PACKAGELIST ${PACKAGELIST} GCRYPT)
|
|
endif()
|
|
|
|
# GNU SSL/TLS support
|
|
if(ENABLE_GNUTLS)
|
|
set(PACKAGELIST ${PACKAGELIST} GNUTLS)
|
|
endif()
|
|
|
|
# Regular expressions lib
|
|
if(ENABLE_PCRE)
|
|
set(PACKAGELIST ${PACKAGELIST} PCRE)
|
|
endif()
|
|
|
|
# Kerberos
|
|
if(ENABLE_KERBEROS)
|
|
set(PACKAGELIST ${PACKAGELIST} KERBEROS)
|
|
endif()
|
|
|
|
# Portable audio
|
|
if(ENABLE_PORTAUDIO)
|
|
set(PACKAGELIST ${PACKAGELIST} PORTAUDIO)
|
|
endif()
|
|
|
|
|
|
# Prefer c-ares over adns
|
|
if(ENABLE_CARES) # C Asynchronouse resolver
|
|
set(PACKAGELIST ${PACKAGELIST} CARES)
|
|
elseif(ENABLE_ADNS) # Gnu asynchronous DNS
|
|
set(PACKAGELIST ${PACKAGELIST} ADNS)
|
|
endif()
|
|
|
|
# Zlib compression
|
|
if(ENABLE_ZLIB)
|
|
set(PACKAGELIST ${PACKAGELIST} ZLIB)
|
|
endif()
|
|
|
|
# Lua 5.1 dissectors
|
|
if(ENABLE_LUA)
|
|
set(PACKAGELIST ${PACKAGELIST} LUA)
|
|
endif()
|
|
|
|
# GeoIP address resolving
|
|
if(ENABLE_GEOIP)
|
|
set(PACKAGELIST ${PACKAGELIST} GEOIP)
|
|
endif()
|
|
|
|
# Capabilities
|
|
if(ENABLE_CAP)
|
|
set(PACKAGELIST ${PACKAGELIST} CAP)
|
|
endif()
|
|
|
|
if(ENABLE_PYTHON)
|
|
set(PACKAGELIST ${PACKAGELIST} PYTHON)
|
|
endif()
|
|
|
|
set(PACKAGELIST ${PACKAGELIST} YAPP)
|
|
|
|
set(PACKAGELIST ${PACKAGELIST} POD)
|
|
|
|
|
|
set(PROGLIST text2pcap mergecap capinfos editcap dumpcap)
|
|
|
|
#Let's loop the package list
|
|
foreach(PACKAGE ${PACKAGELIST})
|
|
if(${PACKAGE}_OPTIONS)
|
|
find_package(${PACKAGE} ${${PACKAGE}_OPTIONS})
|
|
elseif(${PACKAGE}_REQUIRED)
|
|
find_package(${PACKAGE} REQUIRED)
|
|
else()
|
|
find_package(${PACKAGE})
|
|
endif()
|
|
message(${PACKAGE}_FOUND)
|
|
if (${PACKAGE}_FOUND)
|
|
set(HAVE_LIB${PACKAGE} 1)
|
|
include_directories(${${PACKAGE}_INCLUDE_DIRS})
|
|
message(STATUS "${PACKAGE} includes: ${${PACKAGE}_INCLUDE_DIRS}")
|
|
message(STATUS "${PACKAGE} libs: ${${PACKAGE}_LIBRARIES}")
|
|
endif()
|
|
endforeach()
|
|
|
|
#packaging
|
|
include(CPackConfig.txt)
|
|
|
|
if(HAVE_LIBPYTHON)
|
|
set(HAVE_PYTHON 1)
|
|
set(PYTHON_DIR "${CMAKE_INSTALL_PREFIX}/lib/wireshark/python/${CPACK_PACKAGE_VERSION}")
|
|
endif()
|
|
if(HAVE_LIBLUA)
|
|
set(HAVE_LUA_H 1)
|
|
set(HAVE_LUA_5_1 1)
|
|
endif()
|
|
if(HAVE_LIBKERBEROS)
|
|
set(HAVE_KERBEROS 1)
|
|
# HAVE_HEIMDAL_KERBEROS
|
|
set(HAVE_MIT_KERBEROS 1)
|
|
set(HAVE_KEYTYPE_ARCFOUR_56 1)
|
|
endif()
|
|
if(HAVE_LIBGEOIP)
|
|
set(HAVE_GEOIP 1)
|
|
endif()
|
|
if(HAVE_LIBCARES)
|
|
set(HAVE_C_ARES 1)
|
|
endif()
|
|
if(HAVE_LIBADNS)
|
|
set(HAVE_GNU_ADNS 1)
|
|
endif()
|
|
if(ENABLE_AIRPCAP)
|
|
set(HAVE_AIRPCAP 1)
|
|
endif()
|
|
# That's the name autofoo uses
|
|
if(HAVE_LIBZLIB)
|
|
set(HAVE_LIBZ 1)
|
|
endif()
|
|
|
|
include(ConfigureChecks.cmake)
|
|
|
|
#Big or little endian ?
|
|
include(TestBigEndian)
|
|
test_big_endian(WORDS_BIGENDIAN)
|
|
|
|
set(DATAFILE_DIR "${CMAKE_INSTALL_PREFIX}/share/${CPACK_PACKAGE_NAME}")
|
|
|
|
if(ENABLE_PLUGINS)
|
|
set(HAVE_PLUGINS 1)
|
|
set(PLUGIN_DIR="${DATAFILE_DIR}/plugins/${CPACK_PACKAGE_VERSION}")
|
|
set(PLUGIN_SRC_DIRS
|
|
plugins/asn1
|
|
plugins/docsis
|
|
plugins/ethercat
|
|
plugins/giop
|
|
plugins/gryphon
|
|
plugins/interlink
|
|
plugins/irda
|
|
plugins/m2m
|
|
plugins/mate
|
|
plugins/opcua
|
|
plugins/profinet
|
|
plugins/sercosiii
|
|
plugins/stats_tree
|
|
plugins/unistim
|
|
plugins/wimax
|
|
plugins/wimaxasncp
|
|
)
|
|
# It seems this stuff doesn't build with autofoo either...
|
|
# if(YAPP_FOUND)
|
|
# set(PLUGIN_SRC_DIRS
|
|
# ${PLUGIN_SRC_DIRS}
|
|
# plugins/tpg
|
|
# )
|
|
# endif()
|
|
else()
|
|
set(PLUGIN_SRC_DIRS )
|
|
endif()
|
|
|
|
foreach(PLUGIN_DIR ${PLUGIN_SRC_DIRS})
|
|
add_subdirectory( ${PLUGIN_DIR} )
|
|
endforeach()
|
|
|
|
add_subdirectory( codecs )
|
|
add_subdirectory( epan )
|
|
add_subdirectory( tools/lemon )
|
|
add_subdirectory( wiretap )
|
|
add_subdirectory( wsutil )
|
|
|
|
if(BUILD_wireshark AND GTK2_FOUND)
|
|
add_subdirectory( gtk )
|
|
endif()
|
|
|
|
# Basedir where to install guides
|
|
set(DOC_DIR "$ENV{docdir}")
|
|
message(STATUS "docdir: ${DOC_DIR}")
|
|
|
|
if(ENABLE_GUIDES)
|
|
add_subdirectory( docbook )
|
|
endif()
|
|
|
|
#Platform specific
|
|
if(UNIX)
|
|
set(WS_VAR_IMPORT "extern")
|
|
endif()
|
|
|
|
if(APPLE)
|
|
#TODO verify that APPLE implies HAVE_OS_X_FRAMEWORKS
|
|
set(HAVE_OS_X_FRAMEWORKS 1)
|
|
FIND_LIBRARY (APPLE_CORE_SERVICES_LIBRARY CoreServices)
|
|
FIND_LIBRARY (APPLE_COCOA_LIBRARY Cocoa)
|
|
endif()
|
|
|
|
if(WIN32)
|
|
add_definitions(-D_NEED_VAR_IMPORT_)
|
|
set(WS_VAR_IMPORT "__declspec(dllimport) extern")
|
|
set(WS_MSVC_NORETURN "__declspec(noreturn)")
|
|
|
|
# Disable deprecation
|
|
if(MSVC80 OR MSVC90)
|
|
add_definitions(-D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE)
|
|
endif()
|
|
else()
|
|
set(WS_MSVC_NORETURN " ")
|
|
endif()
|
|
|
|
configure_file(${CMAKE_SOURCE_DIR}/cmakeconfig.h.in ${CMAKE_BINARY_DIR}/config.h)
|
|
|
|
include(FeatureSummary)
|
|
#SET_FEATURE_INFO(NAME DESCRIPTION [URL [COMMENT] ]
|
|
PRINT_ENABLED_FEATURES()
|
|
PRINT_DISABLED_FEATURES()
|
|
|
|
link_directories(
|
|
${CMAKE_BINARY_DIR}/gtk
|
|
${CMAKE_BINARY_DIR}/codecs
|
|
${CMAKE_BINARY_DIR}/epan
|
|
${CMAKE_BINARY_DIR}/wiretap
|
|
${CMAKE_BINARY_DIR}/wsutil
|
|
)
|
|
|
|
ADD_CUSTOM_TARGET(
|
|
svnversion ALL
|
|
COMMAND ${PERL}
|
|
${CMAKE_CURRENT_SOURCE_DIR}/make-version.pl
|
|
${CMAKE_CURRENT_SOURCE_DIR}
|
|
DEPENDS
|
|
${CMAKE_CURRENT_SOURCE_DIR}/make-version.pl
|
|
)
|
|
|
|
ADD_CUSTOM_COMMAND(
|
|
OUTPUT svnversion.h
|
|
COMMAND ${PERL}
|
|
${CMAKE_CURRENT_SOURCE_DIR}/make-version.pl
|
|
${CMAKE_CURRENT_SOURCE_DIR}
|
|
DEPENDS
|
|
${CMAKE_CURRENT_SOURCE_DIR}/make-version.pl
|
|
)
|
|
|
|
register_tap_files(tshark-tap-register.c
|
|
${TSHARK_TAP_SRC}
|
|
)
|
|
|
|
ADD_CUSTOM_COMMAND(
|
|
OUTPUT ps.c
|
|
COMMAND ${PYTHON_EXECUTABLE}
|
|
${CMAKE_CURRENT_SOURCE_DIR}/tools/rdps.py
|
|
${CMAKE_CURRENT_SOURCE_DIR}/print.ps
|
|
ps.c
|
|
DEPENDS
|
|
${CMAKE_CURRENT_SOURCE_DIR}/tools/rdps.py
|
|
${CMAKE_CURRENT_SOURCE_DIR}/print.ps
|
|
)
|
|
|
|
if(UNIX)
|
|
set(PLATFORM_SRC
|
|
capture-pcap-util-unix.c
|
|
)
|
|
endif()
|
|
|
|
if(WIN32)
|
|
set(PLATFORM_SRC
|
|
capture-wpcap.c capture_wpcap_packet.c
|
|
)
|
|
endif()
|
|
|
|
set(WTAP_PLUGIN_SOURCES
|
|
epan/plugins.c
|
|
epan/report_err.c
|
|
epan/filesystem.c
|
|
)
|
|
|
|
set(SHARK_COMMON_CAPTURE_SRC
|
|
capture_errs.c
|
|
capture_ifinfo.c
|
|
capture_ui_utils.c
|
|
)
|
|
|
|
set(WIRESHARK_COMMON_SRC
|
|
${PLATFORM_SRC}
|
|
capture-pcap-util.c
|
|
cfile.c
|
|
clopts_common.c
|
|
disabled_protos.c
|
|
frame_data_sequence.c
|
|
packet-range.c
|
|
print.c
|
|
ps.c
|
|
svnversion.h
|
|
sync_pipe_write.c
|
|
timestats.c
|
|
util.c
|
|
tap-megaco-common.c
|
|
tap-rtp-common.c
|
|
version_info.c
|
|
)
|
|
|
|
set(TSHARK_TAP_SRC
|
|
tap-afpstat.c
|
|
tap-ansi_astat.c
|
|
tap-bootpstat.c
|
|
tap-camelcounter.c
|
|
tap-camelsrt.c
|
|
tap-comparestat.c
|
|
tap-dcerpcstat.c
|
|
tap-diameter-avp.c
|
|
tap-funnel.c
|
|
tap-gsm_astat.c
|
|
tap-h225counter.c
|
|
tap-h225rassrt.c
|
|
tap-httpstat.c
|
|
tap-icmpstat.c
|
|
tap-icmpv6stat.c
|
|
tap-iostat.c
|
|
tap-iousers.c
|
|
tap-mgcpstat.c
|
|
tap-megacostat.c
|
|
tap-protocolinfo.c
|
|
tap-protohierstat.c
|
|
tap-radiusstat.c
|
|
tap-rpcstat.c
|
|
tap-rpcprogs.c
|
|
tap-rtp.c
|
|
tap-scsistat.c
|
|
tap-sctpchunkstat.c
|
|
tap-sipstat.c
|
|
tap-smbsids.c
|
|
tap-smbstat.c
|
|
tap-stats_tree.c
|
|
tap-sv.c
|
|
tap-wspstat.c
|
|
)
|
|
|
|
set(INSTALL_DIRS
|
|
diameter
|
|
docbook
|
|
dtds
|
|
help
|
|
radius
|
|
tpncp
|
|
wimaxasncp
|
|
)
|
|
|
|
set(INSTALL_FILES
|
|
${CMAKE_BINARY_DIR}/AUTHORS-SHORT
|
|
COPYING
|
|
${CMAKE_BINARY_DIR}/capinfos.html
|
|
cfilters
|
|
colorfilters
|
|
dfilters
|
|
${CMAKE_BINARY_DIR}/dftest.html
|
|
${CMAKE_BINARY_DIR}/dumpcap.html
|
|
${CMAKE_BINARY_DIR}/editcap.html
|
|
${CMAKE_BINARY_DIR}/idl2wrs.html
|
|
ipmap.html
|
|
manuf
|
|
${CMAKE_BINARY_DIR}/mergecap.html
|
|
pdml2html.xsl
|
|
${CMAKE_BINARY_DIR}/randpkt.html
|
|
${CMAKE_BINARY_DIR}/rawshark.html
|
|
services
|
|
smi_modules
|
|
${CMAKE_BINARY_DIR}/text2pcap.html
|
|
${CMAKE_BINARY_DIR}/tshark.html
|
|
${CMAKE_BINARY_DIR}/wireshark-filter.html
|
|
${CMAKE_BINARY_DIR}/wireshark.html
|
|
docbook/ws.css
|
|
)
|
|
|
|
set(LIBEPAN_LIBS
|
|
# @NSL_LIBS@ # -lnsl
|
|
# @SOCKET_LIBS@ # -lsocket
|
|
# @SSL_LIBS@ # -lcrypto
|
|
epan
|
|
# $(plugin_ldadd) # in case of static
|
|
${PCRE_LIBRARIES}
|
|
${PCAP_LIBRARIES}
|
|
${CARES_LIBRARIES}
|
|
${ADNS_LIBRARIES}
|
|
${KERBEROS_LIBRARIES}
|
|
${LUA_LIBRARIES}
|
|
${PYTHON_LIBRARIES}
|
|
${GEOIP_LIBRARIES}
|
|
${GCRYPT_LIBRARIES}
|
|
${GNUTLS_LIBRARIES}
|
|
${SMI_LIBRARIES}
|
|
${ZLIB_LIBRARIES}
|
|
${M_LIBRARIES}
|
|
)
|
|
|
|
if(BUILD_wireshark AND GTK2_FOUND)
|
|
set(wireshark_LIBS
|
|
ui
|
|
${GTK2_LIBRARIES}
|
|
codecs
|
|
${PORTAUDIO_LIBRARIES}
|
|
${LIBEPAN_LIBS}
|
|
${APPLE_CORE_SERVICES_LIBRARY}
|
|
${APPLE_COCOA_LIBRARY}
|
|
)
|
|
set(wireshark_FILES
|
|
airpcap_loader.c
|
|
alert_box.c
|
|
capture.c
|
|
capture_info.c
|
|
capture_opts.c
|
|
capture_sync.c
|
|
color_filters.c
|
|
file.c
|
|
fileset.c
|
|
filters.c
|
|
g711.c
|
|
merge.c
|
|
proto_hier_stats.c
|
|
summary.c
|
|
tempfile.c
|
|
u3.c
|
|
${SHARK_COMMON_CAPTURE_SRC}
|
|
${WIRESHARK_COMMON_SRC}
|
|
)
|
|
add_executable(wireshark ${wireshark_FILES})
|
|
add_dependencies(wireshark svnversion)
|
|
set_target_properties(wireshark PROPERTIES LINK_FLAGS "${WS_LINK_FLAGS}")
|
|
target_link_libraries(wireshark ${wireshark_LIBS})
|
|
install(TARGETS wireshark RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
|
endif()
|
|
|
|
if(BUILD_tshark)
|
|
set(tshark_LIBS
|
|
${LIBEPAN_LIBS}
|
|
${APPLE_COCOA_LIBRARY}
|
|
)
|
|
set(tshark_FILES
|
|
capture_opts.c
|
|
capture_sync.c
|
|
tempfile.c
|
|
tshark-tap-register.c
|
|
tshark.c
|
|
${TSHARK_TAP_SRC}
|
|
${SHARK_COMMON_CAPTURE_SRC}
|
|
${WIRESHARK_COMMON_SRC}
|
|
)
|
|
add_executable(tshark ${tshark_FILES})
|
|
add_dependencies(tshark svnversion)
|
|
set_target_properties(tshark PROPERTIES LINK_FLAGS "${WS_LINK_FLAGS}")
|
|
target_link_libraries(tshark ${tshark_LIBS})
|
|
install(TARGETS tshark RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
|
endif()
|
|
|
|
if(BUILD_rawshark)
|
|
set(rawshark_LIBS
|
|
${LIBEPAN_LIBS}
|
|
${APPLE_COCOA_LIBRARY}
|
|
)
|
|
set(rawshark_FILES
|
|
${WIRESHARK_COMMON_SRC}
|
|
rawshark.c
|
|
)
|
|
add_executable(rawshark ${rawshark_FILES})
|
|
add_dependencies(rawshark svnversion)
|
|
set_target_properties(rawshark PROPERTIES LINK_FLAGS "${WS_LINK_FLAGS}")
|
|
target_link_libraries(rawshark ${rawshark_LIBS})
|
|
install(TARGETS rawshark RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
|
endif()
|
|
|
|
if(BUILD_dftest)
|
|
set(dftest_LIBS
|
|
${LIBEPAN_LIBS}
|
|
)
|
|
set(dftest_FILES
|
|
dftest.c
|
|
util.c
|
|
)
|
|
add_executable(dftest ${dftest_FILES})
|
|
set_target_properties(dftest PROPERTIES LINK_FLAGS "${WS_LINK_FLAGS}")
|
|
target_link_libraries(dftest ${dftest_LIBS})
|
|
install(TARGETS dftest RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
|
endif()
|
|
|
|
if(BUILD_randpkt)
|
|
set(randpkt_LIBS
|
|
wiretap
|
|
${M_LIBRARIES}
|
|
${PCAP_LIBRARIES}
|
|
# @SOCKET_LIBS@
|
|
# @NSL_LIBS@
|
|
${CARES_LIBRARIES}
|
|
${ADNS_LIBRARIES}
|
|
${ZLIB_LIBRARIES}
|
|
)
|
|
set(randpkt_FILES
|
|
randpkt.c
|
|
)
|
|
add_executable(randpkt ${randpkt_FILES})
|
|
set_target_properties(randpkt PROPERTIES LINK_FLAGS "${WS_LINK_FLAGS}")
|
|
target_link_libraries(randpkt ${randpkt_LIBS})
|
|
install(TARGETS randpkt RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
|
endif()
|
|
|
|
if(BUILD_text2pcap)
|
|
set(text2pcap_LIBS
|
|
wiretap
|
|
${M_LIBRARIES}
|
|
${ZLIB_LIBRARIES}
|
|
)
|
|
set(text2pcap_CLEAN_FILES
|
|
text2pcap.c
|
|
)
|
|
set(text2pcap_FILES
|
|
${text2pcap_CLEAN_FILES}
|
|
)
|
|
add_lex_files(text2pcap_FILES
|
|
text2pcap-scanner.l
|
|
)
|
|
add_executable(text2pcap ${text2pcap_FILES})
|
|
add_dependencies(text2pcap svnversion)
|
|
set_target_properties(text2pcap PROPERTIES LINK_FLAGS "${WS_LINK_FLAGS}")
|
|
target_link_libraries(text2pcap ${text2pcap_LIBS})
|
|
install(TARGETS text2pcap RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
|
endif()
|
|
|
|
if(BUILD_mergecap)
|
|
set(mergecap_LIBS
|
|
wiretap
|
|
${ZLIB_LIBRARIES}
|
|
)
|
|
set(mergecap_FILES
|
|
mergecap.c
|
|
merge.c
|
|
svnversion.h
|
|
)
|
|
add_executable(mergecap ${mergecap_FILES})
|
|
add_dependencies(mergecap svnversion)
|
|
set_target_properties(mergecap PROPERTIES LINK_FLAGS "${WS_LINK_FLAGS}")
|
|
target_link_libraries(mergecap ${mergecap_LIBS})
|
|
install(TARGETS mergecap RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
|
endif()
|
|
|
|
if(BUILD_capinfos)
|
|
set(capinfos_LIBS
|
|
wiretap
|
|
${ZLIB_LIBRARIES}
|
|
${GCRYPT_LIBRARIES}
|
|
${APPLE_COCOA_LIBRARY}
|
|
)
|
|
set(capinfos_FILES
|
|
capinfos.c
|
|
${WTAP_PLUGIN_SOURCES}
|
|
)
|
|
add_executable(capinfos ${capinfos_FILES})
|
|
add_dependencies(capinfos svnversion)
|
|
set_target_properties(capinfos PROPERTIES LINK_FLAGS "${WS_LINK_FLAGS}")
|
|
target_link_libraries(capinfos ${capinfos_LIBS})
|
|
install(TARGETS capinfos RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
|
endif()
|
|
|
|
if(BUILD_editcap)
|
|
set(editcap_LIBS
|
|
wiretap
|
|
${ZLIB_LIBRARIES}
|
|
)
|
|
set(editcap_FILES
|
|
editcap.c
|
|
epan/crypt/crypt-md5.c
|
|
epan/nstime.c
|
|
${WTAP_PLUGIN_SOURCES}
|
|
)
|
|
add_executable(editcap ${editcap_FILES})
|
|
add_dependencies(editcap svnversion)
|
|
set_target_properties(editcap PROPERTIES LINK_FLAGS "${WS_LINK_FLAGS}")
|
|
target_link_libraries(editcap ${editcap_LIBS})
|
|
install(TARGETS editcap RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
|
endif()
|
|
|
|
if(BUILD_dumpcap)
|
|
set(dumpcap_LIBS
|
|
# @INET_NTOP_LO@
|
|
wsutil
|
|
${PCAP_LIBRARIES}
|
|
${CAP_LIBRARIES}
|
|
# @SOCKET_LIBS@
|
|
# @NSL_LIBS@
|
|
${GLIB2_LIBRARIES}
|
|
${GTHREAD2_LIBRARIES}
|
|
${ZLIB_LIBRARIES}
|
|
${APPLE_COCOA_LIBRARY}
|
|
)
|
|
set(dumpcap_FILES
|
|
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
|
|
${PLATFORM_SRC}
|
|
)
|
|
add_executable(dumpcap ${dumpcap_FILES})
|
|
add_dependencies(dumpcap svnversion)
|
|
set_target_properties(dumpcap PROPERTIES LINK_FLAGS "${WS_LINK_FLAGS}")
|
|
target_link_libraries(dumpcap ${dumpcap_LIBS})
|
|
install(TARGETS dumpcap RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
|
endif()
|
|
|
|
ADD_CUSTOM_COMMAND(
|
|
OUTPUT ${CMAKE_BINARY_DIR}/AUTHORS-SHORT
|
|
COMMAND ${PERL}
|
|
${CMAKE_SOURCE_DIR}/doc/perlnoutf.pl
|
|
${CMAKE_SOURCE_DIR}/doc/make-authors-short.pl
|
|
< ${CMAKE_SOURCE_DIR}/AUTHORS
|
|
> ${CMAKE_BINARY_DIR}/AUTHORS-SHORT
|
|
DEPENDS
|
|
${CMAKE_SOURCE_DIR}/doc/perlnoutf.pl
|
|
${CMAKE_SOURCE_DIR}/doc/make-authors-short.pl
|
|
${CMAKE_SOURCE_DIR}/AUTHORS
|
|
)
|
|
|
|
ADD_CUSTOM_COMMAND(
|
|
OUTPUT ${CMAKE_BINARY_DIR}/AUTHORS-SHORT-FORMAT
|
|
${CMAKE_BINARY_DIR}/wireshark.pod
|
|
COMMAND ${PERL}
|
|
${CMAKE_SOURCE_DIR}/doc/perlnoutf.pl
|
|
${CMAKE_SOURCE_DIR}/doc/make-authors-format.pl
|
|
< ${CMAKE_BINARY_DIR}/AUTHORS-SHORT
|
|
> ${CMAKE_BINARY_DIR}/AUTHORS-SHORT-FORMAT
|
|
COMMAND cat
|
|
${CMAKE_SOURCE_DIR}/doc/wireshark.pod.template
|
|
${CMAKE_BINARY_DIR}/AUTHORS-SHORT-FORMAT
|
|
> ${CMAKE_BINARY_DIR}/wireshark.pod
|
|
DEPENDS
|
|
${CMAKE_SOURCE_DIR}/doc/perlnoutf.pl
|
|
${CMAKE_SOURCE_DIR}/doc/make-authors-format.pl
|
|
${CMAKE_BINARY_DIR}/AUTHORS-SHORT
|
|
${CMAKE_SOURCE_DIR}/doc/wireshark.pod.template
|
|
)
|
|
|
|
pod2manhtml( ${CMAKE_SOURCE_DIR}/doc/capinfos 1 )
|
|
pod2manhtml( ${CMAKE_SOURCE_DIR}/doc/dftest 1 )
|
|
pod2manhtml( ${CMAKE_SOURCE_DIR}/doc/dumpcap 1 )
|
|
pod2manhtml( ${CMAKE_SOURCE_DIR}/doc/editcap 1 )
|
|
pod2manhtml( ${CMAKE_SOURCE_DIR}/doc/idl2wrs 1 )
|
|
pod2manhtml( ${CMAKE_SOURCE_DIR}/doc/mergecap 1 )
|
|
pod2manhtml( ${CMAKE_SOURCE_DIR}/doc/randpkt 1 )
|
|
pod2manhtml( ${CMAKE_SOURCE_DIR}/doc/rawshark 1 )
|
|
pod2manhtml( ${CMAKE_SOURCE_DIR}/doc/text2pcap 1 )
|
|
pod2manhtml( ${CMAKE_SOURCE_DIR}/doc/tshark 1 )
|
|
pod2manhtml( wireshark 1 )
|
|
pod2manhtml( ${CMAKE_SOURCE_DIR}/doc/wireshark-filter 4 )
|
|
|
|
add_custom_target(
|
|
auxiliary ALL
|
|
DEPENDS
|
|
AUTHORS-SHORT
|
|
capinfos.html
|
|
dftest.html
|
|
dumpcap.html
|
|
editcap.html
|
|
idl2wrs.html
|
|
mergecap.html
|
|
randpkt.html
|
|
rawshark.html
|
|
text2pcap.html
|
|
tshark.html
|
|
wireshark.html
|
|
wireshark-filter.html
|
|
)
|
|
|
|
set(MAN1_FILES
|
|
${CMAKE_BINARY_DIR}/capinfos.1
|
|
${CMAKE_BINARY_DIR}/dftest.1
|
|
${CMAKE_BINARY_DIR}/dumpcap.1
|
|
${CMAKE_BINARY_DIR}/editcap.1
|
|
${CMAKE_BINARY_DIR}/idl2wrs.1
|
|
${CMAKE_BINARY_DIR}/mergecap.1
|
|
${CMAKE_BINARY_DIR}/randpkt.1
|
|
${CMAKE_BINARY_DIR}/rawshark.1
|
|
${CMAKE_BINARY_DIR}/text2pcap.1
|
|
${CMAKE_BINARY_DIR}/tshark.1
|
|
${CMAKE_BINARY_DIR}/wireshark.1
|
|
)
|
|
|
|
set(MAN4_FILES
|
|
${CMAKE_BINARY_DIR}/wireshark-filter.4
|
|
)
|
|
|
|
set(CLEAN_FILES
|
|
${wireshark_FILES}
|
|
${tshark_FILES}
|
|
${rawshark_FILES}
|
|
${dftest_FILES}
|
|
${randpkt_FILES}
|
|
${text2pcap_CLEAN_FILES}
|
|
${mergecap_FILES}
|
|
${capinfos_FILES}
|
|
${editcap_FILES}
|
|
${dumpcap_FILES}
|
|
)
|
|
|
|
if (WERROR)
|
|
set_source_files_properties(
|
|
${CLEAN_FILES}
|
|
PROPERTIES
|
|
COMPILE_FLAGS -Werror
|
|
)
|
|
endif()
|
|
|
|
install(
|
|
FILES
|
|
${INSTALL_FILES}
|
|
DESTINATION
|
|
${CMAKE_INSTALL_DATADIR}/${CPACK_PACKAGE_NAME}
|
|
)
|
|
|
|
install(
|
|
FILES
|
|
${MAN1_FILES}
|
|
DESTINATION
|
|
${CMAKE_INSTALL_MANDIR}/man1
|
|
)
|
|
|
|
install(
|
|
FILES
|
|
${MAN4_FILES}
|
|
DESTINATION
|
|
${CMAKE_INSTALL_MANDIR}/man4
|
|
)
|
|
|
|
install(
|
|
DIRECTORY
|
|
${INSTALL_DIRS}
|
|
DIRECTORY_PERMISSIONS
|
|
OWNER_EXECUTE OWNER_WRITE OWNER_READ
|
|
GROUP_EXECUTE GROUP_READ
|
|
WORLD_EXECUTE WORLD_READ
|
|
DESTINATION
|
|
${CMAKE_INSTALL_DATADIR}/${CPACK_PACKAGE_NAME}
|
|
PATTERN ".svn" EXCLUDE
|
|
PATTERN "Makefile.*" EXCLUDE
|
|
PATTERN "faq.py" EXCLUDE
|
|
)
|