diff options
| author | ruki <[email protected]> | 2021-02-02 00:28:05 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2021-02-02 08:56:47 +0800 |
| commit | e0b610d9bd2e87828ac4fc5435aca1ff191fbb85 (patch) | |
| tree | 9241626d3b8c8a5be8c6fdc00186349eadc10d1d /xmake | |
| parent | 3fd3d534399ba5610434f947859587b4636591b1 (diff) | |
improve llvm toolchain
Diffstat (limited to 'xmake')
| -rw-r--r-- | xmake/actions/require/install.lua | 6 | ||||
| -rw-r--r-- | xmake/core/project/requireinfo.lua | 5 | ||||
| -rw-r--r-- | xmake/toolchains/llvm/check.lua | 14 |
3 files changed, 24 insertions, 1 deletions
diff --git a/xmake/actions/require/install.lua b/xmake/actions/require/install.lua index 90366b1b6..888f64978 100644 --- a/xmake/actions/require/install.lua +++ b/xmake/actions/require/install.lua @@ -73,6 +73,11 @@ function _register_required_package_libs(instance, requireinfo, is_deps) end end +-- register the base info of required package +function _register_required_package_base(instance, requireinfo) + requireinfo:set("__installdir", instance:installdir()) +end + -- register the required local package function _register_required_package(instance, requireinfo) @@ -85,6 +90,7 @@ function _register_required_package(instance, requireinfo) -- add packages info with all dependencies local envs = {} + _register_required_package_base(instance, requireinfo) _register_required_package_libs(instance, requireinfo) _register_required_package_envs(instance, envs) local orderdeps = instance:orderdeps() diff --git a/xmake/core/project/requireinfo.lua b/xmake/core/project/requireinfo.lua index 0c90e6fb5..218f346ff 100644 --- a/xmake/core/project/requireinfo.lua +++ b/xmake/core/project/requireinfo.lua @@ -108,6 +108,11 @@ function requireinfo:requirestr() return self:get("__requirestr") end +-- get the install directory +function requireinfo:installdir() + return self:get("__installdir") +end + -- get the extra info from the given name function requireinfo:extra(name) local extrainfo = self:extrainfo() diff --git a/xmake/toolchains/llvm/check.lua b/xmake/toolchains/llvm/check.lua index eaebf8eaa..f22d65f5e 100644 --- a/xmake/toolchains/llvm/check.lua +++ b/xmake/toolchains/llvm/check.lua @@ -62,8 +62,20 @@ function main(toolchain) end end - -- find cross toolchain + -- find cross toolchain from external envirnoment local cross_toolchain = find_cross_toolchain(sdkdir, {bindir = bindir}) + if not cross_toolchain then + -- find it from packages + for _, package in ipairs(toolchain:packages()) do + local installdir = package:installdir() + if installdir and os.isdir(installdir) then + cross_toolchain = find_cross_toolchain(installdir) + if cross_toolchain then + break + end + end + end + end if cross_toolchain then config.set("cross", cross_toolchain.cross, {readonly = true, force = true}) config.set("bin", cross_toolchain.bindir, {readonly = true, force = true}) |
