summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2019-04-24 23:06:31 +0800
committerruki <[email protected]>2019-04-24 12:39:06 +0800
commit5e455f67fea653860213ef5a848daf82f36d0435 (patch)
tree6fd2394e3652356e62551949a7812370a25393dc
parent91470eed87a2def7f537a056145f86271a95224f (diff)
fix android targets
-rw-r--r--xmake/modules/package/tools/autoconf.lua63
-rw-r--r--xmake/platforms/android/load.lua2
2 files changed, 36 insertions, 29 deletions
diff --git a/xmake/modules/package/tools/autoconf.lua b/xmake/modules/package/tools/autoconf.lua
index bcaf4684a..852a2e628 100644
--- a/xmake/modules/package/tools/autoconf.lua
+++ b/xmake/modules/package/tools/autoconf.lua
@@ -23,32 +23,39 @@ import("core.project.config")
-- get configs
function _get_configs(package, configs)
+
+ -- add prefix
local configs = configs or {}
table.insert(configs, "--prefix=" .. package:installdir())
- if package:is_plat("iphoneos") then
- local hosts = { arm64 = "aarch64-apple-darwin",
- arm64e = "aarch64-apple-darwin",
- armv7 = "armv7-apple-darwin",
- armv7s = "armv7s-apple-darwin",
- i386 = "i386-apple-darwin",
- x86_64 = "x86_64-apple-darwin"}
- table.insert(configs, "--host=" .. (hosts[package:arch()] or "aarch64-apple-darwin"))
- elseif package:is_plat("android") then
- -- @see https://developer.android.com/ndk/guides/other_build_systems#autoconf
- local triples =
- {
- ["armv5te"] = "arm-linux-androideabi"
- , ["armv7-a"] = "armv7a-linux-androideabi"
- , ["arm64-v8a"] = "aarch64-linux-android"
- , i386 = "i686-linux-android"
- , x86_64 = "x86_64-linux-android"
- , mips = "mips-linux-android"
- , mips64 = "mips64-linux-android"
- }
- table.insert(configs, "--host=" .. (triples[package:arch()] or "armv7a-linux-androideabi"))
- elseif package:is_plat("cross") then
- else
- raise("autoconf: unknown platform(%s)!", package:plat())
+
+ -- add host for cross-complation
+ if not configs.host and not package:is_plat(os.host()) then
+ if package:is_plat("iphoneos") then
+ local hosts = { arm64 = "aarch64-apple-darwin",
+ arm64e = "aarch64-apple-darwin",
+ armv7 = "armv7-apple-darwin",
+ armv7s = "armv7s-apple-darwin",
+ i386 = "i386-apple-darwin",
+ x86_64 = "x86_64-apple-darwin"}
+ table.insert(configs, "--host=" .. (hosts[package:arch()] or "aarch64-apple-darwin"))
+ elseif package:is_plat("android") then
+ -- @see https://developer.android.com/ndk/guides/other_build_systems#autoconf
+ local triples =
+ {
+ ["armv5te"] = "arm-linux-androideabi"
+ , ["armv7-a"] = "arm-linux-androideabi"
+ , ["arm64-v8a"] = "aarch64-linux-android"
+ , i386 = "i686-linux-android"
+ , x86_64 = "x86_64-linux-android"
+ , mips = "mips-linux-android"
+ , mips64 = "mips64-linux-android"
+ }
+ table.insert(configs, "--host=" .. (triples[package:arch()] or "arm-linux-androideabi"))
+ elseif package:is_plat("cross") then
+ -- TODO
+ else
+ raise("autoconf: unknown platform(%s)!", package:plat())
+ end
end
return configs
end
@@ -147,12 +154,12 @@ function configure(package, configs)
local argv = {}
for name, value in pairs(_get_configs(package, configs)) do
value = tostring(value):trim()
- if type(name) == "number" then
- if value ~= "" then
+ if value ~= "" then
+ if type(name) == "number" then
table.insert(argv, value)
+ else
+ table.insert(argv, "--" .. name .. "=" .. value)
end
- else
- table.insert(argv, "--" .. name .. "=" .. value)
end
end
diff --git a/xmake/platforms/android/load.lua b/xmake/platforms/android/load.lua
index c4fcd1342..94212458c 100644
--- a/xmake/platforms/android/load.lua
+++ b/xmake/platforms/android/load.lua
@@ -122,7 +122,7 @@ function main(platform)
local triples =
{
["armv5te"] = "arm-linux-androideabi"
- , ["armv7-a"] = "armv7a-linux-androideabi"
+ , ["armv7-a"] = "arm-linux-androideabi"
, ["arm64-v8a"] = "aarch64-linux-android"
, i386 = "i686-linux-android"
, x86_64 = "x86_64-linux-android"