diff options
| author | ruki <[email protected]> | 2021-03-18 22:54:20 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2021-03-18 22:54:20 +0800 |
| commit | 5f4104bb7c5b188965f30d401762162294764b73 (patch) | |
| tree | fe1886f80091e2f5772d54fe76612343113b4a34 | |
| parent | 60932027d85e9cb499132351b5f080f8d2f572a8 (diff) | |
support ndk package
| -rw-r--r-- | xmake/modules/private/action/require/impl/install_packages.lua | 12 | ||||
| -rw-r--r-- | xmake/modules/private/action/require/impl/package.lua | 2 | ||||
| -rw-r--r-- | xmake/toolchains/ndk/check.lua | 12 |
3 files changed, 18 insertions, 8 deletions
diff --git a/xmake/modules/private/action/require/impl/install_packages.lua b/xmake/modules/private/action/require/impl/install_packages.lua index fbedc2bc9..8757de282 100644 --- a/xmake/modules/private/action/require/impl/install_packages.lua +++ b/xmake/modules/private/action/require/impl/install_packages.lua @@ -392,15 +392,13 @@ function _get_package_installdeps(packages) end for _, instance in ipairs(packages) do local deps = {} - if instance:deps() then - deps = table.copy(instance:deps()) + if instance:orderdeps() then + deps = table.copy(instance:orderdeps()) end -- patch toolchain/packages to installdeps, because we need install toolchain package first - if instance:is_toplevel() then - for _, toolchain in ipairs(instance:toolchains()) do - for _, packagename in ipairs(toolchain:config("packages")) do - deps[packagename] = packagesmap[packagename] - end + for _, toolchain in ipairs(instance:toolchains()) do + for _, packagename in ipairs(toolchain:config("packages")) do + table.insert(deps, packagesmap[packagename]) end end installdeps[tostring(instance)] = deps diff --git a/xmake/modules/private/action/require/impl/package.lua b/xmake/modules/private/action/require/impl/package.lua index dc6720eb5..091984643 100644 --- a/xmake/modules/private/action/require/impl/package.lua +++ b/xmake/modules/private/action/require/impl/package.lua @@ -340,7 +340,7 @@ end -- init requireinfo function _init_requireinfo(requireinfo, package, opt) -- pass root toolchains to top library package - if opt.is_toplevel and package:is_plat("cross") and package:is_library() then + if opt.is_toplevel and package:is_cross() and package:is_library() then requireinfo.configs = requireinfo.configs or {} requireinfo.configs.toolchains = requireinfo.configs.toolchains or project.get("target.toolchains") or get_config("toolchain") end diff --git a/xmake/toolchains/ndk/check.lua b/xmake/toolchains/ndk/check.lua index fe8183277..583e6d591 100644 --- a/xmake/toolchains/ndk/check.lua +++ b/xmake/toolchains/ndk/check.lua @@ -26,6 +26,18 @@ import("detect.sdks.find_android_sdk") -- check the ndk toolchain function _check_ndk(toolchain) local ndk = find_ndk(toolchain:config("ndk") or config.get("ndk"), {force = true, verbose = true}) + if not ndk then + -- find it from packages + for _, package in ipairs(toolchain:packages()) do + local installdir = package:installdir() + if installdir and os.isdir(installdir) then + ndk = find_ndk(installdir, {force = true, verbose = true}) + if ndk then + break + end + end + end + end if ndk then toolchain:config_set("ndk", ndk.sdkdir) toolchain:config_set("bindir", ndk.bindir) |
