summaryrefslogtreecommitdiffstats
path: root/meta-oe/recipes-connectivity
diff options
context:
space:
mode:
authorDaniels Umanovskis <du@axentia.se>2019-11-28 12:17:53 +0000
committerKhem Raj <raj.khem@gmail.com>2019-11-29 16:41:22 -0800
commite725436832fde304ff14e59dc241c41ba9933c45 (patch)
treebbf349dd226840eac7cb09cc34ec3320e0129257 /meta-oe/recipes-connectivity
parent2c83141421155b9dc0d849cd19170fa80703eb21 (diff)
downloadmeta-openembedded-e725436832fde304ff14e59dc241c41ba9933c45.tar.gz
gattlib: add recipe
gattlib is a C library for talking to Bluetooth, including BLE, devices. It's the only free, embedded-appropriate library for easily scanning BLE devices and subscribing to their notifications Signed-off-by: Daniels Umanovskis <du@axentia.se> Signed-off-by: Khem Raj <raj.khem@gmail.com>
Diffstat (limited to 'meta-oe/recipes-connectivity')
-rw-r--r--meta-oe/recipes-connectivity/gattlib/files/dbus-avoid-strange-chars-from-the-build-dir.patch70
-rw-r--r--meta-oe/recipes-connectivity/gattlib/gattlib_git.bb30
2 files changed, 100 insertions, 0 deletions
diff --git a/meta-oe/recipes-connectivity/gattlib/files/dbus-avoid-strange-chars-from-the-build-dir.patch b/meta-oe/recipes-connectivity/gattlib/files/dbus-avoid-strange-chars-from-the-build-dir.patch
new file mode 100644
index 000000000..96e4f8d6f
--- /dev/null
+++ b/meta-oe/recipes-connectivity/gattlib/files/dbus-avoid-strange-chars-from-the-build-dir.patch
@@ -0,0 +1,70 @@
1From 87df05c3f83c563af76ab00567e7a1ab7a6ebc88 Mon Sep 17 00:00:00 2001
2From: Peter Rosin <peda@axentia.se>
3Date: Sat, 9 Nov 2019 15:42:03 +0100
4Subject: [PATCH] dbus: avoid 'strange' chars from the build dir in #defines
5
6gdbus-codegen uses include guards with the full path dir, and if there
7are "bad" characters, such as '+', this fails miserably. E.g. Yocto has a
8tendency to build in directories named from the Yocto package version and
9that package version containing a '+' are not uncommon, and even the
10standard in certain scenarios such as when using ${SRCPV}.
11
12Avoid the problem of the full path "leaking" into the source by avoiding
13the normal include guards and request "#pragma once" instead.
14
15Signed-off-by: Peter Rosin <peda@axentia.se>
16---
17 dbus/CMakeLists.txt | 12 ++++++------
18 1 file changed, 6 insertions(+), 6 deletions(-)
19
20diff --git a/dbus/CMakeLists.txt b/dbus/CMakeLists.txt
21index f5096ce10ecd..013c32239e12 100644
22--- a/dbus/CMakeLists.txt
23+++ b/dbus/CMakeLists.txt
24@@ -43,37 +43,37 @@ else()
25 endif()
26
27 add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/org-bluez-adaptater1.c
28- COMMAND gdbus-codegen --interface-prefix org.bluez.Adapter1. --generate-c-code ${CMAKE_CURRENT_BINARY_DIR}/org-bluez-adaptater1 ${CMAKE_CURRENT_SOURCE_DIR}/${DBUS_BLUEZ_API}/org.bluez.Adapter1.xml
29+ COMMAND gdbus-codegen --pragma-once --interface-prefix org.bluez.Adapter1. --generate-c-code ${CMAKE_CURRENT_BINARY_DIR}/org-bluez-adaptater1 ${CMAKE_CURRENT_SOURCE_DIR}/${DBUS_BLUEZ_API}/org.bluez.Adapter1.xml
30 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${DBUS_BLUEZ_API}/org.bluez.Adapter1.xml
31 COMMENT "Generate D-Bus 'org.bluez.Adapter1.xml'"
32 )
33
34 add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/org-bluez-device1.c
35- COMMAND gdbus-codegen --interface-prefix org.bluez.Device1. --generate-c-code ${CMAKE_CURRENT_BINARY_DIR}/org-bluez-device1 ${CMAKE_CURRENT_SOURCE_DIR}/${DBUS_BLUEZ_API}/org.bluez.Device1.xml
36+ COMMAND gdbus-codegen --pragma-once --interface-prefix org.bluez.Device1. --generate-c-code ${CMAKE_CURRENT_BINARY_DIR}/org-bluez-device1 ${CMAKE_CURRENT_SOURCE_DIR}/${DBUS_BLUEZ_API}/org.bluez.Device1.xml
37 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${DBUS_BLUEZ_API}/org.bluez.Device1.xml
38 COMMENT "Generate D-Bus 'org.bluez.Device1.xml'"
39 )
40
41 add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/org-bluez-gattservice1.c
42- COMMAND gdbus-codegen --interface-prefix org.bluez.GattService1. --generate-c-code ${CMAKE_CURRENT_BINARY_DIR}/org-bluez-gattservice1 ${CMAKE_CURRENT_SOURCE_DIR}/${DBUS_BLUEZ_API}/org.bluez.GattService1.xml
43+ COMMAND gdbus-codegen --pragma-once --interface-prefix org.bluez.GattService1. --generate-c-code ${CMAKE_CURRENT_BINARY_DIR}/org-bluez-gattservice1 ${CMAKE_CURRENT_SOURCE_DIR}/${DBUS_BLUEZ_API}/org.bluez.GattService1.xml
44 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${DBUS_BLUEZ_API}/org.bluez.GattService1.xml
45 COMMENT "Generate D-Bus 'org.bluez.GattService1.xml'"
46 )
47
48 add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/org-bluez-gattcharacteristic1.c
49- COMMAND gdbus-codegen --interface-prefix org.bluez.Characteristic1. --generate-c-code ${CMAKE_CURRENT_BINARY_DIR}/org-bluez-gattcharacteristic1 ${CMAKE_CURRENT_SOURCE_DIR}/${DBUS_BLUEZ_API}/org.bluez.GattCharacteristic1.xml
50+ COMMAND gdbus-codegen --pragma-once --interface-prefix org.bluez.Characteristic1. --generate-c-code ${CMAKE_CURRENT_BINARY_DIR}/org-bluez-gattcharacteristic1 ${CMAKE_CURRENT_SOURCE_DIR}/${DBUS_BLUEZ_API}/org.bluez.GattCharacteristic1.xml
51 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${DBUS_BLUEZ_API}/org.bluez.GattCharacteristic1.xml
52 COMMENT "Generate D-Bus 'org.bluez.GattCharacteristic1.xml'"
53 )
54
55 add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/org-bluez-gattdescriptor1.c
56- COMMAND gdbus-codegen --interface-prefix org.bluez.Descriptor1. --generate-c-code ${CMAKE_CURRENT_BINARY_DIR}/org-bluez-gattdescriptor1 ${CMAKE_CURRENT_SOURCE_DIR}/${DBUS_BLUEZ_API}/org.bluez.GattDescriptor1.xml
57+ COMMAND gdbus-codegen --pragma-once --interface-prefix org.bluez.Descriptor1. --generate-c-code ${CMAKE_CURRENT_BINARY_DIR}/org-bluez-gattdescriptor1 ${CMAKE_CURRENT_SOURCE_DIR}/${DBUS_BLUEZ_API}/org.bluez.GattDescriptor1.xml
58 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${DBUS_BLUEZ_API}/org.bluez.GattDescriptor1.xml
59 COMMENT "Generate D-Bus 'org.bluez.GattDescriptor1.xml'"
60 )
61
62 add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/org-bluez-battery1.c
63- COMMAND gdbus-codegen --interface-prefix org.bluez.Battery1. --generate-c-code ${CMAKE_CURRENT_BINARY_DIR}/org-bluez-battery1 ${CMAKE_CURRENT_SOURCE_DIR}/${DBUS_BLUEZ_API}/org.bluez.Battery1.xml
64+ COMMAND gdbus-codegen --pragma-once --interface-prefix org.bluez.Battery1. --generate-c-code ${CMAKE_CURRENT_BINARY_DIR}/org-bluez-battery1 ${CMAKE_CURRENT_SOURCE_DIR}/${DBUS_BLUEZ_API}/org.bluez.Battery1.xml
65 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${DBUS_BLUEZ_API}/org.bluez.Battery1.xml
66 COMMENT "Generate D-Bus 'org.bluez.Battery1.xml'"
67 )
68--
692.11.0
70
diff --git a/meta-oe/recipes-connectivity/gattlib/gattlib_git.bb b/meta-oe/recipes-connectivity/gattlib/gattlib_git.bb
new file mode 100644
index 000000000..0e6fce9c9
--- /dev/null
+++ b/meta-oe/recipes-connectivity/gattlib/gattlib_git.bb
@@ -0,0 +1,30 @@
1DESCRIPTION = "Bluetooth library with attribute support"
2SECTION = "libs/network"
3
4LICENSE = "GPLv2+"
5LIC_FILES_CHKSUM = "file://CMakeLists.txt;beginline=1;endline=20;md5=8d5efeb9189b60866baff80ff791bf00"
6
7DEPENDS = "bluez5 glib-2.0"
8DEPENDS += "glib-2.0-native"
9
10PV = "0.2+git${SRCPV}"
11
12SRC_URI = "git://github.com/labapart/gattlib.git"
13SRC_URI += "file://dbus-avoid-strange-chars-from-the-build-dir.patch"
14
15SRCBRANCH = "master"
16SRCREV = "c6a33252221dff904cf277e085e2ce70aced8788"
17
18S = "${WORKDIR}/git"
19
20PACKAGECONFIG[examples] = "-DGATTLIB_BUILD_EXAMPLES=ON,-DGATTLIB_BUILD_EXAMPLES=OFF"
21
22# Set this to force use of DBus API if Bluez version is older than 5.42
23PACKAGECONFIG[force-dbus] = "-DGATTLIB_FORCE_DBUS=TRUE,-DGATTLIB_FORCE_DBUS=FALSE"
24
25EXTRA_OECMAKE += "-DGATTLIB_BUILD_DOCS=OFF"
26
27inherit pkgconfig cmake
28
29FILES_${PN} = "${libdir}/* ${includedir}/*"
30FILES_${PN}-dev = "${includedir}/*"