summaryrefslogtreecommitdiff
path: root/xmake/rules/c++/modules/builder.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2025-07-05 22:14:47 +0800
committerruki <[email protected]>2025-07-05 22:14:47 +0800
commit49e62abc9c71c0b3af8cb19f3771f2ab3fd30224 (patch)
tree0e2b821a12e3404fa414f9e17105f29b6e5446dd /xmake/rules/c++/modules/builder.lua
parent9712c4470d10bfef0fb327072abf7e9267d03058 (diff)
fix project generator for c++modules
Diffstat (limited to 'xmake/rules/c++/modules/builder.lua')
-rw-r--r--xmake/rules/c++/modules/builder.lua20
1 files changed, 20 insertions, 0 deletions
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)