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.
 
 
 

49 lines
1.7 KiB

package("sol2")
set_kind("library", {headeronly = true})
set_homepage("https://github.com/ThePhD/sol2")
set_description("A C++ library binding to Lua.")
set_urls("https://github.com/ThePhD/sol2/archive/$(version).tar.gz",
"https://github.com/ThePhD/sol2.git")
add_versions("v3.2.3", "f74158f92996f476786be9c9e83f8275129bb1da2a8d517d050421ac160a4b9e")
add_versions("v3.2.2", "141790dae0c1821dd2dbac3595433de49ba72545845efc3ec7d88de8b0a3b2da")
add_versions("v3.2.1", "b10f88dc1246f74a10348faef7d2c06e2784693307df74dcd87c4641cf6a6828")
add_configs("includes_lua", {description = "Should this package includes the Lua package (set to false if you're shipping a custom Lua)", default = true, type = "boolean"})
if is_plat("mingw") and is_subhost("msys") then
add_extsources("pacman::sol2")
elseif is_plat("linux") then
add_extsources("pacman::sol2")
end
add_deps("cmake")
on_load(function (package)
if package:config("includes_lua") then
package:add("deps", "lua")
end
end)
on_install(function (package)
local configs = {}
import("package.tools.cmake").install(package, configs)
end)
on_test(function (package)
if package:config("includes_lua") then
assert(package:check_cxxsnippets({test = [[
#include <sol/sol.hpp>
#include <cassert>
void test() {
sol::state lua;
int x = 0;
lua.set_function("beep", [&x]{ ++x; });
lua.script("beep()");
assert(x == 1);
}
]]}, {configs = {languages = "c++17"}}))
end
end)