diff mbox

ilixi package support

Message ID CAPWb3NRXUixbAYu1jJVqy2RUpxgpfFsx+PEXTEDBGhoO0JWfKw@mail.gmail.com
State Changes Requested
Headers show

Commit Message

Justin Berger April 5, 2016, 8:44 p.m. UTC
This patch adds support for ilixi, a C++ library for creating embedded GUIs

Comments

Arnout Vandecappelle April 5, 2016, 11 p.m. UTC | #1
On 04/05/16 22:44, Justin Berger wrote:
>
> This patch adds support for ilixi, a C++ library for creating embedded GUIs

  Hi Justin,

  Please send patches in-line, using git send-email. See the manual for details.

  The patch subject should be:

ilixi: new package

> Signed-off-by: Justin Berger <j.david.berger@gmail.com>
> ---
>  package/Config.in        |  1 +
>  package/ilixi/Config.in  | 20 ++++++++++++++++++++
>  package/ilixi/ilixi.hash |  1 +
>  package/ilixi/ilixi.mk   | 18 ++++++++++++++++++
>  4 files changed, 40 insertions(+)
>  create mode 100644 package/ilixi/Config.in
>  create mode 100644 package/ilixi/ilixi.hash
>  create mode 100644 package/ilixi/ilixi.mk
>
> diff --git a/package/Config.in b/package/Config.in
> index 64822bf..6bbe278 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -261,6 +261,7 @@ endif
>  	source "package/fbterm/Config.in"
>  	source "package/fbv/Config.in"
>  	source "package/freerdp/Config.in"
> +	source "package/ilixi/Config.in"
>  	source "package/imagemagick/Config.in"
>  	source "package/linux-fusion/Config.in"
>  	source "package/lite/Config.in"
> diff --git a/package/ilixi/Config.in b/package/ilixi/Config.in
> new file mode 100644
> index 0000000..47aac65
> --- /dev/null
> +++ b/package/ilixi/Config.in
> @@ -0,0 +1,20 @@
> +comment "ilixi needs a toolchain w/ C++, threads, dynamic library"
> +	depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS

  Please split this line.

  Also, you should add || BR2_USE_WCHAR || BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 and 
update the comment text accordingly.

> +
> +config BR2_PACKAGE_ILIXI
> +	bool "ilixi"
> +	depends on BR2_TOOLCHAIN_HAS_THREADS
> +	depends on BR2_INSTALL_LIBSTDCPP
> +	depends on !BR2_STATIC_LIBS

  Does it really require shared libraries? I don't see calls to dlopen() and it 
can build static libraries, and AFAICS it can even build static-only.

> +	depends on BR2_PACKAGE_DIRECTFB

  This should be a select rather than depends. Which means you also need to 
propagate the dependencies of directfb:

	depends on !BR2_TOOLCHAIN_USES_MUSL # directfb
	depends on BR2_TOOLCHAIN_HAS_SYNC_4 # directfb

  And that again has to be propagated to the comment.

> +	depends on BR2_INSTALL_LIBSTDCPP
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11

  Are you sure that 4.7 is not enough?

> +	depends on (BR2_ENABLE_LOCALE && BR2_USE_WCHAR) # wstring / iconv.h

  This should be split over two lines. No comment is needed for wstring. 
However, for locale I'm not so sure if it is needed. If it is really needed, it 
should be:

select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE

Cfr. 
https://buildroot.org/downloads/manual/manual.html#_gettext_integration_and_interaction_with_packages
But as I said, I don't think it is really needed. As far as I can see, locale 
support can be selected with --enable/disable-nls, which defaults to no (and 
doesn't have autodetection). The only problem is that
ilixi/lib/InputHelperJP.cpp unconditionally includes iconv.h, but it doesn't 
actually use it unless ILIXI_HAVE_LIBWNN is defined (which is not the case 
because we don't have libwnn). So just adding a patch that puts an #ifdef 
ILIXI_HAVE_LIBWNN around the include iconv.h should be sufficient.


> +	select BR2_PACKAGE_LIBSIGC
> +	select BR2_PACKAGE_LIBXML2

  I think fontconfig should be selected as well.

> +	help
> +		ilixi is an open-source C++ library aimed at developing rich graphical

  Indentation should be one tab + 2 spaces, and it should be wrapped at 72 
columns (where tab counts for 8, so 62 actual characters).

> +		applications for embedded Linux systems. Having been actively developed
> +		since 2010, it is running on thousands of devices around the world.
> +
> +		www.ilixi.org

  Add http:// in front.

> diff --git a/package/ilixi/ilixi.hash b/package/ilixi/ilixi.hash
> new file mode 100644
> index 0000000..0ffe151
> --- /dev/null
> +++ b/package/ilixi/ilixi.hash
> @@ -0,0 +1 @@
> +sha256 9b0c17efa75f2dc6a6a1438580a2f01e1cdfde822b10ad8c3f3b4a641caeadce  ilixi-1.0.0.tar.gz
> diff --git a/package/ilixi/ilixi.mk b/package/ilixi/ilixi.mk
> new file mode 100644
> index 0000000..cce080e
> --- /dev/null
> +++ b/package/ilixi/ilixi.mk
> @@ -0,0 +1,18 @@
> +################################################################################
> +#
> +# ilixi
> +#
> +################################################################################
> +
> +ILIXI_VERSION_MAJOR = 1.0.0

  No need to define an additional _VERSION_MAJOR variable, just define _VERSION.

> +ILIXI_VERSION = $(ILIXI_VERSION_MAJOR)
> +ILIXI_SOURCE = ilixi-$(ILIXI_VERSION).tar.gz

  This is the default so not needed.

> +ILIXI_SITE = http://ilixi.org/releases
> +ILIXI_LICENSE = LGPL

  The project claims that it's LGPLv3+, but in fact, there is one file which is 
GPLv3+. So this should be:

ILIXI_LICENSE = LGPLv3+, GPLV3+ (osk utf8-decoder)

  Note BTW that the osk app is only built/installed when sawman is detected (see 
below).

> +ILIXI_LICENSE_FILES = COPYING

  The main license file is COPYING.LESSER, but because of the utf8-decoder you 
need COPYING as well, so:

ILIXI_LICENSE_FILES = COPYING.LESSER COPYING

> +ILIXI_INSTALL_STAGING = YES
> +
> +ILIXI_DEPENDENCIES = libsigc libxml2

  Also directfb and fontconfig. That will probably make the line too long, so 
it's nice to split it with just one dependency per line.


  In addition, there is an optional dependency on sawman (which causes some demo 
apps to be built):

ifeq ($(BR2_PACKAGE_SAWMAN),y)
ILIXI_CONF_OPTS += --enable-sawman
ILIXI_DEPENDENCIES += sawman
else
ILIXI_CONF_OPTS += --disable-sawman
endif


  Regards,
  Arnout

> +ILIXI_CONF_ENV = CPPFLAGS="$(TARGET_CPPFLAGS) -std=c++11"
> +
> +$(eval $(autotools-package))
> --
> 2.5.0
>
diff mbox

Patch

From 884a543ca6058ce871641a018a08a7c0511680ea Mon Sep 17 00:00:00 2001
From: Justin Berger <j.david.berger@gmail.com>
Date: Tue, 5 Apr 2016 14:32:30 -0600
Subject: [PATCH] Added ilixi support

Signed-off-by: Justin Berger <j.david.berger@gmail.com>
---
 package/Config.in        |  1 +
 package/ilixi/Config.in  | 20 ++++++++++++++++++++
 package/ilixi/ilixi.hash |  1 +
 package/ilixi/ilixi.mk   | 18 ++++++++++++++++++
 4 files changed, 40 insertions(+)
 create mode 100644 package/ilixi/Config.in
 create mode 100644 package/ilixi/ilixi.hash
 create mode 100644 package/ilixi/ilixi.mk

diff --git a/package/Config.in b/package/Config.in
index 64822bf..6bbe278 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -261,6 +261,7 @@  endif
 	source "package/fbterm/Config.in"
 	source "package/fbv/Config.in"
 	source "package/freerdp/Config.in"
+	source "package/ilixi/Config.in"
 	source "package/imagemagick/Config.in"
 	source "package/linux-fusion/Config.in"
 	source "package/lite/Config.in"
diff --git a/package/ilixi/Config.in b/package/ilixi/Config.in
new file mode 100644
index 0000000..47aac65
--- /dev/null
+++ b/package/ilixi/Config.in
@@ -0,0 +1,20 @@ 
+comment "ilixi needs a toolchain w/ C++, threads, dynamic library"
+	depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS
+
+config BR2_PACKAGE_ILIXI
+	bool "ilixi"
+	depends on BR2_TOOLCHAIN_HAS_THREADS
+	depends on BR2_INSTALL_LIBSTDCPP
+	depends on !BR2_STATIC_LIBS
+	depends on BR2_PACKAGE_DIRECTFB
+	depends on BR2_INSTALL_LIBSTDCPP
+	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11
+	depends on (BR2_ENABLE_LOCALE && BR2_USE_WCHAR) # wstring / iconv.h
+	select BR2_PACKAGE_LIBSIGC
+	select BR2_PACKAGE_LIBXML2
+	help
+		ilixi is an open-source C++ library aimed at developing rich graphical
+		applications for embedded Linux systems. Having been actively developed
+		since 2010, it is running on thousands of devices around the world.
+
+		www.ilixi.org
diff --git a/package/ilixi/ilixi.hash b/package/ilixi/ilixi.hash
new file mode 100644
index 0000000..0ffe151
--- /dev/null
+++ b/package/ilixi/ilixi.hash
@@ -0,0 +1 @@ 
+sha256 9b0c17efa75f2dc6a6a1438580a2f01e1cdfde822b10ad8c3f3b4a641caeadce  ilixi-1.0.0.tar.gz
diff --git a/package/ilixi/ilixi.mk b/package/ilixi/ilixi.mk
new file mode 100644
index 0000000..cce080e
--- /dev/null
+++ b/package/ilixi/ilixi.mk
@@ -0,0 +1,18 @@ 
+################################################################################
+#
+# ilixi
+#
+################################################################################
+
+ILIXI_VERSION_MAJOR = 1.0.0
+ILIXI_VERSION = $(ILIXI_VERSION_MAJOR)
+ILIXI_SOURCE = ilixi-$(ILIXI_VERSION).tar.gz
+ILIXI_SITE = http://ilixi.org/releases
+ILIXI_LICENSE = LGPL
+ILIXI_LICENSE_FILES = COPYING
+ILIXI_INSTALL_STAGING = YES
+
+ILIXI_DEPENDENCIES = libsigc libxml2
+ILIXI_CONF_ENV = CPPFLAGS="$(TARGET_CPPFLAGS) -std=c++11"
+
+$(eval $(autotools-package))
-- 
2.5.0