From: Lev Stipakov Date: Fri, 14 May 2021 04:57:04 +0000 (+0300) Subject: msvc: standalone building X-Git-Tag: v2.5.3~11 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=206d9665a80de997b0b74707ec880879617cba9a;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 (cherry picked from commit 56f775fe9dacab7804109e305d652057b0c7fd3c) --- 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 598dc251e..14376e416 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 0f78e86ed..ec6a20ba9 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 8c3014707..2144775fb 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 124fe3e2d..bcf9d25bd 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 +