/* cmakeconfig.h.in */

#ifndef __CONFIG_H__
#define __CONFIG_H__

/* Note: You cannot use earlier #defines in later #cmakedefines (cmake 2.6.2). */

/* Name of package */
#define PACKAGE "wireshark"

#define VERSION_EXTRA "$ENV{WIRESHARK_VERSION_EXTRA}"

/* Version number of Wireshark and associated utilities */
#define VERSION "${PROJECT_VERSION}${VERSION_EXTRA}"
#define VERSION_MAJOR ${PROJECT_MAJOR_VERSION}
#define VERSION_MINOR ${PROJECT_MINOR_VERSION}
#define VERSION_MICRO ${PROJECT_PATCH_VERSION}

/* Version number of Logray and associated utilities */
#define LOG_VERSION "${LOG_PROJECT_VERSION}${VERSION_EXTRA}"

#define PLUGIN_PATH_ID "${PLUGIN_PATH_ID}"
#define VERSION_FLAVOR "${VERSION_FLAVOR}"

/* Build wsutil with SIMD optimization */
#cmakedefine HAVE_SSE4_2 1

/* Define to 1 if we want to enable plugins */
#cmakedefine HAVE_PLUGINS 1

/*  Define to 1 if we check hf conflict */
#cmakedefine ENABLE_CHECK_FILTER 1

/* Link Wireshark libraries statically */
#cmakedefine ENABLE_STATIC 1

/* Enable AddressSanitizer (and LeakSanitizer on clang/gcc) */
#cmakedefine ENABLE_ASAN 1

/* Enable AirPcap */
#cmakedefine HAVE_AIRPCAP 1

/* Define to 1 if you have the <arpa/inet.h> header file. */
#cmakedefine HAVE_ARPA_INET_H 1

/* Define to 1 if you have the `clock_gettime` function. */
#cmakedefine HAVE_CLOCK_GETTIME 1

/* Define to 1 if you have the `timespec_get` function. */
#cmakedefine HAVE_TIMESPEC_GET 1

/* Define to 1 if you have the `localtime_r` function. */
#cmakedefine HAVE_LOCALTIME_R 1

/* Define to 1 if you have the `gmtime_r` function. */
#cmakedefine HAVE_GMTIME_R 1

/* Define to 1 if you have the `timegm` function. */
#cmakedefine HAVE_TIMEGM 1

/* Define to 1 if you have the `tzset` function. */
#cmakedefine HAVE_TZSET 1

/* Define to use the MaxMind DB library */
#cmakedefine HAVE_MAXMINDDB 1

/* Define to 1 if you have the <ifaddrs.h> header file. */
#cmakedefine HAVE_IFADDRS_H 1

/* Define to 1 if yu have the `fseeko` function. */
#cmakedefine HAVE_FSEEKO 1

/* Define to 1 if you have the `getexecname' function. */
#cmakedefine HAVE_GETEXECNAME 1

/* Define to 1 if you have the `getifaddrs' function. */
#cmakedefine HAVE_GETIFADDRS 1

/* Define if LIBSSH support is enabled */
#cmakedefine HAVE_LIBSSH 1

/* Define if you have the 'dlget' function. */
#cmakedefine HAVE_DLGET 1

/* Define to 1 if you have the <grp.h> header file. */
#cmakedefine HAVE_GRP_H 1

/* Define to use heimdal kerberos */
#cmakedefine HAVE_HEIMDAL_KERBEROS 1

/* Define to 1 if you have the `krb5_pac_verify' function. */
#cmakedefine HAVE_KRB5_PAC_VERIFY 1

/* Define to 1 if you have the `krb5_c_fx_cf2_simple' function. */
#cmakedefine HAVE_KRB5_C_FX_CF2_SIMPLE 1

/* Define to 1 if you have the `decode_krb5_enc_tkt_part' function. */
#cmakedefine HAVE_DECODE_KRB5_ENC_TKT_PART 1

/* Define to 1 if you have the `encode_krb5_enc_tkt_part' function. */
#cmakedefine HAVE_ENCODE_KRB5_ENC_TKT_PART 1

/* Define to 1 if you have the `inflatePrime' function. */
#cmakedefine HAVE_INFLATEPRIME 1

/* Define to 1 if you have the `issetugid' function. */
#cmakedefine HAVE_ISSETUGID 1

/* Define to use kerberos */
#cmakedefine HAVE_KERBEROS 1

/* Define to use nghttp2 */
#cmakedefine HAVE_NGHTTP2 1

/* Define to use nghttp3 */
#cmakedefine HAVE_NGHTTP3 1

/* Define to use the libcap library */
#cmakedefine HAVE_LIBCAP 1

/* Define to use GnuTLS library */
#cmakedefine HAVE_LIBGNUTLS 1

/* Define to 1 if GnuTLS was built with pkcs11 support. */
#cmakedefine HAVE_GNUTLS_PKCS11 1

/* Enable libnl support */
#cmakedefine HAVE_LIBNL 1

/* libnl version 1 */
#cmakedefine HAVE_LIBNL1 1

/* libnl version 2 */
#cmakedefine HAVE_LIBNL2 1

/* libnl version 3 */
#cmakedefine HAVE_LIBNL3 1

/* Define to use libpcap library */
#cmakedefine HAVE_LIBPCAP 1

/* Define to 1 if you have the `smi' library (-lsmi). */
#cmakedefine HAVE_LIBSMI 1

/* Define to 1 if libsmi exports a version string (and that symbol is visible). */
#cmakedefine HAVE_SMI_VERSION_STRING 1

/* Define to use zlib library */
#cmakedefine HAVE_ZLIB 1

/* Define to use the minizip library */
#cmakedefine HAVE_MINIZIP 1

/* Define if `dos_date' (with underscore) field exists in `zip_fileinfo'  */
#cmakedefine HAVE_MZCOMPAT_DOS_DATE 1

/* Define to use brotli library */
#cmakedefine HAVE_BROTLI 1

/* Define to use lz4 library */
#cmakedefine HAVE_LZ4 1

/* Check for lz4frame */
#cmakedefine HAVE_LZ4FRAME_H 1

/* Define to use snappy library */
#cmakedefine HAVE_SNAPPY 1

/* Define to use zstd library */
#cmakedefine HAVE_ZSTD 1

/* Define to 1 if you have the <linux/sockios.h> header file. */
#cmakedefine HAVE_LINUX_SOCKIOS_H 1

/* Define to 1 if you have the <linux/if_bonding.h> header file. */
#cmakedefine HAVE_LINUX_IF_BONDING_H 1

/* Define to use Lua */
#cmakedefine HAVE_LUA 1

/* Define to 1 if we have Lua with Unicode for Windows patches. */
#cmakedefine HAVE_LUA_UNICODE 1

/* Define to use MIT kerberos */
#cmakedefine HAVE_MIT_KERBEROS 1

/* Define to 1 if you have the <netdb.h> header file. */
#cmakedefine HAVE_NETDB_H 1

/* Define to 1 if you have the <netinet/in.h> header file. */
#cmakedefine HAVE_NETINET_IN_H 1

/* nl80211.h is new enough */
#cmakedefine HAVE_NL80211 1

/* SET_CHANNEL is supported */
#cmakedefine HAVE_NL80211_CMD_SET_CHANNEL 1

/* SPLIT_WIPHY_DUMP is supported */
#cmakedefine HAVE_NL80211_SPLIT_WIPHY_DUMP 1

/* VHT_CAPABILITY is supported */
#cmakedefine HAVE_NL80211_VHT_CAPABILITY 1

/* Define to 1 if you have macOS frameworks */
#cmakedefine HAVE_MACOS_FRAMEWORKS 1

/* Define to 1 if you have the macOS CFPropertyListCreateWithStream function */
#cmakedefine HAVE_CFPROPERTYLISTCREATEWITHSTREAM 1

/* Define to 1 if you have the `pcap_create' function. */
#cmakedefine HAVE_PCAP_CREATE 1

/* Define to 1 if the capture buffer size can be set. */
#cmakedefine CAN_SET_CAPTURE_BUFFER_SIZE 1

/* Define to 1 if you have the `pcap_freecode' function. */
#cmakedefine HAVE_PCAP_FREECODE 1

/* Define to 1 if you have the `pcap_free_datalinks' function. */
#cmakedefine HAVE_PCAP_FREE_DATALINKS 1

/* Define to 1 if you have the `pcap_open' function. */
#cmakedefine HAVE_PCAP_OPEN 1

/* Define to 1 if you have libpcap/WinPcap/Npcap remote capturing support. */
#cmakedefine HAVE_PCAP_REMOTE 1

/* Define to 1 if you have the `pcap_setsampling' function. */
#cmakedefine HAVE_PCAP_SETSAMPLING 1

/* Define to 1 if you have the `pcap_set_tstamp_precision' function. */
#cmakedefine HAVE_PCAP_SET_TSTAMP_PRECISION 1

/* Define to 1 if you have the `pcap_set_tstamp_type' function. */
#cmakedefine HAVE_PCAP_SET_TSTAMP_TYPE 1

/* Define to 1 if you have the `PCAP_ERROR_PROMISC_PERM_DENIED' symbol. */
#cmakedefine HAVE_PCAP_ERROR_PROMISC_PERM_DENIED 1

/* Define to 1 if you have the `PCAP_WARNING_TSTAMP_TYPE_NOTSUP' symbol. */
#cmakedefine HAVE_PCAP_WARNING_TSTAMP_TYPE_NOTSUP 1

/* Define to 1 if you have the <pwd.h> header file. */
#cmakedefine HAVE_PWD_H 1

/* Define to 1 if you want to playing SBC by standalone BlueZ SBC library */
#cmakedefine HAVE_SBC 1

/* Define to 1 if you have the SpanDSP library. */
#cmakedefine HAVE_SPANDSP 1

/* Define to 1 if you have the bcg729 library. */
#cmakedefine HAVE_BCG729 1

/* Define to 1 if you have the opencore-amrnb library. */
#cmakedefine HAVE_AMRNB 1

/* Define to 1 if you have the ilbc library. */
#cmakedefine HAVE_ILBC 1

/* Define to 1 if you have the opus library. */
#cmakedefine HAVE_OPUS 1

/* Define to 1 if you have the lixbml2 library. */
#cmakedefine HAVE_LIBXML2 1

/* Define to 1 if you have the `setresgid' function. */
#cmakedefine HAVE_SETRESGID 1

/* Define to 1 if you have the `setresuid' function. */
#cmakedefine HAVE_SETRESUID 1

/* Define to 1 if you have the Sparkle or WinSparkle library */
#cmakedefine HAVE_SOFTWARE_UPDATE 1

/* Define if you have the 'strptime' function. */
#cmakedefine HAVE_STRPTIME 1

/* Define if you have the 'memmem' function. */
#cmakedefine HAVE_MEMMEM 1

/* Define if you have the 'strerrorname_np' function. */
#cmakedefine HAVE_STRERRORNAME_NP 1

/* Define if you have the 'vasprintf' function. */
#cmakedefine HAVE_VASPRINTF 1

/* Define to 1 if `st_birthtime' is a member of `struct stat'. */
#cmakedefine HAVE_STRUCT_STAT_ST_BIRTHTIME 1

/* Define if st_blksize field exists in struct stat */
#cmakedefine HAVE_STRUCT_STAT_ST_BLKSIZE 1

/* Define to 1 if `__st_birthtime' is a member of `struct stat'. */
#cmakedefine HAVE_STRUCT_STAT___ST_BIRTHTIME 1

/* Define to 1 if you have the <sys/socket.h> header file. */
#cmakedefine HAVE_SYS_SOCKET_H 1

/* Define to 1 if you have the <sys/time.h> header file. */
#cmakedefine HAVE_SYS_TIME_H 1

/* Define to 1 if you have the <sys/utsname.h> header file. */
#cmakedefine HAVE_SYS_UTSNAME_H 1

/* Define to 1 if you have the <sys/wait.h> header file. */
#cmakedefine HAVE_SYS_WAIT_H 1

/* Define if tm_gmtoff field exists in struct tm */
#cmakedefine HAVE_STRUCT_TM_TM_GMTOFF 1

/* Define if tm_zone field exists in struct tm */
#cmakedefine HAVE_STRUCT_TM_TM_ZONE 1

/* Define if tzname array exists */
#cmakedefine HAVE_TZNAME 1

/* Define to 1 if you have the <unistd.h> header file. */
#cmakedefine HAVE_UNISTD_H 1

/* Define if we have QtMultimedia */
#cmakedefine QT_MULTIMEDIA_LIB 1

/* Build androiddump with libpcap instead of wireshark stuff */
#cmakedefine ANDROIDDUMP_USE_LIBPCAP 1

/* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a
   `char[]'. */
/* Note: not use in the code */
#cmakedefine YYTEXT_POINTER

/* Define to 1 if the 'ssize_t' type exists. */
#cmakedefine HAVE_SSIZE_T 1

/* Define to 1 if we are using the msys2 environment to build. */
#cmakedefine HAVE_MSYSTEM 1

#if defined(_MSC_VER)
#  define strncasecmp strnicmp
#  define popen       _popen
#  define pclose      _pclose
#endif

#if defined(_WIN32)
   /*
    * Flex (v 2.5.35) uses this symbol to "exclude" unistd.h
    */
#  define YY_NO_UNISTD_H

#  ifndef __STDC__
#    define __STDC__ 0
#  endif

/*
 * Make sure everyone is using the same API and that it's sufficient
 * for our needs.
 * This should match the following:
 * - The <compatibility><application> section in resources\wireshark.exe.manifest.in
 * - The GetWindowsVersion parts of packaging\nsis\wireshark.nsi
 * - The VersionNT parts of packaging\wix\Prerequisites.wxi
 */
#  ifndef NTDDI_VERSION
#  define NTDDI_VERSION   NTDDI_WIN7
#  endif

#  ifndef _WIN32_WINNT
#  define _WIN32_WINNT    _WIN32_WINNT_WIN7
#  endif
#endif

#define PCRE2_CODE_UNIT_WIDTH  8

/*
 * If HAVE_PCAP_REMOTE is defined, it forces the WinPcap header files to
 * define things required for remote capture, by defining HAVE_REMOTE.
 *
 * With all versions of the WinPcap SDK, if:
 *
 *    1) you are building with any current WinPcap SDK;
 *    2) you do not define HAVE_REMOTE before including pcap.h (or
 *       pcap/pcap.h);
 *    3) you define a struct pcap_stat and pass it to a call to
 *       pcap_stats();
 *    4) the system you're running on has WinPcap, rather than Npcap,
 *       installed;
 *
 * whatever is in memory after the struct pcap_stat may get overwritten,
 * with unpredictable results, because the pcap_stats() implementation for
 * WinPcap will assume that the structure has the additional members that
 * are added if and only if HAVE_REMOTE is defined, and will fill them in,
 * even if they're not there.
 *
 * Yes, this is q WinPcap bug; if your project has a public header file
 * that checks or otherwise uses a #define that's defined by your project's
 * configuration process, and don't ensure that it's always defined
 * appropriately when that header file is included, before its first use,
 * you have made a mistake.
 *
 * In libpcap 1.7.0 and later, the pcap_stats() implementation for WinPcap
 * will not fill those fields in; however, no WinPcap implementation was
 * based on that recent a libpcap release, so they all have the bug.
 *
 * Npcap was originally based on libpcap 1.8.0, and later releases are
 * based on later releases of libpcap, so they will not overwrite memory
 * past the end of the structure.
 *
 * The header file bug is fixed in libpcap 1.9.0 or later - the fields
 * are present on Windows, regardless of whether HAVE_REMOTE is defined
 * or not when the header is included (and are not present on UN*X), so
 * if you build with an SDK with libpcap 1.9.0 or later headers, you
 * do not need to define HAVE_REMOTE before including pcap.h (including it
 * will make no difference).
 *
 * No version of the WinPcap SDK provided libpcap 1.9.0-or-later headers.
 * The Npcap SDK, as of SDK version 1.04, provides them, so this is
 * only necessary for building with the WinPcap SDK.
 */
#ifdef HAVE_PCAP_REMOTE
#define HAVE_REMOTE
#endif

#include <ws_log_defs.h>

#endif /* __CONFIG_H__ */