From 49e62abc9c71c0b3af8cb19f3771f2ab3fd30224 Mon Sep 17 00:00:00 2001 From: ruki Date: Sat, 5 Jul 2025 22:14:47 +0800 Subject: fix project generator for c++modules --- xmake/rules/c++/modules/builder.lua | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/xmake/rules/c++/modules/builder.lua b/xmake/rules/c++/modules/builder.lua index 2f72d2fd2..b84d5d23e 100644 --- a/xmake/rules/c++/modules/builder.lua +++ b/xmake/rules/c++/modules/builder.lua @@ -132,9 +132,29 @@ function _get_saved_jobdeps_for(buildfilejob) return jobdeps end +function _in_project_generator() + local memcache = support.memcache() + local in_project_generator = memcache:get("in_project_generator") + if in_project_generator == nil then + local val = os.getenv("XMAKE_IN_PROJECT_GENERATOR") + if val and val ~= "" then + in_project_generator = true + end + in_project_generator = in_project_generator or false + memcache:set("in_project_generator", in_project_generator) + end + return in_project_generator +end + -- should we build this module or headerunit ? function should_build(target, module) + -- if we are generating project files, we always need to generate all build commands. + -- @see https://github.com/xmake-io/xmake/issues/6600 + if _in_project_generator() then + return true + end + profiler.enter(target:fullname(), "c++ modules", "builder", "check if " .. (module.name or module.sourcefile) .. " should be rebuilt") local memcache = support.memcache() local _should_build = memcache:get2(target:fullname(), "should_build_" .. module.sourcefile) -- cgit v1.3.1