summaryrefslogtreecommitdiff
path: root/xmake/rules/c++/modules/modules_support
diff options
context:
space:
mode:
authorruki <[email protected]>2025-03-21 23:03:29 +0800
committerruki <[email protected]>2025-04-08 15:31:54 +0800
commit741da62196bcb64c88e386f1a769462211c63b4e (patch)
treec381546976a29ac9a642a18e241bc7de9874d7a3 /xmake/rules/c++/modules/modules_support
parent7e949212c4aff661f6dfd6234af7fd021a8568e3 (diff)
add queue and improve graph
Diffstat (limited to 'xmake/rules/c++/modules/modules_support')
-rw-r--r--xmake/rules/c++/modules/modules_support/dependency_scanner.lua3
1 files changed, 2 insertions, 1 deletions
diff --git a/xmake/rules/c++/modules/modules_support/dependency_scanner.lua b/xmake/rules/c++/modules/modules_support/dependency_scanner.lua
index df8c85441..94c14e60d 100644
--- a/xmake/rules/c++/modules/modules_support/dependency_scanner.lua
+++ b/xmake/rules/c++/modules/modules_support/dependency_scanner.lua
@@ -415,7 +415,7 @@ function sort_modules_by_dependencies(target, objectfiles, modules, opt)
for _, e in ipairs(edges) do
dag:add_edge(e[1], e[2])
end
- local objectfiles_sorted, has_cycle = dag:topological_sort({reverse = true})
+ local objectfiles_sorted, has_cycle = dag:topo_sort()
if has_cycle then
local cycle = dag:find_cycle()
if cycle then
@@ -429,6 +429,7 @@ function sort_modules_by_dependencies(target, objectfiles, modules, opt)
raise("circular modules dependency detected!\n%s", table.concat(names, "\n -> import "))
end
end
+ objectfiles_sorted = table.reverse(objectfiles_sorted)
local objectfiles_sorted_set = hashset.from(objectfiles_sorted)
for _, objectfile in ipairs(objectfiles) do
if not objectfiles_sorted_set:has(objectfile) then