summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2024-09-01 08:16:44 +0800
committerGitHub <[email protected]>2024-09-01 08:16:44 +0800
commit0d2bd1503c4cc72f67a4a5a79606169609709c10 (patch)
treea2c2f67d33903088eee44806de1ff0ce4830e720
parent47e72b2a8a6b97ee8362f81c3cacb9b1d4f54027 (diff)
parenta81b8dcf3aee2e2710aeb56a169496788afb1e00 (diff)
Merge pull request #5548 from Redbeanw44602/dev
Add missing Linux platform triples in autoconf tool.
-rw-r--r--xmake/modules/package/tools/autoconf.lua30
-rw-r--r--xmake/modules/private/action/trybuild/autoconf.lua30
2 files changed, 34 insertions, 26 deletions
diff --git a/xmake/modules/package/tools/autoconf.lua b/xmake/modules/package/tools/autoconf.lua
index b84ac87e4..af50784fb 100644
--- a/xmake/modules/package/tools/autoconf.lua
+++ b/xmake/modules/package/tools/autoconf.lua
@@ -77,17 +77,6 @@ function _get_msvc_runenvs(package)
return os.joinenvs(_get_msvc(package):runenvs())
end
--- is cross compilation?
-function _is_cross_compilation(package)
- if not package:is_plat(os.subhost()) then
- return true
- end
- if package:is_plat("macosx") and not package:is_arch(os.subarch()) then
- return true
- end
- return false
-end
-
-- get memcache
function _memcache()
return memcache.cache("package.tools.autoconf")
@@ -115,7 +104,7 @@ function _get_configs(package, configs)
table.insert(configs, "--prefix=" .. _translate_paths(package:installdir()))
-- add host for cross-complation
- if not configs.host and _is_cross_compilation(package) then
+ if not configs.host and package:is_cross() then
if package:is_plat("iphoneos", "macosx") then
local triples =
{
@@ -150,6 +139,21 @@ function _get_configs(package, configs)
x86_64 = "x86_64-w64-mingw32"
}
table.insert(configs, "--host=" .. (triples[package:arch()] or triples.i386))
+ elseif package:is_plat("linux") then
+ local triples =
+ {
+ ["arm64-v8a"] = "aarch64-linux-gnu",
+ arm64 = "aarch64-linux-gnu",
+ i386 = "i686-linux-gnu",
+ x86_64 = "x86_64-linux-gnu",
+ armv7 = "arm-linux-gnueabihf",
+ mips = "mips-linux-gnu",
+ mips64 = "mips64-linux-gnu",
+ mipsel = "mipsel-linux-gnu",
+ mips64el = "mips64el-linux-gnu",
+ loong64 = "loongarch64-linux-gnu"
+ }
+ table.insert(configs, "--host=" .. (triples[package:arch()] or triples.i386))
elseif package:is_plat("cross") and package:targetos() then
local host = package:arch()
if package:is_arch("arm64") then
@@ -240,7 +244,7 @@ function buildenvs(package, opt)
local envs = {}
local cross = false
local cflags, cxxflags, cppflags, asflags, ldflags, shflags, arflags
- if not _is_cross_compilation(package) and not package:config("toolchains") then
+ if not package:is_cross() and not package:config("toolchains") then
cppflags = {}
cflags = table.join(table.wrap(package:config("cxflags")), package:config("cflags"))
cxxflags = table.join(table.wrap(package:config("cxflags")), package:config("cxxflags"))
diff --git a/xmake/modules/private/action/trybuild/autoconf.lua b/xmake/modules/private/action/trybuild/autoconf.lua
index 9b5ac71f8..d2f968018 100644
--- a/xmake/modules/private/action/trybuild/autoconf.lua
+++ b/xmake/modules/private/action/trybuild/autoconf.lua
@@ -68,7 +68,7 @@ end
function _get_buildenvs()
local envs = {}
local cross = false
- if not _is_cross_compilation() then
+ if not is_cross() then
local cflags = table.join(table.wrap(_get_buildenv("cxflags")), _get_buildenv("cflags"))
local cxxflags = table.join(table.wrap(_get_buildenv("cxflags")), _get_buildenv("cxxflags"))
local asflags = table.copy(table.wrap(_get_buildenv("asflags")))
@@ -174,17 +174,6 @@ function _get_buildenvs()
return envs
end
--- is cross compilation?
-function _is_cross_compilation()
- if not is_plat(os.subhost()) then
- return true
- end
- if is_plat("macosx") and not is_arch(os.subarch()) then
- return true
- end
- return false
-end
-
-- get configs
function _get_configs(artifacts_dir)
@@ -201,7 +190,7 @@ function _get_configs(artifacts_dir)
end
-- add host for cross-complation
- if _is_cross_compilation() then
+ if is_cross() then
if is_plat("iphoneos", "macosx") then
local triples =
{
@@ -236,6 +225,21 @@ function _get_configs(artifacts_dir)
x86_64 = "x86_64-w64-mingw32"
}
table.insert(configs, "--host=" .. (triples[config.arch()] or triples.i386))
+ elseif is_plat("linux") then
+ local triples =
+ {
+ ["arm64-v8a"] = "aarch64-linux-gnu",
+ arm64 = "aarch64-linux-gnu",
+ i386 = "i686-linux-gnu",
+ x86_64 = "x86_64-linux-gnu",
+ armv7 = "arm-linux-gnueabihf",
+ mips = "mips-linux-gnu",
+ mips64 = "mips64-linux-gnu",
+ mipsel = "mipsel-linux-gnu",
+ mips64el = "mips64el-linux-gnu",
+ loong64 = "loongarch64-linux-gnu"
+ }
+ table.insert(configs, "--host=" .. (triples[config.arch()] or triples.i386))
elseif is_plat("cross") then
local host = config.arch()
if is_arch("arm64") then