diff mbox series

[1/7] libyang: Optional C++ bindings

Message ID f70195c8c44e4950257e1548b25083254362b266.1575456104.git.jan.kundrat@cesnet.cz
State Changes Requested
Headers show
Series Improve sysrepo support | expand

Commit Message

Jan Kundrát Oct. 4, 2017, 5:48 a.m. UTC
Signed-off-by: Jan Kundrát <jan.kundrat@cesnet.cz>
---
 package/libyang/Config.in  | 10 ++++++++++
 package/libyang/libyang.mk |  7 +++++++
 2 files changed, 17 insertions(+)

Comments

Heiko Thiery Dec. 4, 2019, 1:23 p.m. UTC | #1
Hi,

> -----Ursprüngliche Nachricht-----
> Von: buildroot [mailto:buildroot-bounces@busybox.net] Im Auftrag von Jan
> Kundrát
> Gesendet: Mittwoch, 4. Oktober 2017 07:49
> An: buildroot@buildroot.org
> Cc: Heiko Thiery; Fabrice Fontaine
> Betreff: [Buildroot] [PATCH 1/7] libyang: Optional C++ bindings
> 
> Signed-off-by: Jan Kundrát <jan.kundrat@cesnet.cz>
> ---
>  package/libyang/Config.in  | 10 ++++++++++  package/libyang/libyang.mk |  7
> +++++++
>  2 files changed, 17 insertions(+)
> 
> diff --git a/package/libyang/Config.in b/package/libyang/Config.in index
> fec1160a6f..fc598af8e1 100644
> --- a/package/libyang/Config.in
> +++ b/package/libyang/Config.in
> @@ -10,5 +10,15 @@ config BR2_PACKAGE_LIBYANG
> 
>  	  https://github.com/CESNET/libyang
> 
> +if BR2_PACKAGE_LIBYANG
> +
> +config BR2_PACKAGE_LIBYANG_CPP
> +	bool "Enable libyang C++ bindings"
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11
> +	help
> +	  Build the C++ wrapper around libyang.
> +
> +endif
> +
>  comment "libyang needs a toolchain w/ threads, dynamic library"
>  	depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS diff
> --git a/package/libyang/libyang.mk b/package/libyang/libyang.mk index
> cfec08cd16..87a1a4ef7c 100644
> --- a/package/libyang/libyang.mk
> +++ b/package/libyang/libyang.mk
> @@ -21,5 +21,12 @@ HOST_LIBYANG_CONF_OPTS = \
>  	-DENABLE_VALGRIND_TESTS=OFF \
>  	-DGEN_PYTHON_BINDINGS=OFF
> 
> +ifdef BR2_PACKAGE_LIBYANG_CPP
> +	LIBYANG_DEPENDENCIES += host-swig
> +	HOST_LIBYANG_DEPENDENCIES += host-swig
> +	LIBYANG_CONF_OPTS += -DGEN_LANGUAGE_BINDINGS=ON -DGEN_CPP_BINDINGS=ON -DGEN_PYTHON_BINDINGS=OFF -DGEN_JAVA_BINDINGS=OFF

GEN_PYTHON_BINDINGS=OFF is already set for target and host config above.  Should we disable JAVA bindings there also by default?

> +	HOST_LIBYANG_CONF_OPTS += -DGEN_LANGUAGE_BINDINGS=ON -DGEN_CPP_BINDINGS=ON -DGEN_PYTHON_BINDINGS=OFF -DGEN_JAVA_BINDINGS=OFF
> +endif
> +
>  $(eval $(cmake-package))
>  $(eval $(host-cmake-package))
> --
> 2.21.0
> 
> 
> _______________________________________________
> buildroot mailing list
> buildroot@busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
Thomas Petazzoni Dec. 4, 2019, 3:16 p.m. UTC | #2
On Wed, 4 Oct 2017 07:48:35 +0200
Jan Kundrát <jan.kundrat@cesnet.cz> wrote:

> +if BR2_PACKAGE_LIBYANG
> +
> +config BR2_PACKAGE_LIBYANG_CPP
> +	bool "Enable libyang C++ bindings"

Just:

	bool "enable C++ bindings"

no need to repeat the package name.

> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11

I suppose you also need:

	depends on BR2_INSTALL_LIBSTDCPP

> +	help
> +	  Build the C++ wrapper around libyang.

You also need a Config.in comment to document the C++ and gcc >= 4.8
dependencies.

> diff --git a/package/libyang/libyang.mk b/package/libyang/libyang.mk
> index cfec08cd16..87a1a4ef7c 100644
> --- a/package/libyang/libyang.mk
> +++ b/package/libyang/libyang.mk
> @@ -21,5 +21,12 @@ HOST_LIBYANG_CONF_OPTS = \
>  	-DENABLE_VALGRIND_TESTS=OFF \
>  	-DGEN_PYTHON_BINDINGS=OFF
>  
> +ifdef BR2_PACKAGE_LIBYANG_CPP

should be:

ifeq ($(BR2_PACKAGE_LIBYANG_CPP),y)

> +	LIBYANG_DEPENDENCIES += host-swig
> +	HOST_LIBYANG_DEPENDENCIES += host-swig
> +	LIBYANG_CONF_OPTS += -DGEN_LANGUAGE_BINDINGS=ON -DGEN_CPP_BINDINGS=ON -DGEN_PYTHON_BINDINGS=OFF -DGEN_JAVA_BINDINGS=OFF
> +	HOST_LIBYANG_CONF_OPTS += -DGEN_LANGUAGE_BINDINGS=ON -DGEN_CPP_BINDINGS=ON -DGEN_PYTHON_BINDINGS=OFF -DGEN_JAVA_BINDINGS=OFF

This is not good: BR2_PACKAGE_LIBYANG_CPP is a target configuration
option, it should not affect how the host variant of libyang is built.

Unless you need the C++ bindings in host-libyang, just make
BR2_PACKAGE_LIBYANG_CPP=y enable the C++ bindings in the target package.

Best regards,

Thomas
diff mbox series

Patch

diff --git a/package/libyang/Config.in b/package/libyang/Config.in
index fec1160a6f..fc598af8e1 100644
--- a/package/libyang/Config.in
+++ b/package/libyang/Config.in
@@ -10,5 +10,15 @@  config BR2_PACKAGE_LIBYANG
 
 	  https://github.com/CESNET/libyang
 
+if BR2_PACKAGE_LIBYANG
+
+config BR2_PACKAGE_LIBYANG_CPP
+	bool "Enable libyang C++ bindings"
+	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11
+	help
+	  Build the C++ wrapper around libyang.
+
+endif
+
 comment "libyang needs a toolchain w/ threads, dynamic library"
 	depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS
diff --git a/package/libyang/libyang.mk b/package/libyang/libyang.mk
index cfec08cd16..87a1a4ef7c 100644
--- a/package/libyang/libyang.mk
+++ b/package/libyang/libyang.mk
@@ -21,5 +21,12 @@  HOST_LIBYANG_CONF_OPTS = \
 	-DENABLE_VALGRIND_TESTS=OFF \
 	-DGEN_PYTHON_BINDINGS=OFF
 
+ifdef BR2_PACKAGE_LIBYANG_CPP
+	LIBYANG_DEPENDENCIES += host-swig
+	HOST_LIBYANG_DEPENDENCIES += host-swig
+	LIBYANG_CONF_OPTS += -DGEN_LANGUAGE_BINDINGS=ON -DGEN_CPP_BINDINGS=ON -DGEN_PYTHON_BINDINGS=OFF -DGEN_JAVA_BINDINGS=OFF
+	HOST_LIBYANG_CONF_OPTS += -DGEN_LANGUAGE_BINDINGS=ON -DGEN_CPP_BINDINGS=ON -DGEN_PYTHON_BINDINGS=OFF -DGEN_JAVA_BINDINGS=OFF
+endif
+
 $(eval $(cmake-package))
 $(eval $(host-cmake-package))