瀏覽代碼

Add Outcome (#1650)

Arthur Laurent 2 年之前
父節點
當前提交
25d546a179
共有 1 個文件被更改,包括 40 次插入0 次删除
  1. 40 0
      packages/o/outcome/xmake.lua

+ 40 - 0
packages/o/outcome/xmake.lua

@@ -0,0 +1,40 @@
+package("outcome")
+    set_homepage("https://github.com/ned14/outcome")
+    set_description("Provides very lightweight outcome<T> and result<T> (non-Boost edition)")
+    set_license("Apache-2.0")
+
+    local versions = {
+        ["v2.2.4"] = "4a36ba9c23b1fd5f001a3eea733a595d7e0eb9fe82ea0af12c103b2246f9421b"
+    }
+    local hashes = {
+        ["v2.2.4"] = "90032f99503b4620f21d8160dc3af06fa343541f"
+    }
+    add_urls("https://github.com/ned14/outcome/releases/download/$(version)", {version = function (version)
+        return format("%s/outcome-v2-all-sources-%s.tar.xz", version, hashes[tostring(version)])
+    end})
+    add_urls("https://github.com/ned14/outcome.git")
+
+    for version, commit in pairs(versions) do
+        add_versions(version, commit)
+    end
+
+    add_deps("cmake")
+    add_deps("quickcpplib")
+    on_install(function (package)
+        local configs = {"-DOUTCOME_ENABLE_DEPENDENCY_SMOKE_TEST=OFF", "-DCMAKE_DISABLE_FIND_PACKAGE_Git=ON", "-DPROJECT_IS_DEPENDENCY=ON"}
+        table.insert(configs, "-DCMAKE_BUILD_TYPE=" .. (package:debug() and "Debug" or "Release"))
+        import("package.tools.cmake").install(package, configs)
+    end)
+
+    on_test(function (package)
+        assert(package:check_cxxsnippets({test = [[
+            #include <outcome/outcome.hpp>
+            void test () {
+                using namespace OUTCOME_V2_NAMESPACE;
+                result<int> f(5);
+                outcome<void> m(in_place_type<void>);
+                (void) f;
+                (void) m;
+            }
+        ]]}, {configs = {languages = "c++17"}}))
+    end)