"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)
-Wformat-security
-Wvla
-Waddress
- -Warray-bounds
-Wattributes
-Wdiv-by-zero
-Wignored-qualifiers
# Capabilities
if(ENABLE_CAP)
- set(PACKAGELIST ${PACKAGELIST} CAP)
+ set(PACKAGELIST ${PACKAGELIST} CAP SETCAP)
endif()
if(ENABLE_PYTHON)
set(SHARK_COMMON_SRC
${PLATFORM_PCAP_SRC}
capture-pcap-util.c
+ cfile.c
cfutils.c
clopts_common.c
frame_tvbuff.c
proto_hier_stats.c
summary.c
ws80211_utils.c
- cfile.c
${SHARK_COMMON_CAPTURE_SRC}
${SHARK_COMMON_SRC}
${PLATFORM_UI_SRC}
capture_opts.c
tshark-tap-register.c
tshark.c
- cfile.c
${TSHARK_TAP_SRC}
${SHARK_COMMON_CAPTURE_SRC}
${SHARK_COMMON_SRC}
${APPLE_SYSTEM_CONFIGURATION_LIBRARY}
)
set(tfshark_FILES
- cfile.c
tfshark.c
tshark-tap-register.c
${TSHARK_TAP_SRC}
${APPLE_SYSTEM_CONFIGURATION_LIBRARY}
)
set(rawshark_FILES
- cfile.c
${SHARK_COMMON_SRC}
rawshark.c
ui/util.c
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(