diff options
| author | ruki <[email protected]> | 2024-04-18 09:39:36 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2024-04-18 09:39:36 +0800 |
| commit | 78627bc254c1c9c798f802fa15ddda4cff37da87 (patch) | |
| tree | 13b9958aae59204afed40dece1f306fb62c25e48 | |
| parent | 5f33d0c880336729839ba7737fecfc73e9eb7207 (diff) | |
| parent | dcef63890db9799728b6f9dd979c45af6dfced36 (diff) | |
Merge pull request #4987 from star-hengxing/meson
Imrpove meson with clang toolchain
| -rw-r--r-- | xmake/modules/package/tools/meson.lua | 18 |
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 |
