|
@@ -7,18 +7,40 @@ package("libgpiod")
|
|
|
add_versions("v2.0.1", "cf0d4db1d94cc99281de142063d0e28f42760c4d918d6b8854e1b27811517c34")
|
|
|
add_versions("v2.0", "a0f835c4ca4a2a3ca021090b574235ba58bb9fd612d8a6051fb1350054e04fdd")
|
|
|
add_versions("v1.6.4", "9f920260c46b155f65cba8796dcf159e4ba56950b85742af357d75a1af709e68")
|
|
|
-
|
|
|
- add_deps("autoconf-archive", "automake", "libtool", "pkg-config")
|
|
|
+
|
|
|
+ add_configs("enable_bindings_cxx", {description = "Enable C++ bindings", default = true, type = "boolean"})
|
|
|
+ add_configs("enable_tools", {description = "Enable tools", default = true, type = "boolean"})
|
|
|
|
|
|
on_install("linux", function (package)
|
|
|
- local configs = {"--enable-tools=yes", "--enable-bindings-cxx"}
|
|
|
- table.insert(configs, "--enable-shared=" .. (package:config("shared") and "yes" or "no"))
|
|
|
- table.insert(configs, "--enable-static=" .. (package:config("shared") and "no" or "yes"))
|
|
|
- import("package.tools.autoconf").install(package, configs)
|
|
|
+ os.cp(path.join(package:scriptdir(), "port", "xmake.lua"), "xmake.lua")
|
|
|
+ local configs = {}
|
|
|
+ if package:config("enable_bindings_cxx") then
|
|
|
+ configs.enable_bindings_cxx = true
|
|
|
+ end
|
|
|
+ if package:config("enable_tools") then
|
|
|
+ configs.enable_tools = true
|
|
|
+ end
|
|
|
+ import("package.tools.xmake").install(package)
|
|
|
package:addenv("PATH", "bin")
|
|
|
end)
|
|
|
|
|
|
on_test(function (package)
|
|
|
- os.runv("gpiodetect")
|
|
|
- assert(package:has_cfuncs("gpiod_api_version", {includes = "gpiod.h"}))
|
|
|
+ assert(package:check_cxxsnippets({test = [[
|
|
|
+ #include <gpiod.h>
|
|
|
+ void test() {
|
|
|
+ struct gpiod_chip *chip;
|
|
|
+ chip = gpiod_chip_open("/dev/null");
|
|
|
+ }
|
|
|
+ ]]}, {configs = {languages = "c++11"}}))
|
|
|
+ if package:config("enable_bindings_cxx") then
|
|
|
+ assert(package:check_cxxsnippets({test = [[
|
|
|
+ #include <gpiod.hpp>
|
|
|
+ void test() {
|
|
|
+ gpiod::chip chip("/dev/null");
|
|
|
+ }
|
|
|
+ ]]}, {configs = {languages = "c++17"}}))
|
|
|
+ end
|
|
|
+ if package:config("enable_tools") then
|
|
|
+ os.runv("gpiodetect")
|
|
|
+ end
|
|
|
end)
|