aboutsummaryrefslogtreecommitdiffstats
path: root/CMakeOptions.txt
blob: 2358031d4fc7618e602f0d97cfbfffd2d28c5f15 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
# Build options for use by CMake

option(BUILD_wireshark     "Build Wireshark" ON)
option(BUILD_logray        "Build Logray" OFF)
if(BUILD_wireshark OR BUILD_logray)
	if(NOT DEFINED ENV{WIRESHARK_BUILD_WITH_QT5})
		option(USE_qt6     "Use Qt6 instead of Qt5" ON)
	else()
		option(USE_qt6     "Use Qt6 instead of Qt5" OFF)
	endif()
endif()
option(BUILD_tshark        "Build tshark" ON)
option(BUILD_tfshark       "Build tfshark" OFF)
option(BUILD_rawshark      "Build rawshark" ON)
option(BUILD_dumpcap       "Build dumpcap" ON)
option(BUILD_text2pcap     "Build text2pcap" ON)
option(BUILD_mergecap      "Build mergecap" ON)
option(BUILD_reordercap    "Build reordercap" ON)
option(BUILD_editcap       "Build editcap" ON)
option(BUILD_capinfos      "Build capinfos" ON)
option(BUILD_captype       "Build captype" ON)
option(BUILD_randpkt       "Build randpkt" ON)
option(BUILD_dftest        "Build dftest" ON)
option(BUILD_corbaidl2wrs  "Build corbaidl2wrs" OFF)
option(BUILD_dcerpcidl2wrs "Build dcerpcidl2wrs" ON)
option(BUILD_xxx2deb       "Build xxx2deb" OFF)

option(BUILD_androiddump   "Build androiddump" ON)
option(BUILD_sshdump       "Build sshdump" ON)
option(BUILD_ciscodump     "Build ciscodump" ON)
option(BUILD_dpauxmon      "Build dpauxmon" ON)
option(BUILD_randpktdump   "Build randpktdump" ON)
option(BUILD_wifidump      "BUild wifidump" ON)
if(WIN32 AND NOT MINGW)
	option(BUILD_etwdump	   "Build etwdump" ON)
else()
	option(BUILD_etwdump	   "Build etwdump" OFF)
endif()

if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
	option(BUILD_sdjournal   "Build sdjournal" ON)
else()
	option(BUILD_sdjournal   "Build sdjournal" OFF)
endif()
option(BUILD_udpdump       "Build udpdump" ON)
option(BUILD_falcodump     "Build falcodump" OFF)

option(BUILD_sharkd        "Build sharkd" ON)
option(BUILD_mmdbresolve   "Build MaxMind DB resolver" ON)
option(BUILD_fuzzshark     "Build fuzzshark" OFF)

option(ENABLE_WERROR     "Treat warnings as errors" ON)
# Debugging is enabled for "Debug" build type.
option(ENABLE_DEBUG      "Enable debugging for all build configurations" OFF)
option(ENABLE_DEBUG_UTF_8  "Enable UTF-8 sanity checks (requires ENABLE_DEBUG)" ON)
option(ENABLE_DEBUG_A2W  "Enable line directive from .cnf file" OFF)
# Assertions are enabled for "Debug" and "RelWithDebInfo" build types.
option(ENABLE_ASSERT     "Enable assertions for all build configurations" OFF)

option(ENABLE_CCACHE     "Speed up compiling and linking using ccache if possible" OFF)
option(DISABLE_FRAME_LARGER_THAN_WARNING "Disable warning if the size of a function frame is large" OFF)
option(EXTCAP_ANDROIDDUMP_LIBPCAP    "Build androiddump using libpcap" OFF)
option(ENABLE_TODO_WARNINGS "Enable compiler warnings that are yet to be fixed" OFF)
option(ENABLE_PEDANTIC_WARNINGS "Enable pedantic or unfixable compiler warnings (noisy)" OFF)
option(ENABLE_CODE_ANALYSIS "Enable the compiler's static analyzer if possible" OFF)
option(ENABLE_ASAN "Enable AddressSanitizer (ASAN) for debugging (degrades performance)" OFF)
option(ENABLE_TSAN "Enable ThreadSanitizer (TSan) for debugging" OFF)
option(ENABLE_UBSAN "Enable UndefinedBehaviorSanitizer (UBSan) for debugging" OFF)
option(ENABLE_FUZZER "Enable libFuzzer instrumentation for use with fuzzshark" OFF)
option(ENABLE_CHECKHF_CONFLICT "Enable hf conflict check for debugging (start-up may be slower)" OFF)

if(CMAKE_GENERATOR STREQUAL "Ninja")
	option(ENABLE_COMPILER_COLOR_DIAGNOSTICS "Always enable the compiler's color diagnostic output" ON)
else()
	option(ENABLE_COMPILER_COLOR_DIAGNOSTICS "Always enable the compiler's color diagnostic output" OFF)
endif()

option(ENABLE_LTO "Use Link Time Optimization (release configuration only)" OFF)

if(WIN32)
	option(ENABLE_VLD "Enable Visual Leak Detect in Debug configuration" OFF)
endif()

option(ENABLE_PCAP       "Enable libpcap support (required for capturing)" ON)
#
# AirPcap support is available only on Windows.  It might be nice to have it
# check whether the AirPcap SDK is available, and turn AirPcap support on
# only if it is.
#
if(WIN32)
	if(MINGW)
		# AirPcap SDK is not widely available or supported with MinGW.
		set(_enable_airpcap OFF)
	else()
		set(_enable_airpcap ON)
	endif()
	option(ENABLE_AIRPCAP    "Enable AirPcap support" ${_enable_airpcap})
endif()
option(ENABLE_STATIC            "Build Wireshark libraries statically" OFF)
option(USE_STATIC               "Always link statically with external libraries" OFF)
option(ENABLE_PLUGINS           "Build with plugins" ON)
option(ENABLE_PLUGIN_IFDEMO     "Build with plugin interface demo" OFF)

option(ENABLE_ZLIB       "Build with zlib compression support" ON)
option(ENABLE_MINIZIP    "Build with zip file compression support" ON)
option(ENABLE_LZ4        "Build with LZ4 compression support" ON)
option(ENABLE_BROTLI     "Build with brotli compression support" ON)
option(ENABLE_SNAPPY     "Build with Snappy compression support" ON)
option(ENABLE_ZSTD       "Build with Facebook zstd compression support" ON)
option(ENABLE_NGHTTP2    "Build with HTTP/2 header decompression support" ON)
option(ENABLE_NGHTTP3    "Build with HTTP/3 header decompression support" ON)
option(ENABLE_LUA        "Build with Lua dissector support" ON)
option(ENABLE_SMI        "Build with libsmi snmp support" ON)
option(ENABLE_GNUTLS     "Build with RSA decryption support" ON)
if(WIN32 AND USE_REPOSITORY)
	option(ENABLE_WINSPARKLE "Enable automatic updates using WinSparkle" ON)
endif()
if (NOT WIN32)
	option(ENABLE_CAP        "Build with Posix capabilities support" ON)
endif()
if(UNIX)
	# Libnl is Linux-specific.
	if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
		set(_enable_libnl ON)
	endif()
	option(ENABLE_NETLINK    "Build with libnl support" ${_enable_libnl})
endif()
option(ENABLE_KERBEROS   "Build with Kerberos support" ON)
option(ENABLE_SBC        "Build with SBC Codec support in RTP Player" ON)
option(ENABLE_SPANDSP    "Build with G.722/G.726 codecs support in RTP Player" ON)
option(ENABLE_BCG729     "Build with G.729 codec support in RTP Player" ON)
option(ENABLE_AMRNB      "Build with AMRNB codec support in RTP Player" ON)
option(ENABLE_ILBC       "Build with iLBC codec support in RTP Player" ON)
option(ENABLE_LIBXML2    "Build with libxml2 support" ON)
option(ENABLE_OPUS       "Build with opus support" ON)
option(ENABLE_SINSP      "Build with libsinsp+libscap support" ON)

option(FETCH_lua         "Download and build Lua" OFF)

# How to install
set(DUMPCAP_INSTALL_OPTION   "normal" CACHE STRING "Permissions to install")
set_property(CACHE DUMPCAP_INSTALL_OPTION PROPERTY STRINGS "normal" "suid" "capabilities")

if(UNIX)
	option(ENABLE_DUMPCAP_GROUP "Install dumpcap with group ownership and permissions (default \"wireshark\")" OFF)
	set(DUMPCAP_INSTALL_GROUP "wireshark" CACHE STRING "Group name for dumpcap (must exist)")
endif()

if(APPLE)
	option(ENABLE_APPLICATION_BUNDLE "Build a macOS application bundle (Wireshark.app)" ON)
	option(ENABLE_SPARKLE "Enable automatic updates using Sparkle" ON)
endif()

if(WIN32)
	# Enable signing of NSIS installer by default only if we have 'sign-wireshark.bat' on the path
	# of the host system.
	set(_enable_signed_nsis False)
	if(CMAKE_HOST_WIN32)
		find_file(SIGN_WIRESHARK_BAT "sign-wireshark.bat")
		if (SIGN_WIRESHARK_BAT)
			set(_enable_signed_nsis True)
		endif()
	endif()
	option(ENABLE_SIGNED_NSIS         "Enable the code signing step of the NSIS installer build" ${_enable_signed_nsis})

	# Advanced options for developers to work-around limitations in the build
	# when cross-compiling to Windows.
	option(SKIP_NSIS_QT_DLLS    "Skip deploying Qt runtime DLLs with installer" OFF)
	mark_as_advanced(SKIP_NSIS_QT_DLLS)
endif()