For the Windows Open dialog for capture files, get rid of the "(*.*)" in
[metze/wireshark/wip.git] / CMakeLists.txt
index 29f65b6e2b076f43bfb840c0d57c383e37d578b9..2991099b1f0fc75915d910d01e95f4789d510599 100644 (file)
@@ -135,12 +135,8 @@ set(WIRESHARK_C_FLAGS
        -Wno-overlength-strings
        -Wwrite-strings
        -Wno-long-long
+       -Wpragmas
 )
-if (NOT APPLE)
-       set(WIRESHARK_C_FLAGS ${WIRESHARK_C_FLAGS}
-           -fexcess-precision=fast
-           -Wpragmas)
-endif()
 
 set(WIRESHARK_C_ONLY_FLAGS
        # The following are C only, not C++
@@ -149,14 +145,10 @@ set(WIRESHARK_C_ONLY_FLAGS
        -Wshadow
        -Wno-pointer-sign
        -Wold-style-definition
-       -Wshadow
        -Wstrict-prototypes
+       -Wlogical-op
+       -Wjump-misses-init
 )
-if (NOT APPLE)
-       set(WIRESHARK_C_ONLY_FLAGS ${WIRESHARK_C_ONLY_FLAGS}
-           -Wlogical-op
-           -Wjump-misses-init)
-endif()
 
 set(WIRESHARK_EXTRA_C_FLAGS
        -pedantic
@@ -179,6 +171,19 @@ set(WIRESHARK_EXTRA_C_ONLY_FLAGS
        -Wmissing-prototypes
 )
 
+# With clang some tests don't fail properly during testing but only
+# during real compiles
+
+if(NOT CMAKE_C_COMPILER_ID MATCHES "Clang")
+
+       set(WIRESHARK_C_FLAGS ${WIRESHARK_C_FLAGS}
+           -fexcess-precision=fast
+       )
+
+       set(WIRESHARK_C_ONLY_FLAGS ${WIRESHARK_C_ONLY_FLAGS}
+       )
+endif()
+
 if(ENABLE_EXTRA_GCC_CHECKS)   # This overrides -Werror
        set(WIRESHARK_C_FLAGS ${WIRESHARK_C_FLAGS} ${WIRESHARK_EXTRA_C_FLAGS})
        set(WIRESHARK_C_ONLY_FLAGS ${WIRESHARK_C_ONLY_FLAGS} ${WIRESHARK_EXTRA_C_ONLY_FLAGS})
@@ -191,12 +196,26 @@ add_definitions(
 
 # Counterhack to work around some cache magic in CHECK_C_SOURCE_COMPILES
 include(CheckCCompilerFlag)
+
+if(NOT DISABLE_WERROR AND NOT ENABLE_EXTRA_GCC_CHECKS)
+       check_c_compiler_flag(-Werror=unknown-warning-option WERR_UNKNOWN)
+       check_c_compiler_flag(-Werror WERROR)
+else()
+       unset(WERR_UNKNOWN)
+       unset(WERROR)
+endif()
+# string of additional compile command line flags for check_c_compiler_flag
+if(WERR_UNKNOWN)
+       set(CMAKE_REQUIRED_FLAGS -Werror=unknown-warning-option )
+endif()
+
 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})
+       message(STATUS "Checking for flag: ${${F}}")
        check_c_compiler_flag(${${F}} ${V})
        if (${${V}})
                set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${${F}}")
@@ -209,6 +228,7 @@ foreach(THIS_FLAG ${WIRESHARK_C_ONLY_FLAGS})
        set(F WS_C_FLAG_${C})
        set(${F} ${THIS_FLAG})
        set(V WS_C_FLAG_VALID${C})
+       message(STATUS "Checking for flag: ${${F}}")
        check_c_compiler_flag(${${F}} ${V})
        if (${${V}})
                set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${${F}}")
@@ -225,13 +245,7 @@ else() # TODO add alternate compiler flags for hiding symbols
                " All shared library symbols will be exported.")
 endif()
 
-if(NOT DISABLE_WERROR AND NOT ENABLE_EXTRA_GCC_CHECKS)
-       check_c_compiler_flag(-Werror WERROR)
-else()
-       unset(WERROR)
-endif()
-
-if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_CXX_COMPILER MATCHES ".*clang" OR APPLE)
+if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID MATCHES "Clang")
        set (C_UNUSED "__attribute__((unused))" )
 else()
        set (C_UNUSED "" )
@@ -281,6 +295,7 @@ set(GTHREAD2_REQUIRED)
 set(PCAP_REQUIRED)
 set(M_REQUIRED)
 set(PythonInterp_FIND_VERSION 2)
+set(Python_ADDITIONAL_VERSIONS 3)
 
 set(PACKAGELIST ${PACKAGELIST} HtmlViewer)
 
@@ -516,13 +531,14 @@ add_subdirectory( asn1 EXCLUDE_FROM_ALL )
 add_subdirectory( codecs )
 add_subdirectory( epan )
 add_subdirectory( tools/lemon )
+add_subdirectory( ui )
 add_subdirectory( wiretap )
 add_subdirectory( wsutil )
 
 add_custom_target(dumpabi DEPENDS dumpabi-libwireshark dumpabi-libwiretap dumpabi-libwsutil color.h)
 
-if((BUILD_wireshark AND GTK_FOUND) OR (BUILD_qtshark AND QT_FOUND))
-       add_subdirectory( ui )
+if(ENABLE_ECHLD)
+       add_subdirectory( echld )
 endif()
 
 if(BUILD_wireshark AND GTK_FOUND)
@@ -546,6 +562,10 @@ if(ENABLE_PCAP_NG_DEFAULT)
        set(PCAP_NG_DEFAULT 1)
 endif()
 
+# Large file support (e.g. make off_t 64 bit if supported)
+include(gmxTestLargeFiles)
+gmx_test_large_files(GMX_LARGEFILES)
+
 #Platform specific
 #if(UNIX)
 #endif()
@@ -923,6 +943,7 @@ if(BUILD_mergecap)
        set(mergecap_LIBS
                wiretap
                ${ZLIB_LIBRARIES}
+               ${CMAKE_DL_LIBS}
        )
        set(mergecap_FILES
                mergecap.c
@@ -940,6 +961,7 @@ if(BUILD_reordercap)
        set(reordercap_LIBS
                wiretap
                ${ZLIB_LIBRARIES}
+               ${CMAKE_DL_LIBS}
        )
        set(reordercap_FILES
                reordercap.c
@@ -959,6 +981,7 @@ if(BUILD_capinfos)
                wsutil
                ${ZLIB_LIBRARIES}
                ${GCRYPT_LIBRARIES}
+               ${CMAKE_DL_LIBS}
        )
        set(capinfos_FILES
                capinfos.c
@@ -975,10 +998,10 @@ if(BUILD_editcap)
        set(editcap_LIBS
                wiretap
                ${ZLIB_LIBRARIES}
+               ${CMAKE_DL_LIBS}
        )
        set(editcap_FILES
                editcap.c
-               epan/crypt/md5.c
                ${WTAP_PLUGIN_SOURCES}
        )
        add_executable(editcap ${editcap_FILES})
@@ -1071,7 +1094,7 @@ pod2manhtml( ${CMAKE_SOURCE_DIR}/doc/rawshark 1 )
 pod2manhtml( ${CMAKE_SOURCE_DIR}/doc/reordercap 1 )
 pod2manhtml( ${CMAKE_SOURCE_DIR}/doc/text2pcap 1 )
 pod2manhtml( ${CMAKE_SOURCE_DIR}/doc/tshark 1 )
-pod2manhtml( wireshark 1 )
+pod2manhtml( ${CMAKE_BINARY_DIR}/wireshark 1 )
 pod2manhtml( ${CMAKE_SOURCE_DIR}/doc/wireshark-filter 4 )
 
 add_custom_target(