Attention is currently required from: flichtenheld.
Hello flichtenheld,
I'd like you to reexamine a change. Please visit
http://gerrit.openvpn.net/c/openvpn/+/751?usp=email
to look at the new patch set (#3).
Change subject: Add building/testing with msbuild and the clang compiler
......................................................................
Add building/testing with msbuild and the clang compiler
The LLVM/clang compiler warning and error message are easier too read
than their MSVC cl counterparts. Also compiling/running tests on Windows
with a different compiler has the benefit of a better coverage.
Change-Id: I43d84034f3e920a45731c4aab4f851a60921290d
Signed-off-by: Arne Schwabe <[email protected]>
---
M .github/workflows/build.yaml
M CMakeLists.txt
M CMakePresets.json
M src/openvpnmsica/openvpnmsica.c
M src/openvpnmsica/openvpnmsica.h
5 files changed, 67 insertions(+), 9 deletions(-)
git pull ssh://gerrit.openvpn.net:29418/openvpn refs/changes/51/751/3
diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml
index 361d457..d326937 100644
--- a/.github/workflows/build.yaml
+++ b/.github/workflows/build.yaml
@@ -272,7 +272,7 @@
strategy:
fail-fast: false
matrix:
- arch: [amd64, x86, arm64]
+ arch: [amd64, x86, arm64, amd64-clang, x86-clang]
name: "msbuild - ${{ matrix.arch }} - openssl"
env:
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6271574..a841590 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -624,7 +624,8 @@
check_linker_flag(C -Wl,--wrap=parse_line LD_SUPPORTS_WRAP)
endif()
- if (${LD_SUPPORTS_WRAP})
+ # Clang-cl (which is also MSVC) is wrongly detected to support wrap
+ if (NOT MSVC AND "${LD_SUPPORTS_WRAP}")
list(APPEND unit_tests
"test_argv"
"test_tls_crypt"
diff --git a/CMakePresets.json b/CMakePresets.json
index 135b19d..c53c960 100644
--- a/CMakePresets.json
+++ b/CMakePresets.json
@@ -122,6 +122,10 @@
}
},
{
+ "name": "clangtoolset",
+ "toolset": "ClangCL"
+ },
+ {
"name": "mingw-x64",
"inherits": [ "base", "base-mingw", "x64-mingw" ]
},
@@ -134,6 +138,10 @@
"inherits": [ "base", "base-windows", "x64", "release" ]
},
{
+ "name": "win-amd64-clang-release",
+ "inherits": [ "base", "base-windows", "clangtoolset", "x64",
"release" ]
+ },
+ {
"name": "win-arm64-release",
"inherits": [ "base", "base-windows", "arm64", "release" ]
},
@@ -142,10 +150,18 @@
"inherits": [ "base", "base-windows", "x86", "release" ]
},
{
+ "name": "win-x86-clang-release",
+ "inherits": [ "base", "base-windows", "clangtoolset", "x86",
"release" ]
+ },
+ {
"name": "win-amd64-debug",
"inherits": [ "base", "base-windows", "x64", "debug" ]
},
{
+ "name": "win-amd64-clang-debug",
+ "inherits": [ "base", "base-windows", "clangtoolset", "x64",
"debug" ]
+ },
+ {
"name": "win-arm64-debug",
"inherits": [ "base", "base-windows", "arm64", "debug" ]
},
@@ -154,6 +170,10 @@
"inherits": [ "base", "base-windows", "x86", "debug" ]
},
{
+ "name": "win-x86-clang-debug",
+ "inherits": [ "base", "base-windows", "clangtoolset", "x86",
"debug" ]
+ },
+ {
"name": "unix-native",
"generator": "Ninja Multi-Config",
"binaryDir": "out/build/unix"
@@ -174,6 +194,11 @@
"configuration": "Release"
},
{
+ "name": "win-amd64-clang-release",
+ "configurePreset": "win-amd64-clang-release",
+ "configuration": "Release"
+ },
+ {
"name": "win-arm64-release",
"configurePreset": "win-arm64-release",
"configuration": "Release"
@@ -184,11 +209,21 @@
"configuration": "Release"
},
{
+ "name": "win-x86-clang-release",
+ "configurePreset": "win-x86-release",
+ "configuration": "Release"
+ },
+ {
"name": "win-amd64-debug",
"configurePreset": "win-amd64-debug",
"configuration": "Debug"
},
{
+ "name": "win-amd64-clang-debug",
+ "configurePreset": "win-amd64-debug",
+ "configuration": "Debug"
+ },
+ {
"name": "win-arm64-debug",
"configurePreset": "win-arm64-debug",
"configuration": "Debug"
@@ -199,6 +234,11 @@
"configuration": "Debug"
},
{
+ "name": "win-x86-clang-debug",
+ "configurePreset": "win-x86-clang-debug",
+ "configuration": "Debug"
+ },
+ {
"name": "unix-native",
"configurePreset": "unix-native"
}
@@ -209,18 +249,34 @@
"configurePreset": "win-amd64-release"
},
{
+ "name": "win-amd64-clang-release",
+ "configurePreset": "win-amd64-clang-release"
+ },
+ {
"name": "win-x86-release",
"configurePreset": "win-x86-release"
},
{
+ "name": "win-x86-clang-release",
+ "configurePreset": "win-x86-clang-release"
+ },
+ {
"name": "win-amd64-debug",
"configurePreset": "win-amd64-debug"
},
{
+ "name": "win-amd64-clang-debug",
+ "configurePreset": "win-amd64-clang-debug"
+ },
+ {
"name": "win-x86-debug",
"configurePreset": "win-x86-debug"
},
{
+ "name": "win-x86-clang-debug",
+ "configurePreset": "win-x86-clang-debug"
+ },
+ {
"name": "unix-native",
"configurePreset": "unix-native"
}
diff --git a/src/openvpnmsica/openvpnmsica.c b/src/openvpnmsica/openvpnmsica.c
index 5ffb5b3..49d7944 100644
--- a/src/openvpnmsica/openvpnmsica.c
+++ b/src/openvpnmsica/openvpnmsica.c
@@ -300,7 +300,7 @@
UINT __stdcall
FindSystemInfo(_In_ MSIHANDLE hInstall)
{
-#ifdef _MSC_VER
+#if defined(_MSC_VER) && !defined(__clang__)
#pragma comment(linker, DLLEXP_EXPORT)
#endif
@@ -337,7 +337,7 @@
UINT __stdcall
CloseOpenVPNGUI(_In_ MSIHANDLE hInstall)
{
-#ifdef _MSC_VER
+#if defined(_MSC_VER) && !defined(__clang__)
#pragma comment(linker, DLLEXP_EXPORT)
#endif
UNREFERENCED_PARAMETER(hInstall); /* This CA is does not interact with MSI
session (report errors, access properties, tables, etc.). */
@@ -360,7 +360,7 @@
UINT __stdcall
StartOpenVPNGUI(_In_ MSIHANDLE hInstall)
{
-#ifdef _MSC_VER
+#if defined(_MSC_VER) && !defined(__clang__)
#pragma comment(linker, DLLEXP_EXPORT)
#endif
@@ -633,7 +633,7 @@
UINT __stdcall
EvaluateTUNTAPAdapters(_In_ MSIHANDLE hInstall)
{
-#ifdef _MSC_VER
+#if defined(_MSC_VER) && !defined(__clang__)
#pragma comment(linker, DLLEXP_EXPORT)
#endif
@@ -962,7 +962,7 @@
UINT __stdcall
ProcessDeferredAction(_In_ MSIHANDLE hInstall)
{
-#ifdef _MSC_VER
+#if defined(_MSC_VER) && !defined(__clang__)
#pragma comment(linker, DLLEXP_EXPORT)
#endif
@@ -1162,7 +1162,7 @@
UINT __stdcall
CheckAndScheduleReboot(_In_ MSIHANDLE hInstall)
{
-#ifdef _MSC_VER
+#if defined(_MSC_VER) && !defined(__clang__)
#pragma comment(linker, DLLEXP_EXPORT)
#endif
diff --git a/src/openvpnmsica/openvpnmsica.h b/src/openvpnmsica/openvpnmsica.h
index 6640d7e..76cba48 100644
--- a/src/openvpnmsica/openvpnmsica.h
+++ b/src/openvpnmsica/openvpnmsica.h
@@ -66,7 +66,8 @@
extern "C" {
#endif
-#ifdef __GNUC__
+/* Ensure that clang-cl, which defines __GNUC__ is not matched here */
+#if defined(__GNUC__) || defined(__clang__)
#define DLLEXP_DECL __declspec(dllexport)
#else
#define DLLEXP_DECL
--
To view, visit http://gerrit.openvpn.net/c/openvpn/+/751?usp=email
To unsubscribe, or for help writing mail filters, visit
http://gerrit.openvpn.net/settings
Gerrit-Project: openvpn
Gerrit-Branch: master
Gerrit-Change-Id: I43d84034f3e920a45731c4aab4f851a60921290d
Gerrit-Change-Number: 751
Gerrit-PatchSet: 3
Gerrit-Owner: plaisthos <[email protected]>
Gerrit-Reviewer: flichtenheld <[email protected]>
Gerrit-CC: openvpn-devel <[email protected]>
Gerrit-Attention: flichtenheld <[email protected]>
Gerrit-MessageType: newpatchset
_______________________________________________
Openvpn-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openvpn-devel