From ac8c8da1ad9aaeba8beb16961de618107403a581 Mon Sep 17 00:00:00 2001 From: star9029 Date: Tue, 8 Oct 2024 11:12:48 +0800 Subject: [PATCH] glaze: add v3.6.2 version (#5440) * glaze: add v3.6.2 version * improve check * add check for android * add check for low version gcc --- packages/g/glaze/xmake.lua | 34 +++++++++++++++++++++++++++++----- 1 file changed, 29 insertions(+), 5 deletions(-) diff --git a/packages/g/glaze/xmake.lua b/packages/g/glaze/xmake.lua index a1785db0faa..cc6a2c00c6f 100644 --- a/packages/g/glaze/xmake.lua +++ b/packages/g/glaze/xmake.lua @@ -7,6 +7,7 @@ package("glaze") add_urls("https://github.com/stephenberry/glaze/archive/refs/tags/$(version).tar.gz", "https://github.com/stephenberry/glaze.git") + add_versions("v3.6.2", "74b14656b7a47c0a03d0a857adf5059e8c2351a7a84623593be0dd16b293216c") add_versions("v3.6.0", "d394fed35440bd1cb1a2aec059b967acc43fc04764ecb0915ba24b9f5a9ca0a3") add_versions("v3.3.2", "e492d3f662c3c096ce7abac86780af6c84f74c4f19b29223ad92fccc054aafad") add_versions("v3.1.7", "388483bb3dfa1fe25c1dfec24f0afd1651e0303833cfa1b7f51020a2569e992a") @@ -24,18 +25,41 @@ package("glaze") if on_check then on_check(function (package) + if package:is_plat("windows") then + local vs_toolset = package:toolchain("msvc"):config("vs_toolset") + if vs_toolset then + local vs_toolset_ver = import("core.base.semver").new(vs_toolset) + local minor = vs_toolset_ver:minor() + assert(minor and minor >= 30, "package(glaze) require vs_toolset >= 14.3") + end + elseif package:is_plat("android") then + local ndk = package:toolchain("ndk"):config("ndkver") + assert(ndk and tonumber(ndk) >= 27, "package(glaze) require ndk version >= 27") + end + + if package:has_tool("cxx", "gcc") then + assert(package:check_cxxsnippets({test = [[ + constexpr void f() { + static constexpr int g = 1; + } + ]]}, {configs = {languages = "c++2b"}}), "package(glaze) require >= c++23") + end + assert(package:check_cxxsnippets({test = [[ - constexpr void f() { - static constexpr int g = 1; + #include + #include + void test() { + constexpr double f64v = 19880124.0; + constexpr auto u64v = std::bit_cast(f64v); } - ]]}, {configs = {languages = "c++2b"}}), "package(glaze) Require at least C++23.") + ]]}, {configs = {languages = "c++20"}}), "package(glaze) require >= c++20") end) end - on_install("windows", "linux", "macosx", "bsd", "mingw", "wasm", function (package) + on_install(function (package) local version = package:version() if version and version:ge("2.9.5") then - if package:has_tool("cxx", "cl", "clang_cl") then + if package:has_tool("cxx", "cl") then package:add("cxxflags", "/Zc:preprocessor", "/permissive-", "/Zc:lambda") end