blob: 0329caafdf8a8619aaa2a90788f107b6246ae3a3 [file] [log] [blame]
Andrew Geissler6aa7eec2023-03-03 12:41:14 -06001SUMMARY = "C library and tools for interacting with the linux GPIO character device"
2AUTHOR = "Bartosz Golaszewski <brgl@bgdev.pl>"
3
Andrew Geissler6aa7eec2023-03-03 12:41:14 -06004inherit autotools pkgconfig ptest
5
Patrick Williams8e7b46e2023-05-01 14:19:06 -05006SRC_URI += " \
7 https://www.kernel.org/pub/software/libs/libgpiod/libgpiod-${PV}.tar.xz \
8 file://run-ptest \
9"
Andrew Geissler6aa7eec2023-03-03 12:41:14 -060010
11PACKAGECONFIG[cxx] = "--enable-bindings-cxx,--disable-bindings-cxx"
12
13# Enable cxx bindings by default.
14PACKAGECONFIG ?= " \
15 cxx \
16 ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)} \
17"
18
19# Always build tools - they don't have any additional
20# requirements over the library.
21EXTRA_OECONF = "--enable-tools"
22
23DEPENDS += "autoconf-archive-native"
24
25PACKAGES =+ "${PN}-tools libgpiodcxx"
26FILES:${PN}-tools += " \
27 ${bindir}/gpiodetect \
28 ${bindir}/gpioinfo \
29 ${bindir}/gpioget \
30 ${bindir}/gpioset \
31 ${bindir}/gpiomon \
32"
Andrew Geissler6aa7eec2023-03-03 12:41:14 -060033FILES:libgpiodcxx = "${libdir}/libgpiodcxx.so.*"
34
35RRECOMMENDS:${PN}-ptest += "coreutils"
36RDEPENDS:${PN}-ptest += "bats"
37
Patrick Williams8e7b46e2023-05-01 14:19:06 -050038do_install:append() {
39 rm -f ${D}${bindir}/gpiod-test
40 rm -f ${D}${bindir}/gpio-tools-test
41 rm -f ${D}${bindir}/gpio-tools-test.bats
42 rm -f ${D}${bindir}/gpiod-cxx-test
43}
44
Andrew Geissler6aa7eec2023-03-03 12:41:14 -060045do_install_ptest() {
46 install -d ${D}${PTEST_PATH}/tests/
47
48 # These are the core C library tests
49 install -m 0755 ${B}/tests/.libs/gpiod-test ${D}${PTEST_PATH}/tests/
50
51 # Tools are always built so let's always install them for ptest even if
52 # we're not selecting libgpiod-tools.
53 install -m 0755 ${S}/tools/gpio-tools-test ${D}${PTEST_PATH}/tests/
54 install -m 0755 ${S}/tools/gpio-tools-test.bats ${D}${PTEST_PATH}/tests/
55 for tool in ${FILES:${PN}-tools}; do
56 install ${B}/tools/.libs/$(basename $tool) ${D}${PTEST_PATH}/tests/
57 done
58
59 if ${@bb.utils.contains('PACKAGECONFIG', 'cxx', 'true', 'false', d)}; then
60 install -m 0755 ${B}/bindings/cxx/tests/.libs/gpiod-cxx-test ${D}${PTEST_PATH}/tests/
61 fi
62}
63