summaryrefslogtreecommitdiff
path: root/xmake/scripts/action/_package.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2015-06-26 11:35:29 +0800
committerruki <[email protected]>2015-06-26 11:35:29 +0800
commit37247cc86d31c6134deca9819f9ffe8cfe253797 (patch)
tree7787052bb60bfa86bab771513ef7015d9b7c8660 /xmake/scripts/action/_package.lua
parentcd530f704a361fecba459bc8e3dc27cb1c6522c8 (diff)
set package script to project
Diffstat (limited to 'xmake/scripts/action/_package.lua')
-rw-r--r--xmake/scripts/action/_package.lua42
1 files changed, 24 insertions, 18 deletions
diff --git a/xmake/scripts/action/_package.lua b/xmake/scripts/action/_package.lua
index fcaa658d6..590d071bc 100644
--- a/xmake/scripts/action/_package.lua
+++ b/xmake/scripts/action/_package.lua
@@ -118,16 +118,16 @@ function _package._makeconf(target_name, target)
if not arch then return false end
-- init configs for targets
- configs._TARGETS = configs._TARGETS or {}
- configs._TARGETS[target_name] = configs._TARGETS[target_name] or {}
- local configs_target = configs._TARGETS[target_name]
+ configs[target_name] = configs[target_name] or {}
+ local configs_target = configs[target_name]
- -- init configs for architecture
- configs_target[arch] = configs_target[arch] or {}
- local configs_arch = configs_target[arch]
+ -- init configs for kinds
+ configs_target[target.kind] = configs_target[target.kind] or {}
+ local configs_kind = configs_target[target.kind]
- -- save the target kind
- configs_arch.kind = target.kind
+ -- init configs for architecture
+ configs_kind[arch] = configs_kind[arch] or {}
+ local configs_arch = configs_kind[arch]
-- save the root directory
configs_arch.rootdir = rule.packagedir(target_name, arch)
@@ -147,6 +147,22 @@ function _package._makeconf(target_name, target)
-- save the header directory
configs_arch.headerdir = target.headerdir
+ -- save the package script
+ configs_arch.pkgscript = target.pkgscript
+ if type(configs_arch.pkgscript) == "string" and os.isfile(configs_arch.pkgscript) then
+ local script, errors = loadfile(configs_arch.pkgscript)
+ if script then
+ configs_arch.pkgscript = script()
+ else
+ utils.error(errors)
+ return false
+ end
+ end
+ if target.pkgscript and type(configs_arch.pkgscript) ~= "function" then
+ utils.error("invalid package script!")
+ return false
+ end
+
-- ok
return true
end
@@ -269,16 +285,6 @@ function _package.done()
return false
end
- -- save platform
- configs.plat = config.get("plat")
- assert(configs.plat)
-
- -- save build directory
- configs.buildir = config.get("buildir")
-
- -- save project directory
- configs.projectdir = xmake._PROJECT_DIR
-
-- done package
if not package.done(configs) then
-- errors