package An official xmake package repository
https://xrepo.xmake.io/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
74 lines
3.8 KiB
74 lines
3.8 KiB
package("abseil") |
|
|
|
set_homepage("https://abseil.io") |
|
set_description("C++ Common Libraries") |
|
set_license("Apache-2.0") |
|
|
|
add_urls("https://github.com/abseil/abseil-cpp/archive/$(version).tar.gz", |
|
"https://github.com/abseil/abseil-cpp.git") |
|
add_versions("20200225.1", "0db0d26f43ba6806a8a3338da3e646bb581f0ca5359b3a201d8fb8e4752fd5f8") |
|
add_versions("20210324.1", "441db7c09a0565376ecacf0085b2d4c2bbedde6115d7773551bc116212c2a8d6") |
|
add_versions("20210324.2", "59b862f50e710277f8ede96f083a5bb8d7c9595376146838b9580be90374ee1f") |
|
add_versions("20211102.0", "dcf71b9cba8dc0ca9940c4b316a0c796be8fab42b070bb6b7cab62b48f0e66c4") |
|
add_versions("20220623.0", "4208129b49006089ba1d6710845a45e31c59b0ab6bff9e5788a87f55c5abd602") |
|
add_versions("20230125.2", "9a2b5752d7bfade0bdeee2701de17c9480620f8b237e1964c1b9967c75374906") |
|
add_versions("20230802.1", "987ce98f02eefbaf930d6e38ab16aa05737234d7afbab2d5c4ea7adbe50c28ed") |
|
|
|
add_deps("cmake") |
|
|
|
add_linkorders("absl_strings", "absl_base") |
|
add_linkorders("absl_strings", "absl_raw_logging_internal") |
|
add_linkorders("absl_strings_internal", "absl_base") |
|
add_linkorders("absl_strings_internal", "absl_raw_logging_internal") |
|
add_linkorders("absl_str_format_internal", "absl_base") |
|
add_linkorders("absl_str_format_internal", "absl_raw_logging_internal") |
|
add_linkorders("absl_str_format_internal", "absl_strings") |
|
add_linkorders("absl_flags", "absl_base") |
|
add_linkorders("absl_synchronization", "absl_base") |
|
add_linkorders("absl_synchronization", "absl_stacktrace") |
|
add_linkorders("absl_hash", "absl_city") |
|
add_linkorders("absl_base", "absl_time") |
|
add_linkorders("absl_kernel_timeout_internal", "absl_time") |
|
add_linkorders("absl_time", "absl_time_zone") |
|
|
|
if is_plat("macosx") then |
|
add_frameworks("CoreFoundation") |
|
end |
|
|
|
on_load(function (package) |
|
if package:is_plat("windows") and package:config("shared") then |
|
package:add("defines", "ABSL_CONSUME_DLL") |
|
package:add("links", "abseil_dll") |
|
end |
|
if package:version():eq("20230802.1") then |
|
package:add("linkorders", "absl_synchronization", "absl_kernel_timeout_internal") |
|
end |
|
end) |
|
|
|
on_install("macosx", "linux", "windows", "mingw", "cross", function (package) |
|
if package:version():eq("20230802.1") and package:is_plat("mingw") then |
|
io.replace(path.join("absl", "synchronization", "internal", "pthread_waiter.h"), "#ifndef _WIN32", "#if !defined(_WIN32) && !defined(__MINGW32__)", {plain = true}) |
|
io.replace(path.join("absl", "synchronization", "internal", "win32_waiter.h"), "#if defined(_WIN32) && _WIN32_WINNT >= _WIN32_WINNT_VISTA", "#if defined(_WIN32) && !defined(__MINGW32__) && _WIN32_WINNT >= _WIN32_WINNT_VISTA", {plain = true}) |
|
end |
|
local configs = {"-DCMAKE_CXX_STANDARD=17"} |
|
table.insert(configs, "-DCMAKE_BUILD_TYPE=" .. (package:debug() and "Debug" or "Release")) |
|
table.insert(configs, "-DBUILD_SHARED_LIBS=" .. (package:config("shared") and "ON" or "OFF")) |
|
import("package.tools.cmake").install(package, configs, {buildir = os.tmpfile() .. ".dir"}) |
|
end) |
|
|
|
on_test(function (package) |
|
assert(package:check_cxxsnippets({test = [[ |
|
#include <iostream> |
|
#include <string> |
|
#include <vector> |
|
#include "absl/strings/numbers.h" |
|
#include "absl/strings/str_join.h" |
|
void test () { |
|
std::vector<std::string> v = {"foo","bar","baz"}; |
|
std::string s = absl::StrJoin(v, "-"); |
|
int result = 0; |
|
auto a = absl::SimpleAtoi("123", &result); |
|
std::cout << "Joined string: " << s << "\\n"; |
|
} |
|
]]}, {configs = {languages = "cxx17"}})) |
|
end)
|
|
|