summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2021-03-18 22:54:20 +0800
committerruki <[email protected]>2021-03-18 22:54:20 +0800
commit5f4104bb7c5b188965f30d401762162294764b73 (patch)
treefe1886f80091e2f5772d54fe76612343113b4a34
parent60932027d85e9cb499132351b5f080f8d2f572a8 (diff)
support ndk package
-rw-r--r--xmake/modules/private/action/require/impl/install_packages.lua12
-rw-r--r--xmake/modules/private/action/require/impl/package.lua2
-rw-r--r--xmake/toolchains/ndk/check.lua12
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)