|
@@ -1,5 +1,4 @@
|
|
|
package("boost")
|
|
|
-
|
|
|
set_homepage("https://www.boost.org/")
|
|
|
set_description("Collection of portable C++ source libraries.")
|
|
|
set_license("BSL-1.0")
|
|
@@ -81,7 +80,7 @@ package("boost")
|
|
|
end
|
|
|
|
|
|
on_load(function (package)
|
|
|
- function get_linkname(package, libname)
|
|
|
+ local function get_linkname(package, libname)
|
|
|
local linkname
|
|
|
if package:is_plat("windows") then
|
|
|
linkname = (package:config("shared") and "boost_" or "libboost_") .. libname
|
|
@@ -100,11 +99,11 @@ package("boost")
|
|
|
if package:debug() then
|
|
|
linkname = linkname .. "-gd"
|
|
|
end
|
|
|
+ elseif package:config("asan") or vs_runtime == "MTd" then
|
|
|
+ linkname = linkname .. "-sgd"
|
|
|
elseif vs_runtime == "MT" then
|
|
|
linkname = linkname .. "-s"
|
|
|
- elseif vs_runtime == "MTd" then
|
|
|
- linkname = linkname .. "-sgd"
|
|
|
- elseif vs_runtime == "MDd" then
|
|
|
+ elseif package:config("asan") or vs_runtime == "MDd" then
|
|
|
linkname = linkname .. "-gd"
|
|
|
end
|
|
|
else
|
|
@@ -115,20 +114,18 @@ package("boost")
|
|
|
return linkname
|
|
|
end
|
|
|
|
|
|
- if not package:is_plat("windows") then
|
|
|
- -- we need the fixed link order
|
|
|
- local sublibs = {log = {"log_setup", "log"},
|
|
|
- python = {"python", "numpy"},
|
|
|
- stacktrace = {"stacktrace_backtrace", "stacktrace_basic"}}
|
|
|
- for _, libname in ipairs(libnames) do
|
|
|
- local libs = sublibs[libname]
|
|
|
- if libs then
|
|
|
- for _, lib in ipairs(libs) do
|
|
|
- package:add("links", get_linkname(package, lib))
|
|
|
- end
|
|
|
- else
|
|
|
- package:add("links", get_linkname(package, libname))
|
|
|
+ -- we need the fixed link order
|
|
|
+ local sublibs = {log = {"log_setup", "log"},
|
|
|
+ python = {"python", "numpy"},
|
|
|
+ stacktrace = {"stacktrace_backtrace", "stacktrace_basic"}}
|
|
|
+ for _, libname in ipairs(libnames) do
|
|
|
+ local libs = sublibs[libname]
|
|
|
+ if libs then
|
|
|
+ for _, lib in ipairs(libs) do
|
|
|
+ package:add("links", get_linkname(package, lib))
|
|
|
end
|
|
|
+ else
|
|
|
+ package:add("links", get_linkname(package, libname))
|
|
|
end
|
|
|
end
|
|
|
-- disable auto-link all libs
|
|
@@ -147,7 +144,7 @@ package("boost")
|
|
|
on_install("macosx", "linux", "windows", "bsd", "mingw", "cross", function (package)
|
|
|
import("core.base.option")
|
|
|
|
|
|
- function get_compiler(package, toolchain)
|
|
|
+ local function get_compiler(package, toolchain)
|
|
|
local cxx = package:build_getenv("cxx")
|
|
|
if package:is_plat("macosx") then
|
|
|
-- we uses ld/clang++ for link stdc++ for shared libraries
|
|
@@ -394,4 +391,19 @@ package("boost")
|
|
|
}
|
|
|
]]}, {configs = {languages = "c++14"}}))
|
|
|
end
|
|
|
+
|
|
|
+ if package:config("filesystem") then
|
|
|
+ assert(package:check_cxxsnippets({test = [[
|
|
|
+ #include <boost/filesystem.hpp>
|
|
|
+ #include <iostream>
|
|
|
+ static void test() {
|
|
|
+ boost::filesystem::path path("/path/to/directory");
|
|
|
+ if (boost::filesystem::exists(path)) {
|
|
|
+ std::cout << "Directory exists" << std::endl;
|
|
|
+ } else {
|
|
|
+ std::cout << "Directory does not exist" << std::endl;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ]]}, {configs = {languages = "c++14"}}))
|
|
|
+ end
|
|
|
end)
|