diff --git a/packages/o/outcome/xmake.lua b/packages/o/outcome/xmake.lua new file mode 100644 index 000000000..2c37b44d9 --- /dev/null +++ b/packages/o/outcome/xmake.lua @@ -0,0 +1,40 @@ +package("outcome") + set_homepage("https://github.com/ned14/outcome") + set_description("Provides very lightweight outcome and result (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 + void test () { + using namespace OUTCOME_V2_NAMESPACE; + result f(5); + outcome m(in_place_type); + (void) f; + (void) m; + } + ]]}, {configs = {languages = "c++17"}})) + end)