diff options
| author | ruki <[email protected]> | 2019-04-24 23:06:31 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2019-04-24 12:39:06 +0800 |
| commit | 5e455f67fea653860213ef5a848daf82f36d0435 (patch) | |
| tree | 6fd2394e3652356e62551949a7812370a25393dc | |
| parent | 91470eed87a2def7f537a056145f86271a95224f (diff) | |
fix android targets
| -rw-r--r-- | xmake/modules/package/tools/autoconf.lua | 63 | ||||
| -rw-r--r-- | xmake/platforms/android/load.lua | 2 |
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" |
