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.
62 lines
2.1 KiB
62 lines
2.1 KiB
option("enable_bindings_cxx", {default = true, showmenu = true, description = "Enable C++ bindings"}) |
|
option("enable_tools", {default = true, showmenu = true, description = "Enable tools"}) |
|
|
|
target("gpiod") |
|
set_kind("$(kind)") |
|
set_languages("cxx11") |
|
|
|
add_headerfiles("include/(gpiod.h)") |
|
add_headerfiles("lib/uapi/*.h") |
|
add_files("lib/*.c") |
|
|
|
add_includedirs("include", {public = true}) |
|
|
|
before_build(function (target) |
|
local configure = io.readfile("configure.ac") |
|
local version = configure:match("AC_INIT%(%[libgpiod%], %[?([0-9%.]+)%]?%)") |
|
target:add("defines", "GPIOD_VERSION_STR=\"" .. version .. "\"") |
|
end) |
|
|
|
if has_config("enable_bindings_cxx") then |
|
target("gpiodcxx") |
|
set_kind("$(kind)") |
|
set_languages("cxx17") |
|
|
|
add_headerfiles("include/(gpiod.h)") |
|
add_headerfiles("lib/uapi/*.h") |
|
add_files("lib/*.c") |
|
|
|
add_includedirs("include") |
|
|
|
add_headerfiles("bindings/cxx/(gpiod.hpp)") |
|
add_headerfiles("bindings/cxx/(gpiodcxx/**.hpp)") |
|
add_files("bindings/cxx/*.cpp") |
|
|
|
add_includedirs("bindings/cxx", {public = true}) |
|
|
|
before_build(function (target) |
|
local configure = io.readfile("configure.ac") |
|
local version = configure:match("AC_INIT%(%[libgpiod%], %[?([0-9%.]+)%]?%)") |
|
target:add("defines", "GPIOD_VERSION_STR=\"" .. version .. "\"") |
|
end) |
|
end |
|
|
|
if has_config("enable_tools") then |
|
for _, tool_file in ipairs(os.files("tools/*.c")) do |
|
local name = path.basename(tool_file) |
|
if name ~= "tools-common" then |
|
target(name) |
|
set_kind("binary") |
|
set_languages("cxx11") |
|
|
|
add_files("tools/" .. name .. ".c") |
|
add_headerfiles("tools/tools-common.h") |
|
add_files("tools/tools-common.c") |
|
|
|
add_defines("program_invocation_short_name=\"" .. name .. "\"") |
|
add_defines("program_invocation_name=\"" .. name .. "\"") |
|
|
|
add_deps("gpiod") |
|
end |
|
end |
|
end |