浏览代码

token: add new package (#8124)

choyy 3 天之前
父节点
当前提交
62902cd303
共有 1 个文件被更改,包括 37 次插入0 次删除
  1. 37 0
      packages/t/token/xmake.lua

+ 37 - 0
packages/t/token/xmake.lua

@@ -0,0 +1,37 @@
+package("token")
+    set_homepage("https://gitlab.kitware.com/utils/token")
+    set_description("Utilities for string tokenization. Tokens (string hashes) can be used in place of the strings themselves for fast dictionary key lookup in the place of length string comparators and improve security when used carefully to avoid unnecessary string processing.")
+    set_license("BSD-3-Clause")
+
+    add_urls("https://gitlab.kitware.com/utils/token.git")
+    add_versions("24.09.0", "24.09")
+
+    add_deps("cmake")
+    add_deps("nlohmann_json", {configs = {cmake = true}})
+
+    on_load(function (package)
+        package:add("includedirs", "include/token/" .. package:version())
+    end)
+
+    on_install("windows", "linux", "bsd", "macosx", function (package)
+        io.replace("token/CMakeLists.txt", "foreach (class ${classes})", [[
+                    install(FILES "${CMAKE_CURRENT_BINARY_DIR}/CxxABIConfigure.h"
+                            DESTINATION include/token/${token_VERSION}/token)
+                    foreach (class ${classes})]], {plain = true})
+        local configs = {
+            "-DCMAKE_BUILD_TYPE=" .. (package:is_debug() and "Debug" or "Release"),
+            "-DBUILD_SHARED_LIBS=" .. (package:config("shared") and "ON" or "OFF"),
+        }
+        import("package.tools.cmake").install(package, configs)
+    end)
+
+    on_test(function (package)
+        assert(package:check_cxxsnippets({test = [[
+            #include <token/Token.h>
+            #include <token/Manager.h>
+            void test() {
+                std::shared_ptr<token::Manager> manager(new token::Manager);
+                auto h = manager->manage("fooset");
+            }
+        ]]}, {configs = {languages = "c++11"}}))
+    end)