diff options
| author | ruki <[email protected]> | 2019-03-19 00:44:46 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2019-03-18 22:28:38 +0800 |
| commit | 70b37940eaab302645df7fed7f3eaa282b4ac709 (patch) | |
| tree | 3d40993ecc2059fef6550e3a425ae0aca3ee078a | |
| parent | bac9ae1a507d43242d0feed6dcb44b86dda6ee0b (diff) | |
support binary and libs for package
| -rw-r--r-- | xmake/actions/require/install.lua | 57 | ||||
| -rw-r--r-- | xmake/core/package/package.lua | 2 |
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 |
