sq epan/dissectors/packet-smb2.c no check_col => fsctl_pipe_wait
[metze/wireshark/wip.git] / CMakeLists.txt
index 17097bb2ba231bd7c1228bbde614ef3a37d00427..f6dc55cb89586fbbbd621c5731a7c1d53713d189 100644 (file)
@@ -137,8 +137,17 @@ if(NOT LIBRARY_OUTPUT_PATH)
                   "Single output directory for building all libraries.")
 endif()
 
-
-include(CMakeOptions.txt)
+include( CMakeOptions.txt )
+if( DUMPCAP_INSTALL_OPTION STREQUAL "suid" )
+       set( DUMPCAP_SETUID "SETUID" )
+else()
+       set( DUMPCAP_SETUID )
+endif()
+if( NOT CMAKE_SYSTEM_NAME STREQUAL "Linux" AND
+       DUMPCAP_INSTALL_OPTION STREQUAL "capabilities" )
+       message( WARNING "Capabilities are only supported on Linux" )
+       set( DUMPCAP_INSTALL_OPTION )
+endif()
 
 if( CMAKE_C_COMPILER_ID MATCHES "MSVC")
        if (MSVC10)
@@ -192,7 +201,6 @@ else()
                -Wformat-security
                -Wvla
                -Waddress
-               -Warray-bounds
                -Wattributes
                -Wdiv-by-zero
                -Wignored-qualifiers
@@ -493,7 +501,7 @@ endif()
 
 # Capabilities
 if(ENABLE_CAP)
-       set(PACKAGELIST ${PACKAGELIST} CAP)
+       set(PACKAGELIST ${PACKAGELIST} CAP SETCAP)
 endif()
 
 if(ENABLE_PYTHON)
@@ -814,6 +822,7 @@ endif()
 set(SHARK_COMMON_SRC
        ${PLATFORM_PCAP_SRC}
        capture-pcap-util.c
+       cfile.c
        cfutils.c
        clopts_common.c
        frame_tvbuff.c
@@ -946,7 +955,6 @@ if( (BUILD_wireshark AND GTK_FOUND) OR (BUILD_qtshark AND QT_FOUND) )
                proto_hier_stats.c
                summary.c
                ws80211_utils.c
-               cfile.c
                ${SHARK_COMMON_CAPTURE_SRC}
                ${SHARK_COMMON_SRC}
                ${PLATFORM_UI_SRC}
@@ -1018,7 +1026,6 @@ if(BUILD_tshark)
                capture_opts.c
                tshark-tap-register.c
                tshark.c
-               cfile.c
                ${TSHARK_TAP_SRC}
                ${SHARK_COMMON_CAPTURE_SRC}
                ${SHARK_COMMON_SRC}
@@ -1040,7 +1047,6 @@ if(BUILD_tfshark)
                ${APPLE_SYSTEM_CONFIGURATION_LIBRARY}
        )
        set(tfshark_FILES
-               cfile.c
                tfshark.c
                tshark-tap-register.c
                ${TSHARK_TAP_SRC}
@@ -1061,7 +1067,6 @@ if(BUILD_rawshark AND PCAP_FOUND)
                ${APPLE_SYSTEM_CONFIGURATION_LIBRARY}
        )
        set(rawshark_FILES
-               cfile.c
                ${SHARK_COMMON_SRC}
                rawshark.c
                ui/util.c
@@ -1260,7 +1265,27 @@ if(BUILD_dumpcap AND PCAP_FOUND)
        set_target_properties(dumpcap PROPERTIES LINK_FLAGS "${WS_LINK_FLAGS}")
        set_target_properties(dumpcap PROPERTIES FOLDER "Executables")
        target_link_libraries(dumpcap ${dumpcap_LIBS})
-       install(TARGETS dumpcap RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+       install(TARGETS dumpcap
+                       RUNTIME
+                       DESTINATION ${CMAKE_INSTALL_BINDIR}
+                       PERMISSIONS ${DUMPCAP_SETUID}
+                               OWNER_READ OWNER_WRITE OWNER_EXECUTE
+                               GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+       )
+       if(DUMPCAP_INSTALL_OPTION STREQUAL "capabilities")
+               install( CODE "execute_process(
+                       COMMAND
+                               ${SETCAP_EXECUTABLE}
+                               cap_net_raw,cap_net_admin+ep
+                               ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}/dumpcap${CMAKE_EXECUTABLE_SUFFIX}
+                       RESULT_VARIABLE
+                               _SETCAP_RESULT
+                       )
+                       if( _SETCAP_RESULT )
+                               message( WARNING \"setcap failed (${_SETCAP_RESULT}).\")
+                       endif()"
+               )
+       endif()
 endif()
 
 ADD_CUSTOM_COMMAND(