diff options
| author | ruki <[email protected]> | 2021-09-14 00:46:22 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2021-09-14 00:46:22 +0800 |
| commit | 8c8030ba48cda0c12ed7934b6dd4ffff5b191a33 (patch) | |
| tree | e08d02ca06b18d2deb329d11b4d14878837ddec0 /xmake | |
| parent | 7b931b248bcb5328b993637b6ebda3e9fa7c25ff (diff) | |
add after_load for target
Diffstat (limited to 'xmake')
| -rw-r--r-- | xmake/core/project/target.lua | 19 |
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" |
