openvpn/config.h.cmake.in

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

471 lines
12 KiB
CMake
Raw Normal View History

/* Configuration settings */
#define CONFIGURE_DEFINES "N/A"
/* Enable async push */
#cmakedefine ENABLE_ASYNC_PUSH
/* Use mbed TLS library */
#cmakedefine ENABLE_CRYPTO_MBEDTLS
/* Use Openssl */
#cmakedefine ENABLE_CRYPTO_OPENSSL
/* Use wolfSSL crypto library */
#cmakedefine ENABLE_CRYPTO_WOLFSSL
/* Enable shared data channel offload */
#cmakedefine ENABLE_DCO
/* Enable debugging support (needed for verb>=4) */
#define ENABLE_DEBUG 1
/* We have persist tun capability */
#cmakedefine ENABLE_FEATURE_TUN_PERSIST
/* Enable internal fragmentation support */
#define ENABLE_FRAGMENT 1
/* Enable linux data channel offload */
#cmakedefine ENABLE_LINUXDCO
/* Enable LZ4 compression library */
#cmakedefine ENABLE_LZ4
/* Enable LZO compression library */
#cmakedefine ENABLE_LZO
/* Enable NTLMv2 proxy support */
#define ENABLE_NTLM 1
/* Enable management server capability */
#define ENABLE_MANAGEMENT 1
/* Enable OFB and CFB cipher modes */
#define ENABLE_OFB_CFB_MODE
/* Enable PKCS11 */
CMake: Add complete MinGW and MSVC build This is based on the initial CMake patch by Arne Schwabe, but extends that to provide a complete replacement for existing MinGW build (autotools based) and MSVC build (openvpn.sln). The following features are added while switching these builds to CMake: - vcpkg support for MinGW build, allowing for trivial cross-compilation on Linux - Add unittests to MSVC build - Rework MSVC config header generation, removing need for separate headers between autotools and MSVC The following advantages are reasons for switching to CMake over the existing MSVC build: - Easier to maintain CMake files without IDE than the sln and vcxproj files - Able to maintain MSVC and MinGW build side-by-side The plan is to completely remove the existing MSVC build system but leave the existing autotools builds in place as-is, including MinGW support. CMake is not the intended build system for Unix-like platforms and there are no current plans to switch to it. v2: - Reduce default warning level for MSVC to /W2. With /W3 the build is just much too noisy, making it difficult to spot new warnings. - Change MSVC CMake presets to have hardcoded build type. When using pkg_search_module MSVC Multi-Config builds do not work correctly at all since PkgConfig doesn't seem to be able to create multi-config libraries like find_package does. - Change minGW presets to be Multi-Config capable. - Remove OPENVPN_VERSION_MAJOR, OPENVPN_VERSION_MINOR, OPENVPN_VERSION_PATCH from config.h.cmake.in. They are not required and cause macro redefinition warnings in MSVC (with openvpn-plugin.h). gcc doesn't warn about this because the definitions are identical so no need to fix this in autoheader config.h.in. v3: - Apply fixes by Lev Stipakov to match MSVC compile options better to previous build. - Apply change by Lev Stipakov to enable generation of PDB files. - Move /Brepro to its own commit. This is a behavior change that should be more visible. - Rebase on top of my dist fixes. Change-Id: I237f28eca618d4fc476225b887c0be26cca362b1 Signed-off-by: Frank Lichtenheld <frank@lichtenheld.com> Acked-by: Lev Stipakov <lstipakov@gmail.com> Message-Id: <20230620135310.94455-3-frank@lichtenheld.com> URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg26754.html Signed-off-by: Gert Doering <gert@greenie.muc.de>
2023-06-20 21:53:07 +08:00
#cmakedefine ENABLE_PKCS11
/* Enable plug-in support */
#define ENABLE_PLUGIN 1
/* Enable TCP Server port sharing */
#cmakedefine ENABLE_PORT_SHARE
/* SELinux support */
#cmakedefine ENABLE_SELINUX
/* enable sitnl support */
#cmakedefine ENABLE_SITNL
/* Enable systemd integration */
/* #undef ENABLE_SYSTEMD */
/* Enable --x509-username-field feature */
#cmakedefine ENABLE_X509ALTUSERNAME
/* 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 `basename' function. */
#cmakedefine HAVE_BASENAME
/* Define to 1 if you have the `chdir' function. */
#cmakedefine HAVE_CHDIR
/* Define to 1 if you have the `chroot' function. */
#cmakedefine HAVE_CHROOT
/* Define to 1 if you have the `chsize' function. */
#cmakedefine HAVE_CHSIZE
/* struct cmsghdr needed for extended socket error support */
#cmakedefine HAVE_CMSGHDR
CMake: Add complete MinGW and MSVC build This is based on the initial CMake patch by Arne Schwabe, but extends that to provide a complete replacement for existing MinGW build (autotools based) and MSVC build (openvpn.sln). The following features are added while switching these builds to CMake: - vcpkg support for MinGW build, allowing for trivial cross-compilation on Linux - Add unittests to MSVC build - Rework MSVC config header generation, removing need for separate headers between autotools and MSVC The following advantages are reasons for switching to CMake over the existing MSVC build: - Easier to maintain CMake files without IDE than the sln and vcxproj files - Able to maintain MSVC and MinGW build side-by-side The plan is to completely remove the existing MSVC build system but leave the existing autotools builds in place as-is, including MinGW support. CMake is not the intended build system for Unix-like platforms and there are no current plans to switch to it. v2: - Reduce default warning level for MSVC to /W2. With /W3 the build is just much too noisy, making it difficult to spot new warnings. - Change MSVC CMake presets to have hardcoded build type. When using pkg_search_module MSVC Multi-Config builds do not work correctly at all since PkgConfig doesn't seem to be able to create multi-config libraries like find_package does. - Change minGW presets to be Multi-Config capable. - Remove OPENVPN_VERSION_MAJOR, OPENVPN_VERSION_MINOR, OPENVPN_VERSION_PATCH from config.h.cmake.in. They are not required and cause macro redefinition warnings in MSVC (with openvpn-plugin.h). gcc doesn't warn about this because the definitions are identical so no need to fix this in autoheader config.h.in. v3: - Apply fixes by Lev Stipakov to match MSVC compile options better to previous build. - Apply change by Lev Stipakov to enable generation of PDB files. - Move /Brepro to its own commit. This is a behavior change that should be more visible. - Rebase on top of my dist fixes. Change-Id: I237f28eca618d4fc476225b887c0be26cca362b1 Signed-off-by: Frank Lichtenheld <frank@lichtenheld.com> Acked-by: Lev Stipakov <lstipakov@gmail.com> Message-Id: <20230620135310.94455-3-frank@lichtenheld.com> URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg26754.html Signed-off-by: Gert Doering <gert@greenie.muc.de>
2023-06-20 21:53:07 +08:00
/* git version information in config-version.h */
#cmakedefine HAVE_CONFIG_VERSION_H
/* Define to 1 if you have the `daemon' function. */
#cmakedefine HAVE_DAEMON
/* Define to 1 if you have the declaration of `SO_MARK', and to 0 if you
don't. */
#cmakedefine01 HAVE_DECL_SO_MARK
/* Define to 1 if you have the <direct.h> header file. */
#cmakedefine HAVE_DIRECT_H
/* Define to 1 if you have the `dirname' function. */
#cmakedefine HAVE_DIRNAME
/* Define to 1 if you have the <dlfcn.h> header file. */
#cmakedefine HAVE_DLFCN_H
/* Define to 1 if you have the <dmalloc.h> header file. */
#cmakedefine HAVE_DMALLOC_H
/* Define to 1 if you have the `dup' function. */
#cmakedefine HAVE_DUP
/* Define to 1 if you have the `dup2' function. */
#cmakedefine HAVE_DUP2
/* Define to 1 if you have the `epoll_create' function. */
#cmakedefine HAVE_EPOLL_CREATE
/* Define to 1 if you have the <err.h> header file. */
#cmakedefine HAVE_ERR_H
/* Crypto library supports keying material exporter */
#define HAVE_EXPORT_KEYING_MATERIAL 1
/* Define to 1 if you have the <fcntl.h> header file. */
#cmakedefine HAVE_FCNTL_H
/* Define to 1 if you have the `fork' function. */
#cmakedefine HAVE_FORK
#cmakedefine HAVE_EXECVE
/* Define to 1 if you have the `ftruncate' function. */
#cmakedefine HAVE_FTRUNCATE
/* Define to 1 if you have the `getgrnam' function. */
#cmakedefine HAVE_GETGRNAM
/* Define to 1 if you have the `getpeereid' function. */
#cmakedefine HAVE_GETPEEREID
/* Define to 1 if you have the `getpwnam' function. */
#cmakedefine HAVE_GETPWNAM
/* Define to 1 if you have the `getrlimit' function. */
#cmakedefine HAVE_GETRLIMIT
/* Define to 1 if you have the `getsockname' function. */
#cmakedefine HAVE_GETSOCKNAME
/* Define to 1 if you have the `gettimeofday' function. */
#cmakedefine HAVE_GETTIMEOFDAY
/* Define to 1 if you have the <grp.h> header file. */
#cmakedefine HAVE_GRP_H
/* struct in_pktinfo needed for IP_PKTINFO support */
#cmakedefine HAVE_IN_PKTINFO
/* Define to 1 if you have the <io.h> header file. */
#cmakedefine HAVE_IO_H
/* struct in_pktinfo.ipi_spec_dst needed for IP_PKTINFO support */
#cmakedefine HAVE_IPI_SPEC_DST
/* Define to 1 if you have the <libgen.h> header file. */
#cmakedefine HAVE_LIBGEN_H
/* Define to 1 if you have the <limits.h> header file. */
#define HAVE_LIMITS_H 1
/* Define to 1 if you have the <linux/if_tun.h> header file. */
#cmakedefine HAVE_LINUX_IF_TUN_H
/* Define to 1 if you have the <linux/sockios.h> header file. */
#cmakedefine HAVE_LINUX_SOCKIOS_H
/* Define to 1 if you have the <linux/types.h> header file. */
#cmakedefine HAVE_LINUX_TYPES_H
/* Define to 1 if you have the <lzo1x.h> header file. */
#define HAVE_LZO1X_H 1
/* Define to 1 if you have the `mlockall' function. */
#cmakedefine HAVE_MLOCKALL
/* struct msghdr needed for extended socket error support */
#cmakedefine HAVE_MSGHDR
/* Define to 1 if you have the <netdb.h> header file. */
#cmakedefine HAVE_NETDB_H
/* Define to 1 if you have the <netinet/in.h> header file. */
#cmakedefine HAVE_NETINET_IN_H
/* Define to 1 if you have the <netinet/ip.h> header file. */
#cmakedefine HAVE_NETINET_IP_H
/* Define to 1 if you have the <netinet/tcp.h> header file. */
#undef HAVE_NETINET_TCP_H
/* Define to 1 if you have the <net/if.h> header file. */
#cmakedefine HAVE_NET_IF_H
/* Define to 1 if you have the <net/if_tun.h> header file. */
#cmakedefine HAVE_NET_IF_TUN_H
/* Define to 1 if you have the <net/if_utun.h> header file. */
#cmakedefine01 HAVE_NET_IF_UTUN_H
/* Define to 1 if you have the <net/tun/if_tun.h> header file. */
#cmakedefine HAVE_NET_TUN_IF_TUN_H
/* Define to 1 if you have the `nice' function. */
#cmakedefine HAVE_NICE
/* Define to 1 if you have the `openlog' function. */
#cmakedefine HAVE_OPENLOG
/* OpenSSL engine support available */
#undef HAVE_OPENSSL_ENGINE
/* Define to 1 if you have the `poll' function. */
#undef HAVE_POLL
/* Define to 1 if you have the <poll.h> header file. */
#cmakedefine HAVE_POLL_H
/* Define to 1 if you have the `putenv' function. */
#undef HAVE_PUTENV
/* Define to 1 if you have the <pwd.h> header file. */
#cmakedefine HAVE_PWD_H
/* Define to 1 if you have the `recvmsg' function. */
#cmakedefine HAVE_RECVMSG
#cmakedefine HAVE_SENDMSG
/* Define to 1 if you have the <resolv.h> header file. */
#cmakedefine HAVE_RESOLV_H
/* sa_family_t, needed to hold AF_* info */
#cmakedefine HAVE_SA_FAMILY_T
/* Define to 1 if you have the `sd_booted' function. */
#undef HAVE_SD_BOOTED
/* Define to 1 if you have the `setgid' function. */
#cmakedefine HAVE_SETGID
/* Define to 1 if you have the `setgroups' function. */
#undef HAVE_SETGROUPS
/* Define to 1 if you have the `setsid' function. */
#cmakedefine HAVE_SETSID
/* Define to 1 if you have the `setsockopt' function. */
#define HAVE_SETSOCKOPT 1
/* Define to 1 if you have the `setuid' function. */
#cmakedefine HAVE_SETUID
/* Define to 1 if you have the <signal.h> header file. */
#undef HAVE_SIGNAL_H
/* Define to 1 if you have the `socket' function. */
#undef HAVE_SOCKET
/* struct sock_extended_err needed for extended socket error support */
#undef HAVE_SOCK_EXTENDED_ERR
/* Define to 1 if you have the `stat' function. */
#define HAVE_STAT 1
/* Define to 1 if you have the <stdarg.h> header file. */
#define HAVE_STDARG_H 1
/* Define to 1 if you have the <stdint.h> header file. */
#define HAVE_STDINT_H 1
/* Define to 1 if you have the <stdio.h> header file. */
#define HAVE_STDIO_H 1
/* Define to 1 if you have the <stdlib.h> header file. */
#define HAVE_STDLIB_H 1
/* Define to 1 if you have the `strdup' function. */
#undef HAVE_STRDUP
/* Define to 1 if you have the <strings.h> header file. */
#define HAVE_STRINGS_H 1
/* Define to 1 if you have the <string.h> header file. */
#define HAVE_STRING_H 1
/* Define to 1 if you have the `strsep' function. */
#undef HAVE_STRSEP
/* Define to 1 if you have the `syslog' function. */
#cmakedefine HAVE_SYSLOG
/* Define to 1 if you have the <syslog.h> header file. */
#cmakedefine HAVE_SYSLOG_H
/* Define to 1 if you have the `system' function. */
#undef HAVE_SYSTEM
/* Define to 1 if you have the <systemd/sd-daemon.h> header file. */
#undef HAVE_SYSTEMD_SD_DAEMON_H
/* Define to 1 if you have the <sys/epoll.h> header file. */
#cmakedefine HAVE_SYS_EPOLL_H
/* Define to 1 if you have the <sys/file.h> header file. */
#undef HAVE_SYS_FILE_H
/* Define to 1 if you have the <sys/inotify.h> header file. */
#cmakedefine HAVE_SYS_INOTIFY_H
/* Define to 1 if you have the <sys/ioctl.h> header file. */
#cmakedefine HAVE_SYS_IOCTL_H
/* Define to 1 if you have the <sys/kern_control.h> header file. */
#undef HAVE_SYS_KERN_CONTROL_H
/* Define to 1 if you have the <sys/mman.h> header file. */
#cmakedefine HAVE_SYS_MMAN_H
/* Define to 1 if you have the <sys/socket.h> header file. */
#cmakedefine HAVE_SYS_SOCKET_H
/* Define to 1 if you have the <sys/sockio.h> header file. */
#cmakedefine HAVE_SYS_SOCKIO_H
/* Define to 1 if you have the <sys/stat.h> header file. */
#define HAVE_SYS_STAT_H 1
/* Define to 1 if you have the <sys/time.h> header file. */
#cmakedefine HAVE_SYS_TIME_H
/* Define to 1 if you have the <sys/types.h> header file. */
#undef HAVE_SYS_TYPES_H
/* Define to 1 if you have the <sys/uio.h> header file. */
#cmakedefine HAVE_SYS_UIO_H
/* Define to 1 if you have the <sys/un.h> header file. */
#cmakedefine HAVE_SYS_UN_H
/* Define to 1 if you have the <sys/wait.h> header file. */
#cmakedefine HAVE_SYS_WAIT_H
/* Define to 1 if you have the <tap-windows.h> header file. */
#undef HAVE_TAP_WINDOWS_H
/* Define to 1 if you have the `time' function. */
#define HAVE_TIME 1
/* Define to 1 if you have the <time.h> header file. */
#define HAVE_TIME_H 1
/* Define to 1 if you have the <uapi.h> header file. */
#undef HAVE_UAPI_H
/* Define to 1 if you have the <unistd.h> header file. */
#cmakedefine HAVE_UNISTD_H
/* Define to 1 if you have the <valgrind/memcheck.h> header file. */
#undef HAVE_VALGRIND_MEMCHECK_H
/* Define to 1 if you have the `vfork' function. */
#undef HAVE_VFORK
/* Define to 1 if you have the <vfork.h> header file. */
#undef HAVE_VFORK_H
/* Availability of different mbed TLS features and APIs */
#cmakedefine01 HAVE_MBEDTLS_PSA_CRYPTO_H
#define HAVE_MBEDTLS_SSL_TLS_PRF 1
#cmakedefine01 HAVE_MBEDTLS_SSL_SET_EXPORT_KEYS_CB
#cmakedefine01 HAVE_MBEDTLS_CTR_DRBG_UPDATE_RET
/* Path to ifconfig tool */
#define IFCONFIG_PATH "@IFCONFIG_PATH@"
/* Path to iproute tool */
#define IPROUTE_PATH "@IPROUTE_PATH@"
/* Path to route tool */
#define ROUTE_PATH "@ROUTE_PATH@"
CMake: Add complete MinGW and MSVC build This is based on the initial CMake patch by Arne Schwabe, but extends that to provide a complete replacement for existing MinGW build (autotools based) and MSVC build (openvpn.sln). The following features are added while switching these builds to CMake: - vcpkg support for MinGW build, allowing for trivial cross-compilation on Linux - Add unittests to MSVC build - Rework MSVC config header generation, removing need for separate headers between autotools and MSVC The following advantages are reasons for switching to CMake over the existing MSVC build: - Easier to maintain CMake files without IDE than the sln and vcxproj files - Able to maintain MSVC and MinGW build side-by-side The plan is to completely remove the existing MSVC build system but leave the existing autotools builds in place as-is, including MinGW support. CMake is not the intended build system for Unix-like platforms and there are no current plans to switch to it. v2: - Reduce default warning level for MSVC to /W2. With /W3 the build is just much too noisy, making it difficult to spot new warnings. - Change MSVC CMake presets to have hardcoded build type. When using pkg_search_module MSVC Multi-Config builds do not work correctly at all since PkgConfig doesn't seem to be able to create multi-config libraries like find_package does. - Change minGW presets to be Multi-Config capable. - Remove OPENVPN_VERSION_MAJOR, OPENVPN_VERSION_MINOR, OPENVPN_VERSION_PATCH from config.h.cmake.in. They are not required and cause macro redefinition warnings in MSVC (with openvpn-plugin.h). gcc doesn't warn about this because the definitions are identical so no need to fix this in autoheader config.h.in. v3: - Apply fixes by Lev Stipakov to match MSVC compile options better to previous build. - Apply change by Lev Stipakov to enable generation of PDB files. - Move /Brepro to its own commit. This is a behavior change that should be more visible. - Rebase on top of my dist fixes. Change-Id: I237f28eca618d4fc476225b887c0be26cca362b1 Signed-off-by: Frank Lichtenheld <frank@lichtenheld.com> Acked-by: Lev Stipakov <lstipakov@gmail.com> Message-Id: <20230620135310.94455-3-frank@lichtenheld.com> URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg26754.html Signed-off-by: Gert Doering <gert@greenie.muc.de>
2023-06-20 21:53:07 +08:00
/* OpenVPN version in Windows resource format - string */
#define OPENVPN_VERSION_RESOURCE @OPENVPN_VERSION_RESOURCE@
/* Name of package */
#define PACKAGE "openvpn"
/* Define to the address where bug reports for this package should be sent. */
#undef PACKAGE_BUGREPORT
/* Define to the full name of this package. */
#define PACKAGE_NAME "OpenVPN"
/* Define to the full name and version of this package. */
#define PACKAGE_STRING "OpenVPN @OPENVPN_VERSION_MAJOR@.@OPENVPN_VERSION_MINOR@@OPENVPN_VERSION_PATCH@"
/* Define to the version of this package. */
#define PACKAGE_VERSION "@OPENVPN_VERSION_MAJOR@.@OPENVPN_VERSION_MINOR@@OPENVPN_VERSION_PATCH@"
/* Path to systemd-ask-password tool */
#undef SYSTEMD_ASK_PASSWORD_PATH
/* systemd is newer than v216 */
#define SYSTEMD_NEWER_THAN_216
/* The tap-windows id */
#define TAP_WIN_COMPONENT_ID "tap0901"
/* The tap-windows version number is required for OpenVPN */
#define TAP_WIN_MIN_MAJOR 9
/* The tap-windows version number is required for OpenVPN */
#define TAP_WIN_MIN_MINOR 9
/* Are we running on Mac OS X? */
#cmakedefine TARGET_DARWIN
/* Are we running on FreeBSD? */
#cmakedefine TARGET_FREEBSD
/* Are we running on Linux? */
#cmakedefine TARGET_LINUX
/* Are we running on Solaris/OpenIndiana? */
#cmakedefine TARGET_SOLARIS
/* Are we running WIN32? */
#cmakedefine TARGET_WIN32
#define TARGET_ALIAS "@CMAKE_SYSTEM_NAME@"
/* Enable GNU extensions on systems that have them. */
#ifndef _GNU_SOURCE
# define _GNU_SOURCE 1
#endif
#if defined(_WIN32)
#include <inttypes.h>
typedef uint32_t in_addr_t;
typedef uint16_t in_port_t;
#define SIGHUP 1
#define SIGINT 2
#define SIGUSR1 10
#define SIGUSR2 12
#define SIGTERM 15
#endif
#if defined(_MSC_VER)
#include <BaseTsd.h>
typedef SSIZE_T ssize_t;
#define strncasecmp strnicmp
#define strcasecmp _stricmp
#define S_IRUSR _S_IREAD
#define S_IWUSR _S_IWRITE
#define R_OK 4
#define W_OK 2
#define X_OK 1
#define F_OK 0
#endif