X-Git-Url: http://git.samba.org/?p=metze%2Fwireshark%2Fwip.git;a=blobdiff_plain;f=CMakeLists.txt;h=7f1bf637a6f0223b5db4c8f47d63c85bae0df913;hp=81206536a19fea74343e5a23937423bf83d65914;hb=a0f614494bc6ba766c018ce6646169abf6cfdc02;hpb=69df102b4e772db2bf3c029995d531ace383bd87 diff --git a/CMakeLists.txt b/CMakeLists.txt index 81206536a1..7f1bf637a6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -26,6 +26,13 @@ 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) + # Backward compatibility for versions < 2.6.3 + cmake_policy(SET CMP0011 OLD) +# 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") @@ -72,8 +79,8 @@ 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) +# Enable with: "make VERBOSE=1" +set(CMAKE_VERBOSE_MAKEFILE OFF) #Defines CMAKE_INSTALL_BINDIR, CMAKE_INSTALL_DATADIR, etc ... include(CMakeInstallDirs) @@ -108,6 +115,7 @@ set(WIRESHARK_C_FLAGS -Warray-bounds -Wcast-align -Wformat-security + -Wold-style-definition -fexcess-precision=fast ) @@ -135,7 +143,10 @@ set(WIRESHARK_EXTRA_C_FLAGS -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 @@ -149,8 +160,7 @@ endif() add_definitions( -DHAVE_CONFIG_H - -DPACKAGE=\"wireshark\" - -DNEW_PACKET_LIST + -DG_DISABLE_DEPRECATED ) # Counterhack to work around some cache magic in CHECK_C_SOURCE_COMPILES @@ -217,85 +227,111 @@ endif() # - set HAVE_XXX #The minimum package list -set(PACKAGELIST GLIB2 PCAP M LEX YACC Perl SH PythonInterp HtmlViewer ${PACKAGELIST}) +set(PACKAGELIST GLIB2 GMODULE2 M LEX YACC Perl SH PythonInterp) +set(GLIB2_FIND_REQUIRED) +set(GLIB2_MIN_VERSION 2.14.0) +set(PCAP_REQUIRED) +set(M_REQUIRED) + +set(PACKAGELIST ${PACKAGELIST} HtmlViewer) + +if(ENABLE_PCAP) + set(PACKAGELIST ${PACKAGELIST} PCAP) +endif() #Build the gui ? if(BUILD_wireshark) - set(PACKAGELIST GTK2 ${PACKAGELIST}) - set(GTK2_OPTIONS COMPONENTS gtk) - set(GTK2_DEBUG false) + if(ENABLE_GTK3) + set(PACKAGELIST ${PACKAGELIST} GTK3) + set(ENABLE_UI_MANAGER ON) + else() + set(PACKAGELIST ${PACKAGELIST} GTK2) + set(GTK2_OPTIONS COMPONENTS gtk) + set(GTK2_FIND_VERSION 2.12) + set(GTK2_DEBUG false) + endif() + if(ENABLE_THREADS) + set(PACKAGELIST ${PACKAGELIST} GTHREAD2) + endif() +endif() + +if(BUILD_dumpcap) + set(PACKAGELIST ${PACKAGELIST} GTHREAD2) + set(GHTREAD2_REQUIRED) endif() # SMI SNMP if(ENABLE_SMI) - set(PACKAGELIST SMI ${PACKAGELIST}) + set(PACKAGELIST ${PACKAGELIST} SMI) endif() # GNU crypto if(ENABLE_GCRYPT) - set(PACKAGELIST GCRYPT ${PACKAGELIST}) + set(PACKAGELIST ${PACKAGELIST} GCRYPT) endif() # GNU SSL/TLS support if(ENABLE_GNUTLS) - set(PACKAGELIST GNUTLS ${PACKAGELIST}) -endif() - -# Regular expressions lib -if(ENABLE_PCRE) - set(PACKAGELIST PCRE ${PACKAGELIST}) + set(PACKAGELIST ${PACKAGELIST} GNUTLS) endif() # Kerberos if(ENABLE_KERBEROS) - set(PACKAGELIST KERBEROS ${PACKAGELIST}) + set(PACKAGELIST ${PACKAGELIST} KERBEROS) endif() # Portable audio if(ENABLE_PORTAUDIO) - set(PACKAGELIST PORTAUDIO ${PACKAGELIST}) + set(PACKAGELIST ${PACKAGELIST} PORTAUDIO) endif() # Prefer c-ares over adns if(ENABLE_CARES) # C Asynchronouse resolver - set(PACKAGELIST CARES ${PACKAGELIST}) + set(PACKAGELIST ${PACKAGELIST} CARES) elseif(ENABLE_ADNS) # Gnu asynchronous DNS - set(PACKAGELIST ADNS ${PACKAGELIST}) + set(PACKAGELIST ${PACKAGELIST} ADNS) endif() # Zlib compression if(ENABLE_ZLIB) - set(PACKAGELIST ZLIB ${PACKAGELIST}) + set(PACKAGELIST ${PACKAGELIST} ZLIB) endif() # Lua 5.1 dissectors if(ENABLE_LUA) - set(PACKAGELIST LUA ${PACKAGELIST}) + set(PACKAGELIST ${PACKAGELIST} LUA) endif() # GeoIP address resolving if(ENABLE_GEOIP) - set(PACKAGELIST GEOIP ${PACKAGELIST}) + set(PACKAGELIST ${PACKAGELIST} GEOIP) endif() # Capabilities if(ENABLE_CAP) - set(PACKAGELIST CAP ${PACKAGELIST}) + set(PACKAGELIST ${PACKAGELIST} CAP) endif() if(ENABLE_PYTHON) - set(PACKAGELIST PYTHON ${PACKAGELIST}) + 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}) - else() + elseif(${PACKAGE}_REQUIRED) find_package(${PACKAGE} REQUIRED) + else() + find_package(${PACKAGE}) endif() message(${PACKAGE}_FOUND) if (${PACKAGE}_FOUND) @@ -306,8 +342,6 @@ foreach(PACKAGE ${PACKAGELIST}) endif() endforeach() -find_package(YAPP) - #packaging include(CPackConfig.txt) @@ -337,6 +371,10 @@ endif() if(ENABLE_AIRPCAP) set(HAVE_AIRPCAP 1) endif() +# No matter which version of GTK is present +if(GTK2_FOUND OR GTK3_FOUND) + set(GTK_FOUND ON) +endif() # That's the name autofoo uses if(HAVE_LIBZLIB) set(HAVE_LIBZ 1) @@ -359,13 +397,11 @@ if(ENABLE_PLUGINS) 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 @@ -388,16 +424,32 @@ endforeach() add_subdirectory( codecs ) add_subdirectory( epan ) -add_subdirectory( gtk ) add_subdirectory( tools/lemon ) add_subdirectory( wiretap ) add_subdirectory( wsutil ) +if(BUILD_wireshark AND GTK_FOUND) + add_subdirectory( gtk ) + if (ENABLE_UI_MANAGER) + set(MAIN_MENU_USE_UIMANAGER 1) + endif() +endif() + +# Basedir where to install guides +set(DOC_DIR "$ENV{docdir}") +message(STATUS "docdir: ${DOC_DIR}") + if(ENABLE_GUIDES) add_subdirectory( docbook ) endif() -find_package(POD) +if(ENABLE_PCAP_NG_DEFAULT) + set(PCAP_NG_DEFAULT 1) +endif() + +if(ENABLE_THREADS) + set(USE_THREADS 1) +endif() #Platform specific if(UNIX) @@ -414,11 +466,14 @@ 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) @@ -429,11 +484,11 @@ PRINT_ENABLED_FEATURES() PRINT_DISABLED_FEATURES() link_directories( - gtk - codecs - epan - wiretap - wsutil + ${CMAKE_BINARY_DIR}/gtk + ${CMAKE_BINARY_DIR}/codecs + ${CMAKE_BINARY_DIR}/epan + ${CMAKE_BINARY_DIR}/wiretap + ${CMAKE_BINARY_DIR}/wsutil ) ADD_CUSTOM_TARGET( @@ -499,6 +554,7 @@ set(WIRESHARK_COMMON_SRC cfile.c clopts_common.c disabled_protos.c + frame_data_sequence.c packet-range.c print.c ps.c @@ -520,21 +576,29 @@ set(TSHARK_TAP_SRC tap-comparestat.c tap-dcerpcstat.c tap-diameter-avp.c + tap-expert.c tap-funnel.c tap-gsm_astat.c tap-h225counter.c tap-h225rassrt.c + tap-hosts.c tap-httpstat.c + tap-icmpstat.c + tap-icmpv6stat.c tap-iostat.c tap-iousers.c + tap-macltestat.c tap-mgcpstat.c tap-megacostat.c tap-protocolinfo.c tap-protohierstat.c tap-radiusstat.c + tap-rlcltestat.c tap-rpcstat.c tap-rpcprogs.c tap-rtp.c + tap-rtspstat.c + tap-scsistat.c tap-sctpchunkstat.c tap-sipstat.c tap-smbsids.c @@ -546,6 +610,7 @@ set(TSHARK_TAP_SRC set(INSTALL_DIRS diameter + docbook dtds help radius @@ -567,6 +632,7 @@ set(INSTALL_FILES ipmap.html manuf ${CMAKE_BINARY_DIR}/mergecap.html + pdml2html.xsl ${CMAKE_BINARY_DIR}/randpkt.html ${CMAKE_BINARY_DIR}/rawshark.html services @@ -584,7 +650,6 @@ set(LIBEPAN_LIBS # @SSL_LIBS@ # -lcrypto epan # $(plugin_ldadd) # in case of static - ${PCRE_LIBRARIES} ${PCAP_LIBRARIES} ${CARES_LIBRARIES} ${ADNS_LIBRARIES} @@ -599,10 +664,12 @@ set(LIBEPAN_LIBS ${M_LIBRARIES} ) -if(BUILD_wireshark) +if(BUILD_wireshark AND GTK_FOUND) set(wireshark_LIBS ui ${GTK2_LIBRARIES} + ${GTK3_LIBRARIES} + ${GTHREAD2_LIBRARIES} codecs ${PORTAUDIO_LIBRARIES} ${LIBEPAN_LIBS} @@ -625,12 +692,13 @@ if(BUILD_wireshark) 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}) + 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() @@ -652,12 +720,12 @@ if(BUILD_tshark) ) add_executable(tshark ${tshark_FILES}) add_dependencies(tshark svnversion) - set_target_properties(tshark PROPERTIES LINK_FLAGS ${WS_LINK_FLAGS}) + 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) +if(BUILD_rawshark AND PCAP_FOUND) set(rawshark_LIBS ${LIBEPAN_LIBS} ${APPLE_COCOA_LIBRARY} @@ -668,7 +736,7 @@ if(BUILD_rawshark) ) add_executable(rawshark ${rawshark_FILES}) add_dependencies(rawshark svnversion) - set_target_properties(rawshark PROPERTIES LINK_FLAGS ${WS_LINK_FLAGS}) + 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() @@ -682,7 +750,7 @@ if(BUILD_dftest) util.c ) add_executable(dftest ${dftest_FILES}) - set_target_properties(dftest PROPERTIES LINK_FLAGS ${WS_LINK_FLAGS}) + 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() @@ -702,7 +770,7 @@ if(BUILD_randpkt) randpkt.c ) add_executable(randpkt ${randpkt_FILES}) - set_target_properties(randpkt PROPERTIES LINK_FLAGS ${WS_LINK_FLAGS}) + 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() @@ -724,7 +792,7 @@ if(BUILD_text2pcap) ) add_executable(text2pcap ${text2pcap_FILES}) add_dependencies(text2pcap svnversion) - set_target_properties(text2pcap PROPERTIES LINK_FLAGS ${WS_LINK_FLAGS}) + 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() @@ -741,7 +809,7 @@ if(BUILD_mergecap) ) add_executable(mergecap ${mergecap_FILES}) add_dependencies(mergecap svnversion) - set_target_properties(mergecap PROPERTIES LINK_FLAGS ${WS_LINK_FLAGS}) + 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() @@ -758,7 +826,8 @@ if(BUILD_capinfos) ${WTAP_PLUGIN_SOURCES} ) add_executable(capinfos ${capinfos_FILES}) - set_target_properties(capinfos PROPERTIES LINK_FLAGS ${WS_LINK_FLAGS}) + 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() @@ -776,21 +845,21 @@ if(BUILD_editcap) ) add_executable(editcap ${editcap_FILES}) add_dependencies(editcap svnversion) - set_target_properties(editcap PROPERTIES LINK_FLAGS ${WS_LINK_FLAGS}) + 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) +if(BUILD_dumpcap AND PCAP_FOUND) set(dumpcap_LIBS - wiretap # @INET_NTOP_LO@ + wsutil ${PCAP_LIBRARIES} ${CAP_LIBRARIES} # @SOCKET_LIBS@ # @NSL_LIBS@ - ${GCRYPT_LIBRARIES} - ${GNUTLS_LIBRARIES} + ${GLIB2_LIBRARIES} + ${GTHREAD2_LIBRARIES} ${ZLIB_LIBRARIES} ${APPLE_COCOA_LIBRARY} ) @@ -811,18 +880,18 @@ if(BUILD_dumpcap) ) add_executable(dumpcap ${dumpcap_FILES}) add_dependencies(dumpcap svnversion) - set_target_properties(dumpcap PROPERTIES LINK_FLAGS ${WS_LINK_FLAGS}) + 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 AUTHORS-SHORT + 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 - > AUTHORS-SHORT + > ${CMAKE_BINARY_DIR}/AUTHORS-SHORT DEPENDS ${CMAKE_SOURCE_DIR}/doc/perlnoutf.pl ${CMAKE_SOURCE_DIR}/doc/make-authors-short.pl @@ -830,21 +899,21 @@ ADD_CUSTOM_COMMAND( ) ADD_CUSTOM_COMMAND( - OUTPUT AUTHORS-SHORT-FORMAT - wireshark.pod + 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 - < AUTHORS-SHORT - > AUTHORS-SHORT-FORMAT + < ${CMAKE_BINARY_DIR}/AUTHORS-SHORT + > ${CMAKE_BINARY_DIR}/AUTHORS-SHORT-FORMAT COMMAND cat ${CMAKE_SOURCE_DIR}/doc/wireshark.pod.template - AUTHORS-SHORT-FORMAT - > wireshark.pod + ${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 - AUTHORS-SHORT + ${CMAKE_BINARY_DIR}/AUTHORS-SHORT ${CMAKE_SOURCE_DIR}/doc/wireshark.pod.template ) @@ -859,7 +928,7 @@ 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( wireshark-filter 4 ) +pod2manhtml( ${CMAKE_SOURCE_DIR}/doc/wireshark-filter 4 ) add_custom_target( auxiliary ALL