From 3b582fd5867290bff60163b057cfa5a2bbe27159 Mon Sep 17 00:00:00 2001 From: Arthur Laurent <arthur.laurent4@gmail.com> Date: Sun, 25 Feb 2024 06:33:53 +0100 Subject: [PATCH] add support for libc++ runtimes for boost (#3311) * add support for libc++ runtimes for boost * apply PR suggestions * Update xmake.lua --------- Co-authored-by: ruki <waruqi@gmail.com> --- packages/b/boost/xmake.lua | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/packages/b/boost/xmake.lua b/packages/b/boost/xmake.lua index 2fd746966..eb2d3ed5d 100644 --- a/packages/b/boost/xmake.lua +++ b/packages/b/boost/xmake.lua @@ -200,6 +200,10 @@ package("boost") "--without-icu" } + if package:has_tool("cxx", "clang", "clangxx") then + table.insert(bootstrap_argv, "--with-toolset=clang") + end + if package:is_plat("windows") then -- for bootstrap.bat, all other arguments are useless bootstrap_argv = { "msvc" } @@ -265,6 +269,7 @@ package("boost") table.insert(argv, "address-model=32") end local cxxflags + local linkflags if package:is_plat("windows") then local vs_runtime = package:config("vs_runtime") if package:config("shared") then @@ -302,9 +307,19 @@ package("boost") cxxflags = cxxflags .. " -fPIC" end end + if package.has_runtime and package:has_runtime("c++_shared", "c++_static") then + cxxflags = (cxxflags or "") .. " -stdlib=libc++" + linkflags = (linkflags or "") .. " -stdlib=libc++" + if package:has_runtime("c++_static") then + linkflags = linkflags .. " -static-libstdc++" + end + end if cxxflags then table.insert(argv, "cxxflags=" .. cxxflags) end + if linkflags then + table.insert(argv, "linkflags=" .. linkflags) + end for _, libname in ipairs(libnames) do if package:config("all") or package:config(libname) then table.insert(argv, "--with-" .. libname)