From: Lev Stipakov Date: Fri, 14 May 2021 04:57:04 +0000 (+0300) Subject: msvc: standalone building X-Git-Tag: v2.6_beta1~482 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=56f775fe9dacab7804109e305d652057b0c7fd3c;p=thirdparty%2Fopenvpn.git msvc: standalone building This finally enables standalone MSVC building, without dependency on openvpn-build/msvc. This makes MSVC build process much simpler. Dependencies are managed by vcpkg. To install dependencies, run: > vcpkg --overlay-ports=\contrib\vcpkg-ports --overlay-triplets=\contrib\vcpkg-triplets install lz4:x64-windows-ovpn lzo:x64-windows-ovpn openssl-windows:x64-windows-ovpn pkcs11-helper:x64-windows-ovpn tap-windows6:x64-windows-ovpn To build for other arch, use x86-windows-ovpn or arm64-windows-ovpn. Custom triplets are defines so that lz4 is linked statically and other libraries dynamically. Since we don't have CMake support yet, we cannot use vcpkg manifest mode, since it doesn't work with overlay ports (https://github.com/microsoft/vcpkg/issues/12289), therefore this one-time manual dependency installation is required. While on it, bump msvc-generate project target version to VS2019 and cleanup leftovers from compat.vcxproj.filters. Signed-off-by: Lev Stipakov Acked-by: Gert Doering Message-Id: <20210514045704.686-1-lstipakov@gmail.com> URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg22389.html Signed-off-by: Gert Doering --- diff --git a/build/msvc/msvc-generate/msvc-generate.vcxproj b/build/msvc/msvc-generate/msvc-generate.vcxproj index dd947f98a..dda8b051d 100644 --- a/build/msvc/msvc-generate/msvc-generate.vcxproj +++ b/build/msvc/msvc-generate/msvc-generate.vcxproj @@ -30,32 +30,32 @@ {8598C2C8-34C4-47A1-99B0-7C295A890615} msvc-generate MakeFileProj - 10.0.17134.0 + 10.0 Makefile - v141 + v142 Makefile - v141 + v142 Makefile - v141 + v142 Makefile - v141 + v142 Makefile - v141 + v142 Makefile - v141 + v142 diff --git a/contrib/vcpkg-triplets/arm64-windows-ovpn.cmake b/contrib/vcpkg-triplets/arm64-windows-ovpn.cmake new file mode 100644 index 000000000..dd3c6c0a6 --- /dev/null +++ b/contrib/vcpkg-triplets/arm64-windows-ovpn.cmake @@ -0,0 +1,7 @@ +set(VCPKG_TARGET_ARCHITECTURE arm64) +set(VCPKG_CRT_LINKAGE dynamic) +set(VCPKG_LIBRARY_LINKAGE dynamic) + +if(PORT STREQUAL "lz4") + set(VCPKG_LIBRARY_LINKAGE static) +endif() diff --git a/contrib/vcpkg-triplets/x64-windows-ovpn.cmake b/contrib/vcpkg-triplets/x64-windows-ovpn.cmake new file mode 100644 index 000000000..7036ed2d4 --- /dev/null +++ b/contrib/vcpkg-triplets/x64-windows-ovpn.cmake @@ -0,0 +1,7 @@ +set(VCPKG_TARGET_ARCHITECTURE x64) +set(VCPKG_CRT_LINKAGE dynamic) +set(VCPKG_LIBRARY_LINKAGE dynamic) + +if(PORT STREQUAL "lz4") + set(VCPKG_LIBRARY_LINKAGE static) +endif() diff --git a/contrib/vcpkg-triplets/x86-windows-ovpn.cmake b/contrib/vcpkg-triplets/x86-windows-ovpn.cmake new file mode 100644 index 000000000..7d3bf340b --- /dev/null +++ b/contrib/vcpkg-triplets/x86-windows-ovpn.cmake @@ -0,0 +1,7 @@ +set(VCPKG_TARGET_ARCHITECTURE x86) +set(VCPKG_CRT_LINKAGE dynamic) +set(VCPKG_LIBRARY_LINKAGE dynamic) + +if(PORT STREQUAL "lz4") + set(VCPKG_LIBRARY_LINKAGE static) +endif() diff --git a/src/compat/compat.vcxproj b/src/compat/compat.vcxproj index 1a11deb41..498247835 100644 --- a/src/compat/compat.vcxproj +++ b/src/compat/compat.vcxproj @@ -97,39 +97,57 @@ <_ProjectFileVersion>10.0.30319.1 + + true + + + true + + + true + + + true + + + true + + + true + - $(OPENSSL_HOME)/include;$(LZO_HOME)/include;$(PKCS11H_HOME)/include;%(AdditionalIncludeDirectories) + $(SolutionDir);%(AdditionalIncludeDirectories) _LIB;%(PreprocessorDefinitions) - $(OPENSSL_HOME)/include;$(LZO_HOME)/include;$(PKCS11H_HOME)/include;%(AdditionalIncludeDirectories) + $(SolutionDir);%(AdditionalIncludeDirectories) _LIB;%(PreprocessorDefinitions) - $(OPENSSL_HOME)/include;$(LZO_HOME)/include;$(PKCS11H_HOME)/include;%(AdditionalIncludeDirectories) + $(SolutionDir);%(AdditionalIncludeDirectories) _LIB;%(PreprocessorDefinitions) - $(OPENSSL_HOME)/include;$(LZO_HOME)/include;$(PKCS11H_HOME)/include;%(AdditionalIncludeDirectories) + $(SolutionDir);%(AdditionalIncludeDirectories) _LIB;%(PreprocessorDefinitions) - $(OPENSSL_HOME)/include;$(LZO_HOME)/include;$(PKCS11H_HOME)/include;%(AdditionalIncludeDirectories) + $(SolutionDir);%(AdditionalIncludeDirectories) _LIB;%(PreprocessorDefinitions) - $(OPENSSL_HOME)/include;$(LZO_HOME)/include;$(PKCS11H_HOME)/include;%(AdditionalIncludeDirectories) + $(SolutionDir);%(AdditionalIncludeDirectories) _LIB;%(PreprocessorDefinitions) diff --git a/src/compat/compat.vcxproj.filters b/src/compat/compat.vcxproj.filters index 404863ca5..96ca026a5 100644 --- a/src/compat/compat.vcxproj.filters +++ b/src/compat/compat.vcxproj.filters @@ -24,12 +24,6 @@ Source Files - - Source Files - - - Source Files - Source Files diff --git a/src/openvpn/openvpn.vcxproj b/src/openvpn/openvpn.vcxproj index 370345a1b..3cf47f076 100644 --- a/src/openvpn/openvpn.vcxproj +++ b/src/openvpn/openvpn.vcxproj @@ -115,92 +115,116 @@ false + + true + arm64-windows-ovpn + + + true + arm64-windows-ovpn + + + true + x86-windows-ovpn + + + true + x86-windows-ovpn + + + true + x64-windows-ovpn + + + true + x64-windows-ovpn + - ..\compat;$(TAP_WINDOWS_HOME)/include;$(OPENSSL_HOME)/include;$(LZO_HOME)/include;$(PKCS11H_HOME)/include;%(AdditionalIncludeDirectories) _CONSOLE;%(PreprocessorDefinitions) %(UndefinePreprocessorDefinitions) Level2 true + ..\compat;$(SolutionDir);%(AdditionalIncludeDirectories) - legacy_stdio_definitions.lib;Ncrypt.lib;libssl.lib;libcrypto.lib;lzo2.lib;pkcs11-helper.dll.lib;gdi32.lib;ws2_32.lib;wininet.lib;crypt32.lib;iphlpapi.lib;winmm.lib;Fwpuclnt.lib;Rpcrt4.lib;setupapi.lib;%(AdditionalDependencies) + Ncrypt.lib;gdi32.lib;ws2_32.lib;wininet.lib;crypt32.lib;iphlpapi.lib;winmm.lib;Fwpuclnt.lib;Rpcrt4.lib;setupapi.lib;Advapi32.lib $(OPENSSL_HOME)/lib;$(LZO_HOME)/lib;$(PKCS11H_HOME)/lib;%(AdditionalLibraryDirectories) Console - ..\compat;$(TAP_WINDOWS_HOME)/include;$(OPENSSL_HOME)/include;$(LZO_HOME)/include;$(PKCS11H_HOME)/include;%(AdditionalIncludeDirectories) _CONSOLE;%(PreprocessorDefinitions) %(UndefinePreprocessorDefinitions) Level2 true + ..\compat;$(SolutionDir)include;$(SolutionDir);%(AdditionalIncludeDirectories) - legacy_stdio_definitions.lib;Ncrypt.lib;libssl.lib;libcrypto.lib;lzo2.lib;pkcs11-helper.dll.lib;gdi32.lib;ws2_32.lib;wininet.lib;crypt32.lib;iphlpapi.lib;winmm.lib;Fwpuclnt.lib;Rpcrt4.lib;setupapi.lib;%(AdditionalDependencies) + Ncrypt.lib;gdi32.lib;ws2_32.lib;wininet.lib;crypt32.lib;iphlpapi.lib;winmm.lib;Fwpuclnt.lib;Rpcrt4.lib;setupapi.lib;Advapi32.lib $(OPENSSL_HOME)/lib;$(LZO_HOME)/lib;$(PKCS11H_HOME)/lib;%(AdditionalLibraryDirectories) Console - ..\compat;%(AdditionalIncludeDirectories) _CONSOLE;%(PreprocessorDefinitions) %(UndefinePreprocessorDefinitions) Level2 true + ..\compat;$(SolutionDir);%(AdditionalIncludeDirectories) - legacy_stdio_definitions.lib;Ncrypt.lib;libssl.lib;libcrypto.lib;lzo2.lib;gdi32.lib;ws2_32.lib;wininet.lib;crypt32.lib;iphlpapi.lib;winmm.lib;Fwpuclnt.lib;Rpcrt4.lib;setupapi.lib;%(AdditionalDependencies) + Ncrypt.lib;gdi32.lib;ws2_32.lib;wininet.lib;crypt32.lib;iphlpapi.lib;winmm.lib;Fwpuclnt.lib;Rpcrt4.lib;setupapi.lib;Advapi32.lib $(OPENSSL_HOME)/lib;$(LZO_HOME)/lib;$(PKCS11H_HOME)/lib;%(AdditionalLibraryDirectories) Console - ..\compat;$(TAP_WINDOWS_HOME)/include;$(OPENSSL_HOME)/include;$(LZO_HOME)/include;$(PKCS11H_HOME)/include;%(AdditionalIncludeDirectories) _CONSOLE;%(PreprocessorDefinitions) %(UndefinePreprocessorDefinitions) Level2 true + ..\compat;$(SolutionDir);%(AdditionalIncludeDirectories) - legacy_stdio_definitions.lib;Ncrypt.lib;libssl.lib;libcrypto.lib;lzo2.lib;pkcs11-helper.dll.lib;gdi32.lib;ws2_32.lib;wininet.lib;crypt32.lib;iphlpapi.lib;winmm.lib;Fwpuclnt.lib;Rpcrt4.lib;setupapi.lib;%(AdditionalDependencies) + Ncrypt.lib;gdi32.lib;ws2_32.lib;wininet.lib;crypt32.lib;iphlpapi.lib;winmm.lib;Fwpuclnt.lib;Rpcrt4.lib;setupapi.lib;Advapi32.lib $(OPENSSL_HOME)/lib;$(LZO_HOME)/lib;$(PKCS11H_HOME)/lib;%(AdditionalLibraryDirectories) Console - ..\compat;$(TAP_WINDOWS_HOME)/include;$(OPENSSL_HOME)/include;$(LZO_HOME)/include;$(PKCS11H_HOME)/include;%(AdditionalIncludeDirectories) _CONSOLE;%(PreprocessorDefinitions) %(UndefinePreprocessorDefinitions) Level2 true + ..\compat;$(SolutionDir);%(AdditionalIncludeDirectories) - legacy_stdio_definitions.lib;Ncrypt.lib;libssl.lib;libcrypto.lib;lzo2.lib;pkcs11-helper.dll.lib;gdi32.lib;ws2_32.lib;wininet.lib;crypt32.lib;iphlpapi.lib;winmm.lib;Fwpuclnt.lib;Rpcrt4.lib;setupapi.lib;%(AdditionalDependencies) + Ncrypt.lib;gdi32.lib;ws2_32.lib;wininet.lib;crypt32.lib;iphlpapi.lib;winmm.lib;Fwpuclnt.lib;Rpcrt4.lib;setupapi.lib;Advapi32.lib $(OPENSSL_HOME)/lib;$(LZO_HOME)/lib;$(PKCS11H_HOME)/lib;%(AdditionalLibraryDirectories) Console - ..\compat;%(AdditionalIncludeDirectories) _CONSOLE;%(PreprocessorDefinitions) %(UndefinePreprocessorDefinitions) Level2 true + ..\compat;$(SolutionDir);%(AdditionalIncludeDirectories) - legacy_stdio_definitions.lib;Ncrypt.lib;libssl.lib;libcrypto.lib;lzo2.lib;gdi32.lib;ws2_32.lib;wininet.lib;crypt32.lib;iphlpapi.lib;winmm.lib;Fwpuclnt.lib;Rpcrt4.lib;setupapi.lib;%(AdditionalDependencies) + Ncrypt.lib;gdi32.lib;ws2_32.lib;wininet.lib;crypt32.lib;iphlpapi.lib;winmm.lib;Fwpuclnt.lib;Rpcrt4.lib;setupapi.lib;Advapi32.lib $(OPENSSL_HOME)/lib;$(LZO_HOME)/lib;$(PKCS11H_HOME)/lib;%(AdditionalLibraryDirectories) Console diff --git a/src/openvpnmsica/openvpnmsica.vcxproj b/src/openvpnmsica/openvpnmsica.vcxproj index 4b429806e..c39b12408 100644 --- a/src/openvpnmsica/openvpnmsica.vcxproj +++ b/src/openvpnmsica/openvpnmsica.vcxproj @@ -111,6 +111,24 @@ + + true + + + true + + + true + + + true + + + true + + + true + diff --git a/src/openvpnserv/openvpnserv.vcxproj b/src/openvpnserv/openvpnserv.vcxproj index ee7d52ea2..8009ab3d1 100644 --- a/src/openvpnserv/openvpnserv.vcxproj +++ b/src/openvpnserv/openvpnserv.vcxproj @@ -97,6 +97,24 @@ <_ProjectFileVersion>10.0.30319.1 + + true + + + true + + + true + + + true + + + true + + + true + ..\openvpn;..\compat;%(AdditionalIncludeDirectories) diff --git a/src/tapctl/tapctl.vcxproj b/src/tapctl/tapctl.vcxproj index 1d593fc16..ad96f02c3 100644 --- a/src/tapctl/tapctl.vcxproj +++ b/src/tapctl/tapctl.vcxproj @@ -111,6 +111,24 @@ + + true + + + true + + + true + + + true + + + true + + + true +