summaryrefslogtreecommitdiff
path: root/xmake/actions
diff options
context:
space:
mode:
authorruki <[email protected]>2018-04-12 00:49:03 +0800
committerruki <[email protected]>2018-04-11 22:54:23 +0800
commit67bfa73b2ae4ddfa3f5c001685bdb063a0454ec1 (patch)
treee9018f32a1c66073aff796ffc48a010839699929 /xmake/actions
parent6d36e632a581a487f275cd77cf72c52dd67eedef (diff)
add orderules and on_load
Diffstat (limited to 'xmake/actions')
-rw-r--r--xmake/actions/build/kinds/object.lua14
-rw-r--r--xmake/actions/require/package.lua12
2 files changed, 17 insertions, 9 deletions
diff --git a/xmake/actions/build/kinds/object.lua b/xmake/actions/build/kinds/object.lua
index 9f8c6ea47..14d30f5bb 100644
--- a/xmake/actions/build/kinds/object.lua
+++ b/xmake/actions/build/kinds/object.lua
@@ -304,14 +304,14 @@ function _build_files_with_rule(target, buildinfo, sourcebatch, jobs)
local ruleinst = project.rule(rulename) or rule.rule(rulename)
assert(ruleinst, "unknown rule: %s", rulename)
- -- build files?
- local build_files = ruleinst:script("build_files")
- if build_files then
- build_files(target, sourcebatch.sourcefiles)
+ -- on_build_files?
+ local on_build_files = ruleinst:script("build_files")
+ if on_build_files then
+ on_build_files(target, sourcebatch.sourcefiles)
else
-- get the build file script
- local build_file = ruleinst:script("build_file")
- assert(build_file, "rule(%s): on_build_file() script not found!", rulename)
+ local on_build_file = ruleinst:script("build_file")
+ assert(on_build_file, "rule(%s): on_build_file() script not found!", rulename)
-- run build jobs for each source file
local curdir = os.curdir()
@@ -334,7 +334,7 @@ function _build_files_with_rule(target, buildinfo, sourcebatch, jobs)
end
-- do build file
- build_file(target, sourcefile)
+ on_build_file(target, sourcefile)
end, #sourcebatch.sourcefiles, jobs)
end
diff --git a/xmake/actions/require/package.lua b/xmake/actions/require/package.lua
index 5446a7e93..e48ce37fc 100644
--- a/xmake/actions/require/package.lua
+++ b/xmake/actions/require/package.lua
@@ -245,12 +245,20 @@ function _search_package(name)
return packages
end
--- sort package deps
+-- sort package deps
+--
+-- .e.g
+--
+-- a.deps = b
+-- b.deps = c
+--
+-- orderdeps: c -> b -> a
+--
function _sort_packagedeps(package)
local orderdeps = {}
for _, dep in pairs(package:deps()) do
table.join2(orderdeps, _sort_packagedeps(dep))
- table.insert(orderdeps, dep)
+ table.insert(orderdeps, dep)
end
return orderdeps
end