summaryrefslogtreecommitdiff
path: root/xmake/rules/c++/modules/modules_support
diff options
context:
space:
mode:
authorArthur LAURENT <[email protected]>2024-10-07 16:37:37 +0200
committerArthur LAURENT <[email protected]>2024-10-08 13:47:46 +0200
commitd8b4280e5b43bbeeed8c4ddf67ad1dd08fbc70a5 (patch)
treefbfc9471499f672f64fa50fa385df735bd9fba9f /xmake/rules/c++/modules/modules_support
parentfb842c9e4208fcba3052239088a9299759761d9e (diff)
don't convert hashset to table and some cleanup for module builders
Diffstat (limited to 'xmake/rules/c++/modules/modules_support')
-rw-r--r--xmake/rules/c++/modules/modules_support/builder.lua13
-rw-r--r--xmake/rules/c++/modules/modules_support/clang/builder.lua2
-rw-r--r--xmake/rules/c++/modules/modules_support/msvc/builder.lua3
3 files changed, 7 insertions, 11 deletions
diff --git a/xmake/rules/c++/modules/modules_support/builder.lua b/xmake/rules/c++/modules/modules_support/builder.lua
index 9133bad60..7e51ad6f8 100644
--- a/xmake/rules/c++/modules/modules_support/builder.lua
+++ b/xmake/rules/c++/modules/modules_support/builder.lua
@@ -465,21 +465,18 @@ end
function is_dependencies_changed(target, module)
local cachekey = target:name() .. module.name
- local requires
+ local requires = hashset.new()
for required, _ in table.orderpairs(module.requires) do
- requires = requires or hashset.new()
requires:insert(required)
end
local oldrequires = compiler_support.memcache():get2(cachekey, "oldrequires")
-
local changed = false
- if oldrequires and requires then
- oldrequires = hashset.from(oldrequires)
- if oldrequires:size() ~= requires:size() then
+ if oldrequires then
+ if oldrequires ~= requires:size() then
requires_changed = true
else
- for required in requires:keys() do
+ for _, required in requires:keys() do
if not oldrequires:has(required) then
requires_changed = true
break
@@ -488,5 +485,5 @@ function is_dependencies_changed(target, module)
end
end
- return requires:to_array(), changed
+ return requires, changed
end
diff --git a/xmake/rules/c++/modules/modules_support/clang/builder.lua b/xmake/rules/c++/modules/modules_support/clang/builder.lua
index 2ad97a943..ad30aa158 100644
--- a/xmake/rules/c++/modules/modules_support/clang/builder.lua
+++ b/xmake/rules/c++/modules/modules_support/clang/builder.lua
@@ -126,7 +126,7 @@ function _get_requiresflags(target, module, opt)
local requiresflags = compiler_support.memcache():get2(cachekey, "requiresflags")
if not requiresflags or requires_changed then
requiresflags = {}
- for required, _ in table.orderpairs(module.requires) do
+ for required, _ in requires:orderkeys() do
local dep_module = get_from_target_mapper(target, required)
assert(dep_module, "module dependency %s required for %s not found", required, name)
diff --git a/xmake/rules/c++/modules/modules_support/msvc/builder.lua b/xmake/rules/c++/modules/modules_support/msvc/builder.lua
index de4f97bd4..bb7090cb4 100644
--- a/xmake/rules/c++/modules/modules_support/msvc/builder.lua
+++ b/xmake/rules/c++/modules/modules_support/msvc/builder.lua
@@ -173,9 +173,8 @@ function _get_requiresflags(target, module, opt)
local requiresflags = compiler_support.memcache():get2(cachekey, "requiresflags")
if not requiresflags or requires_changed then
local deps_flags = {}
- for required, _ in table.orderpairs(module.requires) do
+ for required, _ in requires:orderkeys() do
local dep_module = get_from_target_mapper(target, required)
-
assert(dep_module, "module dependency %s required for %s not found <%s>", required, name, target:name())
local mapflag