All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCHv2 1/2] package/efl: enable Eolian languages bindings
@ 2016-07-18 20:51 Romain Naour
  2016-07-18 20:51 ` [Buildroot] [PATCHv2 2/2] package/elementary: add path to eolian_cxx Romain Naour
  2016-07-20 21:43 ` [Buildroot] [PATCHv2 1/2] package/efl: enable Eolian languages bindings Thomas Petazzoni
  0 siblings, 2 replies; 4+ messages in thread
From: Romain Naour @ 2016-07-18 20:51 UTC (permalink / raw)
  To: buildroot

Eolian languages bindings needs C++11, so we needs at least a gcc 4.8
for the host and target variant.
The C++11 support with gcc 4.7 is not sufficient.

Build eolian_cxx for the host only if Eolian support for the target is
selected.

Signed-off-by: Romain Naour <romain.naour@gmail.com>
---
v2: - add help text
    - rename the option to BR2_PACKAGE_EFL_EOLIAN_CPP since it enable
      the Eolian C++ bindings. The Eolian code generator is already
      available.
    - Move --with-eolian-cxx under BR2_PACKAGE_EFL_EOLIAN_CPP=y
    - Fix the comment about host eolian_cxx
---
 package/efl/Config.in | 12 ++++++++++++
 package/efl/efl.mk    | 22 +++++++++++++++++-----
 2 files changed, 29 insertions(+), 5 deletions(-)

diff --git a/package/efl/Config.in b/package/efl/Config.in
index ee1a39d..a4cb332 100644
--- a/package/efl/Config.in
+++ b/package/efl/Config.in
@@ -121,6 +121,18 @@ config BR2_PACKAGE_EFL_HAS_RECOMMENDED_CONFIG
 comment "Warning: one of the recommended option for EFL is not enabled"
 	depends on !BR2_PACKAGE_EFL_HAS_RECOMMENDED_CONFIG
 
+config BR2_PACKAGE_EFL_EOLIAN_CPP
+	bool "Enable Eolian C++ bindings"
+	depends on BR2_HOST_GCC_AT_LEAST_4_8 # Eolian (host) needs C++11
+	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # Eolian needs C++11
+	help
+	  Eolian is an EO object parser and code genrator.
+	  Whith this option enabled Eolian will handle automatic generation
+	  of EFL bindings for C++11 language.
+
+comment "Eolian needs host and target gcc >= 4.8"
+	depends on !BR2_HOST_GCC_AT_LEAST_4_8 || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
+
 comment "libecore video support"
 
 config BR2_PACKAGE_EFL_FB
diff --git a/package/efl/efl.mk b/package/efl/efl.mk
index fd06246..066592f 100644
--- a/package/efl/efl.mk
+++ b/package/efl/efl.mk
@@ -23,7 +23,6 @@ EFL_DEPENDENCIES = host-pkgconf host-efl host-luajit dbus freetype \
 	jpeg luajit udev util-linux zlib
 
 # Configure options:
-# --disable-cxx-bindings: disable C++11 bindings.
 # --disable-lua-old: build elua for the target.
 # --disable-sdl: disable sdl2 support.
 # --disable-systemd: disable systemd support.
@@ -33,7 +32,6 @@ EFL_CONF_OPTS = \
 	--with-edje-cc=$(HOST_DIR)/usr/bin/edje_cc \
 	--with-elua=$(HOST_DIR)/usr/bin/elua \
 	--with-eolian-gen=$(HOST_DIR)/usr/bin/eolian_gen \
-	--disable-cxx-bindings \
 	--disable-lua-old \
 	--disable-sdl \
 	--disable-systemd \
@@ -45,6 +43,13 @@ ifeq ($(BR2_PACKAGE_EFL_HAS_RECOMMENDED_CONFIG),)
 EFL_CONF_OPTS += --enable-i-really-know-what-i-am-doing-and-that-this-will-probably-break-things-and-i-will-fix-them-myself-and-send-patches-abb
 endif
 
+ifeq ($(BR2_PACKAGE_EFL_EOLIAN_CPP),y)
+EFL_CONF_OPTS += --enable-cxx-bindings \
+	--with-eolian-cxx=$(HOST_DIR)/usr/bin/eolian_cxx
+else
+EFL_CONF_OPTS += --disable-cxx-bindings
+endif
+
 ifeq ($(BR2_PACKAGE_UTIL_LINUX_LIBMOUNT),y)
 EFL_DEPENDENCIES += util-linux
 EFL_CONF_OPTS += --enable-libmount
@@ -216,7 +221,8 @@ $(eval $(autotools-package))
 ################################################################################
 
 # We want to build only some host tools used later in the build.
-# Actually we want: edje_cc, embryo_cc and eet.
+# Actually we want: edje_cc, eet and embryo_cc. eolian_cxx is build only
+# if selected for the target.
 
 # Host dependencies:
 # * host-dbus: for Eldbus
@@ -234,9 +240,16 @@ HOST_EFL_DEPENDENCIES = \
 	host-luajit \
 	host-zlib
 
+# Enable Eolian language bindings to provide eolian_cxx tool for the host which
+# is required to build Eolian language bindings for the target.
+ifeq ($(BR2_PACKAGE_EFL_EOLIAN_CPP),y)
+HOST_EFL_CONF_OPTS += --enable-cxx-bindings
+else
+HOST_EFL_CONF_OPTS += --disable-cxx-bindings
+endif
+
 # Configure options:
 # --disable-audio, --disable-multisense remove libsndfile dependency.
-# --disable-cxx-bindings: disable C++11 bindings.
 # --disable-fontconfig: remove dependency on fontconfig.
 # --disable-fribidi: remove dependency on libfribidi.
 # --disable-gstreamer1: remove dependency on gtreamer 1.0.
@@ -251,7 +264,6 @@ HOST_EFL_DEPENDENCIES = \
 #   Yes I really know what I am doing.
 HOST_EFL_CONF_OPTS += \
 	--disable-audio \
-	--disable-cxx-bindings \
 	--disable-fontconfig \
 	--disable-fribidi \
 	--disable-gstreamer1 \
-- 
2.5.5

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [Buildroot] [PATCHv2 2/2] package/elementary: add path to eolian_cxx
  2016-07-18 20:51 [Buildroot] [PATCHv2 1/2] package/efl: enable Eolian languages bindings Romain Naour
@ 2016-07-18 20:51 ` Romain Naour
  2016-07-20 21:43   ` Thomas Petazzoni
  2016-07-20 21:43 ` [Buildroot] [PATCHv2 1/2] package/efl: enable Eolian languages bindings Thomas Petazzoni
  1 sibling, 1 reply; 4+ messages in thread
From: Romain Naour @ 2016-07-18 20:51 UTC (permalink / raw)
  To: buildroot

When efl package is build with Eolian support, eolian_cxx tool is
build for the host.

Signed-off-by: Romain Naour <romain.naour@gmail.com>
---
v2: set eolian_cxx path only if Eolian C++ bindings are enabled
    in the efl stack.
---
 package/elementary/elementary.mk | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/package/elementary/elementary.mk b/package/elementary/elementary.mk
index 33d4034..a06809f 100644
--- a/package/elementary/elementary.mk
+++ b/package/elementary/elementary.mk
@@ -33,5 +33,11 @@ HOST_ELEMENTARY_CONF_OPTS = \
 	--with-doxygen=no \
 	--disable-elementary-test
 
+# Use Eolian C++ parser only if enabled in the efl stack.
+ifeq ($(BR2_PACKAGE_EFL_EOLIAN_CPP),y)
+ELEMENTARY_CONF_OPTS += --with-eolian-cxx=$(HOST_DIR)/usr/bin/eolian_cxx
+HOST_ELEMENTARY_CONF_OPTS += --with-eolian-cxx=$(HOST_DIR)/usr/bin/eolian_cxx
+endif
+
 $(eval $(autotools-package))
 $(eval $(host-autotools-package))
-- 
2.5.5

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [Buildroot] [PATCHv2 1/2] package/efl: enable Eolian languages bindings
  2016-07-18 20:51 [Buildroot] [PATCHv2 1/2] package/efl: enable Eolian languages bindings Romain Naour
  2016-07-18 20:51 ` [Buildroot] [PATCHv2 2/2] package/elementary: add path to eolian_cxx Romain Naour
@ 2016-07-20 21:43 ` Thomas Petazzoni
  1 sibling, 0 replies; 4+ messages in thread
From: Thomas Petazzoni @ 2016-07-20 21:43 UTC (permalink / raw)
  To: buildroot

Hello,

On Mon, 18 Jul 2016 22:51:26 +0200, Romain Naour wrote:

> +config BR2_PACKAGE_EFL_EOLIAN_CPP
> +	bool "Enable Eolian C++ bindings"
> +	depends on BR2_HOST_GCC_AT_LEAST_4_8 # Eolian (host) needs C++11
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # Eolian needs C++11
> +	help
> +	  Eolian is an EO object parser and code genrator.

generator

> +	  Whith this option enabled Eolian will handle automatic generation

With

> +ifeq ($(BR2_PACKAGE_EFL_EOLIAN_CPP),y)
> +EFL_CONF_OPTS += --enable-cxx-bindings \
> +	--with-eolian-cxx=$(HOST_DIR)/usr/bin/eolian_cxx
> +else
> +EFL_CONF_OPTS += --disable-cxx-bindings
> +endif
> +
>  ifeq ($(BR2_PACKAGE_UTIL_LINUX_LIBMOUNT),y)
>  EFL_DEPENDENCIES += util-linux
>  EFL_CONF_OPTS += --enable-libmount
> @@ -216,7 +221,8 @@ $(eval $(autotools-package))
>  ################################################################################
>  
>  # We want to build only some host tools used later in the build.
> -# Actually we want: edje_cc, embryo_cc and eet.
> +# Actually we want: edje_cc, eet and embryo_cc. eolian_cxx is build only

is built

> +# Enable Eolian language bindings to provide eolian_cxx tool for the host which
> +# is required to build Eolian language bindings for the target.
> +ifeq ($(BR2_PACKAGE_EFL_EOLIAN_CPP),y)
> +HOST_EFL_CONF_OPTS += --enable-cxx-bindings
> +else
> +HOST_EFL_CONF_OPTS += --disable-cxx-bindings
> +endif

I've moved this below...

> +
>  # Configure options:
>  # --disable-audio, --disable-multisense remove libsndfile dependency.
> -# --disable-cxx-bindings: disable C++11 bindings.
>  # --disable-fontconfig: remove dependency on fontconfig.
>  # --disable-fribidi: remove dependency on libfribidi.
>  # --disable-gstreamer1: remove dependency on gtreamer 1.0.
> @@ -251,7 +264,6 @@ HOST_EFL_DEPENDENCIES = \
>  #   Yes I really know what I am doing.
>  HOST_EFL_CONF_OPTS += \
>  	--disable-audio \
> -	--disable-cxx-bindings \
>  	--disable-fontconfig \
>  	--disable-fribidi \
>  	--disable-gstreamer1 \

... this, so that the unconditional options are listed before the
conditional ones.

Also, while doing a build test, I encountered a dependency check error:
efl has zlib in its DEPENDENCIES variable, but does not select it. So,
I've added a separate commit that fixes this.

Applied with the above typos fixed. Thanks!

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Buildroot] [PATCHv2 2/2] package/elementary: add path to eolian_cxx
  2016-07-18 20:51 ` [Buildroot] [PATCHv2 2/2] package/elementary: add path to eolian_cxx Romain Naour
@ 2016-07-20 21:43   ` Thomas Petazzoni
  0 siblings, 0 replies; 4+ messages in thread
From: Thomas Petazzoni @ 2016-07-20 21:43 UTC (permalink / raw)
  To: buildroot

Hello,

On Mon, 18 Jul 2016 22:51:27 +0200, Romain Naour wrote:
> When efl package is build with Eolian support, eolian_cxx tool is
> build for the host.
> 
> Signed-off-by: Romain Naour <romain.naour@gmail.com>
> ---
> v2: set eolian_cxx path only if Eolian C++ bindings are enabled
>     in the efl stack.
> ---
>  package/elementary/elementary.mk | 6 ++++++
>  1 file changed, 6 insertions(+)

Applied to master, thanks.

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2016-07-20 21:43 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-07-18 20:51 [Buildroot] [PATCHv2 1/2] package/efl: enable Eolian languages bindings Romain Naour
2016-07-18 20:51 ` [Buildroot] [PATCHv2 2/2] package/elementary: add path to eolian_cxx Romain Naour
2016-07-20 21:43   ` Thomas Petazzoni
2016-07-20 21:43 ` [Buildroot] [PATCHv2 1/2] package/efl: enable Eolian languages bindings Thomas Petazzoni

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.