Skip to content

Commit e70591f

Browse files
committed
(C++ modules support) fix clang-cl (disable build.c++.modules.two_phases)
1 parent 89fc551 commit e70591f

File tree

3 files changed

+6
-1
lines changed

3 files changed

+6
-1
lines changed

tests/projects/c++/modules/test_base.lua

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import("core.tool.toolchain")
44
import("utils.ci.is_running", {alias = "ci_is_running"})
55

66
CLANG_MIN_VER = "17"
7+
CLANG_CL_MIN_VER = "19"
78
GCC_MIN_VER = "11"
89
MSVC_MIN_VER = "14.29"
910

@@ -129,6 +130,7 @@ function run_tests(clang_options, gcc_options, msvc_options)
129130
build_tests("clang", clang_options)
130131
local clang_cl_options = table.clone(clang_options)
131132
clang_cl_options.compiler = "clang-cl"
133+
clang_cl_options.version = CLANG_CL_MIN_VER
132134
build_tests("clang-cl", clang_cl_options)
133135
if not clang_options.stdmodule then
134136
build_tests("llvm", clang_libcpp_options)

xmake/rules/c++/modules/clang/builder.lua

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,6 @@ function _get_requiresflags(target, module)
182182
end
183183
end
184184
requiresflags = table.unique(requiresflags)
185-
-- table.sort(requiresflags)
186185
support.memcache():set2(cachekey, "requiresflags", requiresflags)
187186
support.memcache():set2(cachekey, "oldrequires", requires)
188187
end

xmake/rules/c++/modules/config.lua

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,10 @@ function main(target)
6767
wprint("build.c++.modules.tryreuse.discriminate_on_defines is deprecated, please use build.c++.modules.reuse.strict")
6868
end
6969

70+
if target:has_tool("cxx", "clang_cl") then
71+
target:set("policy", "build.c++.modules.two_phases", false)
72+
end
73+
7074
-- if containes modules, enable objectfiles output of c++.build.modules.builder
7175
local rule = target:rule("c++.build.modules.builder")
7276
rule = rule:clone()

0 commit comments

Comments
 (0)