aboutsummaryrefslogtreecommitdiff
path: root/contrib/vcpkg-manifests
diff options
context:
space:
mode:
authorFrank Lichtenheld2023-09-26 11:50:30 +0200
committerGert Doering2023-09-26 17:39:51 +0200
commit96ca5a5a2a0b278f6cc47199fc3311143fd9a6b7 (patch)
treea271ba0a254fe71d61951137f175712da5159976 /contrib/vcpkg-manifests
parentcce957a5b6ed11b0fa35a97e0e638ea00f9921ef (diff)
downloadopenvpn-96ca5a5a2a0b278f6cc47199fc3311143fd9a6b7.zip
openvpn-96ca5a5a2a0b278f6cc47199fc3311143fd9a6b7.tar.gz
CMake: backport CMake buildsystem from master to release/2.6
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. This commits squashes a lot of commits from master together, since most of them are just fixes or enhancements for the original CMake commit. The decisions was not to bloat the release/2.6 commit history with these detours. It contains the following commits: - add basic CMake based build (commit 0134184012dd46ec44cbca7eb3ece39037ae0bfa by Arne Schwabe) - CMake: Add complete MinGW and MSVC build (commit e8881ec6dd63bd80ce05202573eac54ab8657fcb) - CMake: Add /Brepro to MSVC link options (commit 5e94e8de4bfaf6637124947a3489710b591e5e26) - Do not blindly assume python3 is also the interpreter that runs rst2html (commit 5dbec1c019d14880ae7bf364b062d3589c7fd9e7 by Arne Schwabe) - Only add -Wno-stringop-truncation on supported compilers (commit eb3cd5ea36f9bf235da7b8a51fd6ce29780f0e39 by Arne Schwabe) - CMake: Throw a clear error when config.h in top-level source directory (commit 0652ae84f4528daa57da344eee28b7385a6659a1) - openvpnmsica: link C runtime statically (commit 3be4986ea3d6e27acd3e3a317c15dfe07688e135 by Lev Stipakov) - CMake: Support doc builds on Windows machines that do not have .py file association (commit 22213a8834ba5ba5c9818015730edbf3766ad915) - README.cmake.md: Add new documentation for CMake buildsystem (commit 53055fd23efb6209b12d3662427158e25247f1fe) - Check if the -wrap argument is actually supported by the platform's ld (commit 4ef76f0ee4e122dcd616e1b1e2d652562ab10756 by Arne Schwabe) - GHA: update to run-vcpkg@v11 (commit 66e33ee81d1d7fa3495ae3aad6e673766e296687) - GHA: refactor mingw UTs and add missing tls_crypt (commit 26c663f12815f55c483dbe660e28448dc63221d1) - CMake: various small non-functional improvements (commit 95cc5faa16833acaf12a4d273c5c848984fc73ce) - CMake: fix broken daemonization and syslog functionality (commit 8ae6c48d5d52dec8ec6e47cc1cfe89de9f2ffbcd) - CMake: fix HAVE_DAEMON detection on Linux (commit e363b393f2d1b72590666554e17d928c1603f8d5) Change-Id: I6de18261d5dc7f8561612184059656c73f33a5f2 Signed-off-by: Frank Lichtenheld <frank@lichtenheld.com> Acked-by: Lev Stipakov <lstipakov@gmail.com> Co-authored-by: Arne Schwabe <arne@rfc2549.org> Co-authored-by: Lev Stipakov <lev@openvpn.net> Message-Id: <20230926095030.29779-1-frank@lichtenheld.com> URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg27107.html Signed-off-by: Gert Doering <gert@greenie.muc.de>
Diffstat (limited to 'contrib/vcpkg-manifests')
-rw-r--r--contrib/vcpkg-manifests/mingw/vcpkg.json13
-rw-r--r--contrib/vcpkg-manifests/windows/vcpkg.json20
2 files changed, 33 insertions, 0 deletions
diff --git a/contrib/vcpkg-manifests/mingw/vcpkg.json b/contrib/vcpkg-manifests/mingw/vcpkg.json
new file mode 100644
index 0000000..fc00b01
--- /dev/null
+++ b/contrib/vcpkg-manifests/mingw/vcpkg.json
@@ -0,0 +1,13 @@
+{
+ "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg/master/scripts/vcpkg.schema.json",
+ "name": "openvpn",
+ "version": "2.7",
+ "dependencies": [
+ "openssl",
+ "tap-windows6",
+ "lzo",
+ "lz4",
+ "pkcs11-helper",
+ "cmocka"
+ ]
+}
diff --git a/contrib/vcpkg-manifests/windows/vcpkg.json b/contrib/vcpkg-manifests/windows/vcpkg.json
new file mode 100644
index 0000000..67a1f87
--- /dev/null
+++ b/contrib/vcpkg-manifests/windows/vcpkg.json
@@ -0,0 +1,20 @@
+{
+ "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg/master/scripts/vcpkg.schema.json",
+ "name": "openvpn",
+ "version": "2.7",
+ "dependencies": [
+ {
+ "name": "openssl",
+ "features": ["tools"]
+ },
+ "tap-windows6",
+ "lzo",
+ "lz4",
+ "pkcs11-helper",
+ "cmocka",
+ {
+ "name": "pkgconf",
+ "host": true
+ }
+ ]
+}