summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2019-05-10 22:55:10 +0800
committerruki <[email protected]>2019-05-10 11:31:03 +0800
commit11a61399f708e73df2c47b31cf4fd4d3f16495bc (patch)
treea52dbe031ef11b853ac35ba0c703ec1c7deeb526
parent13e02d0fa943dfd9ea3a0f4c2184a3df46058a20 (diff)
improve on_xxx script
-rw-r--r--CHANGELOG.md2
-rw-r--r--xmake/core/package/package.lua6
-rw-r--r--xmake/core/project/target.lua6
3 files changed, 12 insertions, 2 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 27dbee0c6..0ceec0665 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -13,6 +13,7 @@
### Changes
* Improve remote package manager
+* Improve `target:on_xxx` scripts to support to match `android|armv7-a@macosx,linux|x86_64` pattern
### Bugs fixed
@@ -589,6 +590,7 @@
### 改进
* 改进远程依赖包管理,丰富包仓库
+* 改进`target:on_xxx`自定义脚本,去支持匹配`android|armv7-a@macosx,linux|x86_64`模式
### Bugs修复
diff --git a/xmake/core/package/package.lua b/xmake/core/package/package.lua
index 799776582..301a4ea94 100644
--- a/xmake/core/package/package.lua
+++ b/xmake/core/package/package.lua
@@ -673,9 +673,13 @@ function _instance:script(name, generic)
-- match pattern
--
+ -- `@linux`
+ -- `@linux|x86_64`
-- `@macosx,linux`
-- `android@macosx,linux`
-- `android|armv7-a@macosx,linux`
+ -- `android|armv7-a@macosx,linux|x86_64`
+ -- `android|armv7-a@linux|x86_64`
--
for _pattern, _script in pairs(script) do
local hosts = {}
@@ -687,7 +691,7 @@ function _instance:script(name, generic)
end
return ""
end)
- if not _pattern:startswith("__") and (not hosts_spec or hosts[os.host()])
+ if not _pattern:startswith("__") and (not hosts_spec or hosts[os.host() .. '|' .. os.arch()] or hosts[os.host()])
and (_pattern:trim() == "" or (plat .. '|' .. arch):find('^' .. _pattern .. '$') or plat:find('^' .. _pattern .. '$')) then
result = _script
break
diff --git a/xmake/core/project/target.lua b/xmake/core/project/target.lua
index 86b86fe70..f4809f424 100644
--- a/xmake/core/project/target.lua
+++ b/xmake/core/project/target.lua
@@ -1338,9 +1338,13 @@ function _instance:script(name, generic)
-- match pattern
--
+ -- `@linux`
+ -- `@linux|x86_64`
-- `@macosx,linux`
-- `android@macosx,linux`
-- `android|armv7-a@macosx,linux`
+ -- `android|armv7-a@macosx,linux|x86_64`
+ -- `android|armv7-a@linux|x86_64`
--
for _pattern, _script in pairs(script) do
local hosts = {}
@@ -1352,7 +1356,7 @@ function _instance:script(name, generic)
end
return ""
end)
- if not _pattern:startswith("__") and (not hosts_spec or hosts[os.host()])
+ if not _pattern:startswith("__") and (not hosts_spec or hosts[os.host() .. '|' .. os.arch()] or hosts[os.host()])
and (_pattern:trim() == "" or (plat .. '|' .. arch):find('^' .. _pattern .. '$') or plat:find('^' .. _pattern .. '$')) then
result = _script
break