From 3abde8d88bde436dce423eae9edee0f4e8af915a Mon Sep 17 00:00:00 2001 From: Stefan Boberg Date: Fri, 13 Mar 2026 17:06:39 +0100 Subject: Add clang-cl build support - Add clang-cl warning suppressions in xmake.lua matching Linux/macOS set - Guard /experimental:c11atomics with {tools="cl"} for MSVC-only - Fix long long / int64_t redefinition in string.h for clang-cl - Fix unclosed namespace in callstacktrace.cpp #else branch - Fix missing override in httpplugin.cpp - Reorder WorkerPool fields to match designated initializer order - Use INVALID_SOCKET instead of SOCKET_ERROR for SOCKET comparisons --- xmake.lua | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'xmake.lua') diff --git a/xmake.lua b/xmake.lua index 94343cc90..6e7b22b1d 100644 --- a/xmake.lua +++ b/xmake.lua @@ -189,6 +189,30 @@ if is_os("linux") or is_os("macosx") then add_cxxflags("-Wno-vla-cxx-extension") end +if get_config("toolchain") == "clang-cl" then + add_cxxflags("-Wno-unknown-warning-option", {force=true}) + add_cxxflags("-Wno-cast-function-type-mismatch", {force=true}) + add_cxxflags("-Wno-delete-non-abstract-non-virtual-dtor", {force=true}) + add_cxxflags("-Wno-format", {force=true}) + add_cxxflags("-Wno-implicit-fallthrough", {force=true}) + add_cxxflags("-Wno-inconsistent-missing-override", {force=true}) + add_cxxflags("-Wno-missing-field-initializers", {force=true}) + add_cxxflags("-Wno-parentheses-equality", {force=true}) + add_cxxflags("-Wno-reorder-ctor", {force=true}) + add_cxxflags("-Wno-sign-compare", {force=true}) + add_cxxflags("-Wno-strict-aliasing", {force=true}) + add_cxxflags("-Wno-switch", {force=true}) + add_cxxflags("-Wno-unused-but-set-variable", {force=true}) + add_cxxflags("-Wno-unused-lambda-capture", {force=true}) + add_cxxflags("-Wno-unused-parameter", {force=true}) + add_cxxflags("-Wno-unused-private-field", {force=true}) + add_cxxflags("-Wno-unused-value", {force=true}) + add_cxxflags("-Wno-unused-variable", {force=true}) + add_cxxflags("-Wno-vla-cxx-extension", {force=true}) + add_cflags("-Wno-unknown-warning-option", {force=true}) + add_cflags("-Wno-unused-command-line-argument", {force=true}) +end + if is_os("macosx") then -- silence warnings about -Wno-vla-cxx-extension since to my knowledge we can't -- detect the clang version used in Xcode and only recent versions contain this flag -- cgit v1.2.3