Message ID | 20180516135856.29408-1-brgl@bgdev.pl |
---|---|
State | Superseded |
Headers | show |
Series | libgpiod: bump version to v1.1 | expand |
On 16-05-18 15:58, Bartosz Golaszewski wrote: > This is a minor release the main feature of which are the > object-oriented bindings for C++ and Python3. Other than that there's > a couple bug-fixes and minor improvements all around. So for -next, I guess? > > Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl> > --- > package/libgpiod/Config.in | 20 ++++++++++++++++++++ > package/libgpiod/libgpiod.hash | 2 +- > package/libgpiod/libgpiod.mk | 20 ++++++++++++++++++-- > 3 files changed, 39 insertions(+), 3 deletions(-) > > diff --git a/package/libgpiod/Config.in b/package/libgpiod/Config.in > index 63a7cb6e78..c10f11cc15 100644 > --- a/package/libgpiod/Config.in > +++ b/package/libgpiod/Config.in > @@ -14,6 +14,26 @@ config BR2_PACKAGE_LIBGPIOD_TOOLS > help > Include a set of command-line tools for managing GPIOs. > > +config BR2_PACKAGE_LIBGPIODCXX > + bool "install C++ bindings" > + depends on BR2_INSTALL_LIBSTDCPP > + depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11 Is there really a need to make these bindings optional? We try to avoid too many Config.in options. So only if the bindings are relatively large on target it's worthwhile to make them optional (more than, say 20% of libgpiod itself, after stripping). If the bindings don't make it much larger, you can just move the dependencies to the BR2_PACKAGE_LIBGPIODCXX condition in the .mk file. > + help > + Build C++ bindings for libgpiod. > + > +comment "C++ bindings need a toolchain w/ C++, gcc >= 4.8" > + depends on !BR2_INSTALL_LIBSTDCPP || \ > + !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 > + > +config BR2_PACKAGE_LIBGPIOD_PYTHON > + bool "install python bindings" > + depends on BR2_PACKAGE_PYTHON3 Same here of course. Otherwise, Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Regards, Arnout > + help > + Build Python3 bindings for libgpiod. > + > +comment "Python bindings need python3" > + depends on !BR2_PACKAGE_PYTHON3 > + > endif [snip]
2018-05-16 23:48 GMT+02:00 Arnout Vandecappelle <arnout@mind.be>: > > > On 16-05-18 15:58, Bartosz Golaszewski wrote: >> This is a minor release the main feature of which are the >> object-oriented bindings for C++ and Python3. Other than that there's >> a couple bug-fixes and minor improvements all around. > > So for -next, I guess? > >> >> Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl> >> --- >> package/libgpiod/Config.in | 20 ++++++++++++++++++++ >> package/libgpiod/libgpiod.hash | 2 +- >> package/libgpiod/libgpiod.mk | 20 ++++++++++++++++++-- >> 3 files changed, 39 insertions(+), 3 deletions(-) >> >> diff --git a/package/libgpiod/Config.in b/package/libgpiod/Config.in >> index 63a7cb6e78..c10f11cc15 100644 >> --- a/package/libgpiod/Config.in >> +++ b/package/libgpiod/Config.in >> @@ -14,6 +14,26 @@ config BR2_PACKAGE_LIBGPIOD_TOOLS >> help >> Include a set of command-line tools for managing GPIOs. >> >> +config BR2_PACKAGE_LIBGPIODCXX >> + bool "install C++ bindings" >> + depends on BR2_INSTALL_LIBSTDCPP >> + depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11 > > Is there really a need to make these bindings optional? We try to avoid too > many Config.in options. So only if the bindings are relatively large on target > it's worthwhile to make them optional (more than, say 20% of libgpiod itself, > after stripping). > The basic library and tools only require a libc and recent kernel headers. I don't want users of very simple systems to carry all those dependencies for C++ and Python if they're not using it. > If the bindings don't make it much larger, you can just move the dependencies > to the BR2_PACKAGE_LIBGPIODCXX condition in the .mk file. > > >> + help >> + Build C++ bindings for libgpiod. >> + >> +comment "C++ bindings need a toolchain w/ C++, gcc >= 4.8" >> + depends on !BR2_INSTALL_LIBSTDCPP || \ >> + !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 >> + >> +config BR2_PACKAGE_LIBGPIOD_PYTHON >> + bool "install python bindings" >> + depends on BR2_PACKAGE_PYTHON3 > > Same here of course. > > Otherwise, > > Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> > > Regards, > Arnout > >> + help >> + Build Python3 bindings for libgpiod. >> + >> +comment "Python bindings need python3" >> + depends on !BR2_PACKAGE_PYTHON3 >> + >> endif > > [snip] > > -- > Arnout Vandecappelle arnout at mind be Thanks, Bart
Hi Bartosz, On Thu, May 17, 2018 at 09:00:38AM +0200, Bartosz Golaszewski wrote: > 2018-05-16 23:48 GMT+02:00 Arnout Vandecappelle <arnout@mind.be>: > > On 16-05-18 15:58, Bartosz Golaszewski wrote: > >> This is a minor release the main feature of which are the > >> object-oriented bindings for C++ and Python3. Other than that there's > >> a couple bug-fixes and minor improvements all around. > > > > So for -next, I guess? > > > >> Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl> > >> --- > >> package/libgpiod/Config.in | 20 ++++++++++++++++++++ > >> package/libgpiod/libgpiod.hash | 2 +- > >> package/libgpiod/libgpiod.mk | 20 ++++++++++++++++++-- > >> 3 files changed, 39 insertions(+), 3 deletions(-) > >> > >> diff --git a/package/libgpiod/Config.in b/package/libgpiod/Config.in > >> index 63a7cb6e78..c10f11cc15 100644 > >> --- a/package/libgpiod/Config.in > >> +++ b/package/libgpiod/Config.in > >> @@ -14,6 +14,26 @@ config BR2_PACKAGE_LIBGPIOD_TOOLS > >> help > >> Include a set of command-line tools for managing GPIOs. > >> > >> +config BR2_PACKAGE_LIBGPIODCXX > >> + bool "install C++ bindings" > >> + depends on BR2_INSTALL_LIBSTDCPP > >> + depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11 > > > > Is there really a need to make these bindings optional? We try to avoid too > > many Config.in options. So only if the bindings are relatively large on target > > it's worthwhile to make them optional (more than, say 20% of libgpiod itself, > > after stripping). > > The basic library and tools only require a libc and recent kernel > headers. I don't want users of very simple systems to carry all those > dependencies for C++ and Python if they're not using it. You don't need to. You can make BR2_INSTALL_LIBSTDCPP an optional dependency. If it is defined, install the C++ binding. Same goes for Python. That is what Arnout suggests. baruch
2018-05-17 9:20 GMT+02:00 Baruch Siach <baruch@tkos.co.il>: > Hi Bartosz, > > On Thu, May 17, 2018 at 09:00:38AM +0200, Bartosz Golaszewski wrote: >> 2018-05-16 23:48 GMT+02:00 Arnout Vandecappelle <arnout@mind.be>: >> > On 16-05-18 15:58, Bartosz Golaszewski wrote: >> >> This is a minor release the main feature of which are the >> >> object-oriented bindings for C++ and Python3. Other than that there's >> >> a couple bug-fixes and minor improvements all around. >> > >> > So for -next, I guess? >> > >> >> Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl> >> >> --- >> >> package/libgpiod/Config.in | 20 ++++++++++++++++++++ >> >> package/libgpiod/libgpiod.hash | 2 +- >> >> package/libgpiod/libgpiod.mk | 20 ++++++++++++++++++-- >> >> 3 files changed, 39 insertions(+), 3 deletions(-) >> >> >> >> diff --git a/package/libgpiod/Config.in b/package/libgpiod/Config.in >> >> index 63a7cb6e78..c10f11cc15 100644 >> >> --- a/package/libgpiod/Config.in >> >> +++ b/package/libgpiod/Config.in >> >> @@ -14,6 +14,26 @@ config BR2_PACKAGE_LIBGPIOD_TOOLS >> >> help >> >> Include a set of command-line tools for managing GPIOs. >> >> >> >> +config BR2_PACKAGE_LIBGPIODCXX >> >> + bool "install C++ bindings" >> >> + depends on BR2_INSTALL_LIBSTDCPP >> >> + depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11 >> > >> > Is there really a need to make these bindings optional? We try to avoid too >> > many Config.in options. So only if the bindings are relatively large on target >> > it's worthwhile to make them optional (more than, say 20% of libgpiod itself, >> > after stripping). >> >> The basic library and tools only require a libc and recent kernel >> headers. I don't want users of very simple systems to carry all those >> dependencies for C++ and Python if they're not using it. > > You don't need to. You can make BR2_INSTALL_LIBSTDCPP an optional dependency. > If it is defined, install the C++ binding. Same goes for Python. That is what > Arnout suggests. > I'm afraid I don't understand. Could you maybe point me to some example? Bart
Hello, On Thu, 17 May 2018 10:10:54 +0200, Bartosz Golaszewski wrote: > > You don't need to. You can make BR2_INSTALL_LIBSTDCPP an optional dependency. > > If it is defined, install the C++ binding. Same goes for Python. That is what > > Arnout suggests. > > > > I'm afraid I don't understand. Could you maybe point me to some example? ifeq ($(BR2_INSTALL_LIBSTDCPP),y) ... enable the build/installation of C++ bindings endif ifeq ($(BR2_PACKAGE_PYTHON),y) ... enable the build/istallation of Python bindings endif Best regards, Thomas
diff --git a/package/libgpiod/Config.in b/package/libgpiod/Config.in index 63a7cb6e78..c10f11cc15 100644 --- a/package/libgpiod/Config.in +++ b/package/libgpiod/Config.in @@ -14,6 +14,26 @@ config BR2_PACKAGE_LIBGPIOD_TOOLS help Include a set of command-line tools for managing GPIOs. +config BR2_PACKAGE_LIBGPIODCXX + bool "install C++ bindings" + depends on BR2_INSTALL_LIBSTDCPP + depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11 + help + Build C++ bindings for libgpiod. + +comment "C++ bindings need a toolchain w/ C++, gcc >= 4.8" + depends on !BR2_INSTALL_LIBSTDCPP || \ + !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 + +config BR2_PACKAGE_LIBGPIOD_PYTHON + bool "install python bindings" + depends on BR2_PACKAGE_PYTHON3 + help + Build Python3 bindings for libgpiod. + +comment "Python bindings need python3" + depends on !BR2_PACKAGE_PYTHON3 + endif comment "libgpiod needs kernel headers >= 4.8" diff --git a/package/libgpiod/libgpiod.hash b/package/libgpiod/libgpiod.hash index 9ed4b59ab9..1d217f6048 100644 --- a/package/libgpiod/libgpiod.hash +++ b/package/libgpiod/libgpiod.hash @@ -1,4 +1,4 @@ # From https://www.kernel.org/pub/software/libs/libgpiod/sha256sums.asc -sha256 972924195367f5fb045c023d65340c4b7dfc8764499516be446553865208dedc libgpiod-1.0.1.tar.xz +sha256 9758466468a7ef3f5e30c182c1303abef6241e665cda4d82a64328a7474838c1 libgpiod-1.1.tar.xz # Hash for license file sha256 ce64d5f7b49ea6d80fdb6d4cdee6839d1a94274f7493dc797c3b55b65ec8e9ed COPYING diff --git a/package/libgpiod/libgpiod.mk b/package/libgpiod/libgpiod.mk index 7f8fa4b7dd..3a829c11c8 100644 --- a/package/libgpiod/libgpiod.mk +++ b/package/libgpiod/libgpiod.mk @@ -4,13 +4,12 @@ # ################################################################################ -LIBGPIOD_VERSION = 1.0.1 +LIBGPIOD_VERSION = 1.1 LIBGPIOD_SOURCE = libgpiod-$(LIBGPIOD_VERSION).tar.xz LIBGPIOD_SITE = https://www.kernel.org/pub/software/libs/libgpiod LIBGPIOD_LICENSE = LGPL-2.1+ LIBGPIOD_LICENSE_FILES = COPYING LIBGPIOD_INSTALL_STAGING = YES - LIBGPIOD_DEPENDENCIES = host-pkgconf ifeq ($(BR2_PACKAGE_LIBGPIOD_TOOLS),y) @@ -19,4 +18,21 @@ else LIBGPIOD_CONF_OPTS += --disable-tools endif +ifeq ($(BR2_PACKAGE_LIBGPIODCXX),y) +LIBGPIOD_CONF_OPTS += --enable-bindings-cxx +else +LIBGPIOD_CONF_OPTS += --disable-bindings-cxx +endif + +ifeq ($(BR2_PACKAGE_LIBGPIOD_PYTHON),y) +LIBGPIOD_CONF_OPTS += --enable-bindings-python +LIBGPIOD_DEPENDENCIES += python3 host-python3 +LIBGPIOD_CONF_ENV += \ + PYTHON=$(HOST_DIR)/bin/python3 \ + PYTHON_CPPFLAGS="`$(STAGING_DIR)/usr/bin/python3-config --includes`" \ + PYTHON_LIBS="`$(STAGING_DIR)/usr/bin/python3-config --ldflags`" +else +LIBGPIOD_CONF_OPTS += --disable-bindings-python +endif + $(eval $(autotools-package))
This is a minor release the main feature of which are the object-oriented bindings for C++ and Python3. Other than that there's a couple bug-fixes and minor improvements all around. Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl> --- package/libgpiod/Config.in | 20 ++++++++++++++++++++ package/libgpiod/libgpiod.hash | 2 +- package/libgpiod/libgpiod.mk | 20 ++++++++++++++++++-- 3 files changed, 39 insertions(+), 3 deletions(-)