summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2024-04-18 09:39:36 +0800
committerGitHub <[email protected]>2024-04-18 09:39:36 +0800
commit78627bc254c1c9c798f802fa15ddda4cff37da87 (patch)
tree13b9958aae59204afed40dece1f306fb62c25e48
parent5f33d0c880336729839ba7737fecfc73e9eb7207 (diff)
parentdcef63890db9799728b6f9dd979c45af6dfced36 (diff)
Merge pull request #4987 from star-hengxing/meson
Imrpove meson with clang toolchain
-rw-r--r--xmake/modules/package/tools/meson.lua18
1 files changed, 16 insertions, 2 deletions
diff --git a/xmake/modules/package/tools/meson.lua b/xmake/modules/package/tools/meson.lua
index d76c36784..85e2e6587 100644
--- a/xmake/modules/package/tools/meson.lua
+++ b/xmake/modules/package/tools/meson.lua
@@ -211,7 +211,21 @@ function _get_configs_file(package, opt)
file:print("c=['%s']", executable_path(cc))
end
local cxx = package:build_getenv("cxx")
- if cxx then
+ -- https://github.com/xmake-io/xmake/discussions/4979
+ if cxx and package:has_tool("cxx", "clang", "gcc") then
+ local dir = path.directory(cxx)
+ local name = path.filename(cxx)
+ name = name:gsub("clang$", "clang++")
+ name = name:gsub("clang%-", "clang++-") -- clang-xx
+ name = name:gsub("clang%.", "clang++.") -- clang.exe
+ name = name:gsub("gcc$", "g++")
+ name = name:gsub("gcc%-", "g++-")
+ name = name:gsub("gcc%.", "g++.")
+ if dir and dir ~= "." then
+ cxx = path.join(dir, name)
+ else
+ cxx = name
+ end
file:print("cpp=['%s']", executable_path(cxx))
end
local ld = package:build_getenv("ld")
@@ -295,7 +309,7 @@ function _get_configs(package, configs, opt)
-- add prefix
configs = configs or {}
- table.insert(configs, "--prefix=" .. package:installdir())
+ table.insert(configs, "--prefix=" .. (opt.prefix or package:installdir()))
table.insert(configs, "--libdir=lib")
-- set build type