summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2019-03-19 00:44:46 +0800
committerruki <[email protected]>2019-03-18 22:28:38 +0800
commit70b37940eaab302645df7fed7f3eaa282b4ac709 (patch)
tree3d40993ecc2059fef6550e3a425ae0aca3ee078a
parentbac9ae1a507d43242d0feed6dcb44b86dda6ee0b (diff)
support binary and libs for package
-rw-r--r--xmake/actions/require/install.lua57
-rw-r--r--xmake/core/package/package.lua2
2 files changed, 30 insertions, 29 deletions
diff --git a/xmake/actions/require/install.lua b/xmake/actions/require/install.lua
index 5e692f5de..65c624d99 100644
--- a/xmake/actions/require/install.lua
+++ b/xmake/actions/require/install.lua
@@ -41,39 +41,40 @@ function _register_required_package(instance, requireinfo)
-- clear require info first
requireinfo:clear()
- -- add this packages info
- if instance:kind() == "binary" then
- -- add path environments
- local envs = {}
- local installdir = instance:installdir()
- for name, values in pairs(instance:envs()) do
- if name == "PATH" then
- for _, value in ipairs(values) do
- envs[name] = envs[name] or {}
- if path.is_absolute(value) then
- table.insert(envs[name], value)
- else
- table.insert(envs[name], path.join(installdir, value))
- end
- end
- else
- envs[name] = values
+ -- add include and links info
+ requireinfo:add(instance:fetch())
+ local orderdeps = instance:orderdeps()
+ if orderdeps then
+ local total = #orderdeps
+ for idx, _ in ipairs(orderdeps) do
+ local dep = orderdeps[total + 1 - idx]
+ if dep then
+ requireinfo:add((dep:fetch()))
end
end
- requireinfo:add({envs = envs})
- else
- -- add include and links info
- requireinfo:add(instance:fetch())
- local orderdeps = instance:orderdeps()
- if orderdeps then
- local total = #orderdeps
- for idx, _ in ipairs(orderdeps) do
- local dep = orderdeps[total + 1 - idx]
- if dep then
- requireinfo:add((dep:fetch()))
+ end
+
+ -- add environments
+ local envs = {}
+ local hasenvs = false
+ local installdir = instance:installdir()
+ for name, values in pairs(instance:envs()) do
+ if name == "PATH" then
+ for _, value in ipairs(values) do
+ envs[name] = envs[name] or {}
+ if path.is_absolute(value) then
+ table.insert(envs[name], value)
+ else
+ table.insert(envs[name], path.join(installdir, value))
end
end
+ else
+ envs[name] = values
end
+ hasenvs = true
+ end
+ if hasenvs then
+ requireinfo:add({envs = envs})
end
-- save this package version
diff --git a/xmake/core/package/package.lua b/xmake/core/package/package.lua
index baa8319b1..0a5038ea0 100644
--- a/xmake/core/package/package.lua
+++ b/xmake/core/package/package.lua
@@ -319,7 +319,7 @@ function _instance:envs()
local envs = self._ENVS
if not envs then
envs = {}
- if self:kind() == "binary" then
+ if self:plat() == os.host() and os.isdir(path.join(self:installdir(), "bin")) then
envs.PATH = {"bin"}
end
self._ENVS = envs