summaryrefslogtreecommitdiff
path: root/xmake
diff options
context:
space:
mode:
authorruki <[email protected]>2021-09-14 00:46:22 +0800
committerruki <[email protected]>2021-09-14 00:46:22 +0800
commit8c8030ba48cda0c12ed7934b6dd4ffff5b191a33 (patch)
treee08d02ca06b18d2deb329d11b4d14878837ddec0 /xmake
parent7b931b248bcb5328b993637b6ebda3e9fa7c25ff (diff)
add after_load for target
Diffstat (limited to 'xmake')
-rw-r--r--xmake/core/project/target.lua19
1 files changed, 19 insertions, 0 deletions
diff --git a/xmake/core/project/target.lua b/xmake/core/project/target.lua
index 0ff4222fa..c7d2adc5f 100644
--- a/xmake/core/project/target.lua
+++ b/xmake/core/project/target.lua
@@ -133,6 +133,9 @@ function _instance:_load()
return false, errors
end
end
+
+ -- mark as loaded
+ self._LOADED = true
return true
end
@@ -142,6 +145,15 @@ function _instance:_load_after()
-- enter the environments of the target packages
local oldenvs = os.addenvs(self:pkgenvs())
+ -- do load for target
+ local after_load = self:script("load_after")
+ if after_load then
+ local ok, errors = sandbox.load(after_load, self)
+ if not ok then
+ return false, errors
+ end
+ end
+
-- do after_load with target rules
local ok, errors = self:_load_rules("after")
if not ok then
@@ -608,11 +620,17 @@ end
-- get target deps
function _instance:deps()
+ if not self._LOADED then
+ os.raise("please call target:deps() or target:dep() in after_load()!")
+ end
return self._DEPS
end
-- get target ordered deps
function _instance:orderdeps()
+ if not self._LOADED then
+ os.raise("please call target:orderdeps() in after_load()!")
+ end
return self._ORDERDEPS
end
@@ -2003,6 +2021,7 @@ function target.apis()
, "target.before_uninstall"
-- target.after_xxx
, "target.after_run"
+ , "target.after_load"
, "target.after_link"
, "target.after_build"
, "target.after_build_file"