diff options
| author | Arthur LAURENT <[email protected]> | 2024-07-21 16:48:40 +0200 |
|---|---|---|
| committer | Arthur LAURENT <[email protected]> | 2024-07-21 16:48:40 +0200 |
| commit | e5ba7a1d14ef6f8afa2491b4dc0131169aaa4a76 (patch) | |
| tree | ef2bdc37b3522e626aefaa296f60493eba81a9a7 /xmake/rules/c++/modules/modules_support | |
| parent | 2412ed94e70b00b0c2f3bd8c4553828efd458b1b (diff) | |
add a policy to disable module culling
Diffstat (limited to 'xmake/rules/c++/modules/modules_support')
| -rw-r--r-- | xmake/rules/c++/modules/modules_support/dependency_scanner.lua | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/xmake/rules/c++/modules/modules_support/dependency_scanner.lua b/xmake/rules/c++/modules/modules_support/dependency_scanner.lua index d59a4436a..cef55fbd5 100644 --- a/xmake/rules/c++/modules/modules_support/dependency_scanner.lua +++ b/xmake/rules/c++/modules/modules_support/dependency_scanner.lua @@ -422,11 +422,15 @@ function sort_modules_by_dependencies(target, objectfiles, modules) local objectfiles_sorted_set = hashset.from(objectfiles_sorted) for _, objectfile in ipairs(objectfiles) do if not objectfiles_sorted_set:has(objectfile) then - -- cull unreferenced non-public named module but add non-module files and implementation modules - local _, provide, cppfile = compiler_support.get_provided_module(modules[objectfile]) - local fileconfig = target:fileconfig(cppfile) - local public = fileconfig and fileconfig.public - if not provide or public then + if target:policy("build.c++.modules.culling") then + -- cull unreferenced non-public named module but add non-module files and implementation modules + local _, provide, cppfile = compiler_support.get_provided_module(modules[objectfile]) + local fileconfig = target:fileconfig(cppfile) + local public = fileconfig and fileconfig.public + if not provide or public then + table.insert(result, objectfile) + end + else table.insert(result, objectfile) end end |
