diff mbox

ilixi: new package

Message ID 1459910836-12815-1-git-send-email-j.david.berger@gmail.com
State Changes Requested
Headers show

Commit Message

Justin Berger April 6, 2016, 2:47 a.m. UTC
---
 package/Config.in                                 |  1 +
 package/ilixi/0001-Added-ifdef-around-iconv.patch | 28 +++++++++++++++++++++++
 package/ilixi/Config.in                           | 26 +++++++++++++++++++++
 package/ilixi/ilixi.hash                          |  1 +
 package/ilixi/ilixi.mk                            | 28 +++++++++++++++++++++++
 5 files changed, 84 insertions(+)
 create mode 100644 package/ilixi/0001-Added-ifdef-around-iconv.patch
 create mode 100644 package/ilixi/Config.in
 create mode 100644 package/ilixi/ilixi.hash
 create mode 100644 package/ilixi/ilixi.mk

Comments

Justin Berger April 6, 2016, 2:55 a.m. UTC | #1
Apologies, in getting used to the git send-mail tool, I sent it off without
any other notes.

I didn't check it explicitly against 4.7, but I looked at the supported C++
features in 4.7 vs 4.8 and it looked like it should work. Currently the
only GCC options that show up in the menuconfig though are 4.8 and onwards,
is the reason to prefer 4.7 vs 4.8 for people to backport?

Thanks for the guidance on this package!
Justin

On Tue, Apr 5, 2016 at 8:47 PM, Justin Berger <j.david.berger@gmail.com>
wrote:

> ---
>  package/Config.in                                 |  1 +
>  package/ilixi/0001-Added-ifdef-around-iconv.patch | 28
> +++++++++++++++++++++++
>  package/ilixi/Config.in                           | 26
> +++++++++++++++++++++
>  package/ilixi/ilixi.hash                          |  1 +
>  package/ilixi/ilixi.mk                            | 28
> +++++++++++++++++++++++
>  5 files changed, 84 insertions(+)
>  create mode 100644 package/ilixi/0001-Added-ifdef-around-iconv.patch
>  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/0001-Added-ifdef-around-iconv.patch
> b/package/ilixi/0001-Added-ifdef-around-iconv.patch
> new file mode 100644
> index 0000000..a341c8c
> --- /dev/null
> +++ b/package/ilixi/0001-Added-ifdef-around-iconv.patch
> @@ -0,0 +1,28 @@
> +From 3e2844eead42ac4e17835f5e59746a52ad0caf76 Mon Sep 17 00:00:00 2001
> +From: Justin Berger <j.david.berger@gmail.com>
> +Date: Tue, 5 Apr 2016 20:06:11 -0600
> +Subject: [PATCH] Added ifdef around iconv
> +
> +Locale support in ilixi is a conditional dependency, and is only used
> when the libwnn dependency is also met.
> +
> +---
> + ilixi/lib/InputHelperJP.cpp | 2 ++
> + 1 file changed, 2 insertions(+)
> +
> +diff --git a/ilixi/lib/InputHelperJP.cpp b/ilixi/lib/InputHelperJP.cpp
> +index 95d0da4..72c5f3f 100644
> +--- a/ilixi/lib/InputHelperJP.cpp
> ++++ b/ilixi/lib/InputHelperJP.cpp
> +@@ -26,7 +26,9 @@
> + #include <lib/utf8.h>
> + #include <core/Logger.h>
> + #include <directfb.h>
> ++#if ILIXI_HAVE_LIBWNN
> + #include <iconv.h>
> ++#endif
> + #include <stdlib.h>
> + #include <stdint.h>
> + #include <string.h>
> +--
> +2.1.4
> +
> diff --git a/package/ilixi/Config.in b/package/ilixi/Config.in
> new file mode 100644
> index 0000000..54e7b04
> --- /dev/null
> +++ b/package/ilixi/Config.in
> @@ -0,0 +1,26 @@
> +config BR2_PACKAGE_ILIXI
> +       bool "ilixi"
> +       depends on BR2_INSTALL_LIBSTDCPP
> +       depends on BR2_TOOLCHAIN_HAS_THREADS
> +       depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 # C++11
> +       depends on !BR2_TOOLCHAIN_USES_MUSL # directfb
> +       depends on BR2_TOOLCHAIN_HAS_SYNC_4 # directfb
> +       depends on BR2_USE_WCHAR
> +       select BR2_PACKAGE_DIRECTFB
> +       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.
> +
> +         http://www.ilixi.org
> +
> +comment "ilixi needs a toolchain w/ C++, threads, wchar, gcc >= 4.7"
> +       depends on BR2_TOOLCHAIN_HAS_SYNC_4
> +       depends on !BR2_INSTALL_LIBSTDCPP          ||   \
> +                  !BR2_TOOLCHAIN_HAS_THREADS      ||   \
> +                  !BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 ||   \
> +                  !BR2_USE_WCHAR                  ||   \
> +                  BR2_TOOLCHAIN_USES_MUSL
> 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..cde9af3
> --- /dev/null
> +++ b/package/ilixi/ilixi.mk
> @@ -0,0 +1,28 @@
>
> +################################################################################
> +#
> +# ilixi
> +#
>
> +################################################################################
> +
> +ILIXI_VERSION = 1.0.0
> +ILIXI_SITE = http://ilixi.org/releases
> +ILIXI_LICENSE = LGPLv3+, GPLV3+ (osk utf8-decoder)
> +ILIXI_LICENSE_FILES = COPYING.LESSER COPYING
> +ILIXI_INSTALL_STAGING = YES
> +
> +ILIXI_DEPENDENCIES =   \
> +       libsigc         \
> +       libxml2         \
> +       directfb        \
> +       fontconfig      \
> +
> +ifeq ($(BR2_PACKAGE_SAWMAN),y)
> +       ILIXI_CONF_OPTS += --enable-sawman
> +       ILIXI_DEPENDENCIES += sawman
> +else
> +       ILIXI_CONF_OPTS += --disable-sawman
> +endif
> +
> +ILIXI_CONF_ENV = CPPFLAGS="$(TARGET_CPPFLAGS) -std=c++11"
> +
> +$(eval $(autotools-package))
> --
> 2.1.4
>
>
Baruch Siach April 6, 2016, 4:33 a.m. UTC | #2
Hi Justin,

On Tue, Apr 05, 2016 at 08:47:16PM -0600, Justin Berger wrote:
> +################################################################################
> +#
> +# ilixi
> +#
> +################################################################################
> +
> +ILIXI_VERSION = 1.0.0
> +ILIXI_SITE = http://ilixi.org/releases
> +ILIXI_LICENSE = LGPLv3+, GPLV3+ (osk utf8-decoder)
> +ILIXI_LICENSE_FILES = COPYING.LESSER COPYING
> +ILIXI_INSTALL_STAGING = YES
> +
> +ILIXI_DEPENDENCIES = 	\
> +	libsigc 	\
> +	libxml2 	\
> +	directfb 	\
> +	fontconfig	\
> +
> +ifeq ($(BR2_PACKAGE_SAWMAN),y)
> +	ILIXI_CONF_OPTS += --enable-sawman
> +	ILIXI_DEPENDENCIES += sawman
> +else
> +	ILIXI_CONF_OPTS += --disable-sawman
> +endif
> +
> +ILIXI_CONF_ENV = CPPFLAGS="$(TARGET_CPPFLAGS) -std=c++11"

Should be CXXFLAGS and TARGET_CXXFLAGS.

baruch
Arnout Vandecappelle April 6, 2016, 9:47 p.m. UTC | #3
On 04/06/16 04:55, Justin Berger wrote:
> I didn't check it explicitly against 4.7, but I looked at the supported C++
> features in 4.7 vs 4.8 and it looked like it should work. Currently the only GCC
> options that show up in the menuconfig though are 4.8 and onwards, is the reason
> to prefer 4.7 vs 4.8 for people to backport?

  People may have a custom prebuilt toolchain using gcc 4.7.

  You can use Sourcery CodeBench SH 2012.09 or Sourcery CodeBench x86/x86_64 
2012.09 to test. Build test is probably enough, though the x86 toolchain should 
be easy to run-time test.

  Regards,
  Arnout
Justin Berger April 7, 2016, 5:37 p.m. UTC | #4
What is the reason for CXXFLAGS over CPPFLAGS? I'm not sure why exactly but
this package in particular doesn't seem to look at CXXFLAGS if CPPFLAGS is
present (which it is due to the autotools-package internals it seems), and
so doesn't catch the C++11 flag and won't compile after that.

I was a little unsure on best practice for setting that flag, so I
basically just copied what directfb.mk does on line 132; where it uses
CPPFLAGS. Although searching through I see sort of an even spread of CXX vs
CPP among autotools packages. But if there is a way to go with CXXFLAGS and
have it work, I have no preference one way or the other.

Have a good one,
Justin

On Tue, Apr 5, 2016 at 10:33 PM, Baruch Siach <baruch@tkos.co.il> wrote:

> Hi Justin,
>
> On Tue, Apr 05, 2016 at 08:47:16PM -0600, Justin Berger wrote:
> >
> +################################################################################
> > +#
> > +# ilixi
> > +#
> >
> +################################################################################
> > +
> > +ILIXI_VERSION = 1.0.0
> > +ILIXI_SITE = http://ilixi.org/releases
> > +ILIXI_LICENSE = LGPLv3+, GPLV3+ (osk utf8-decoder)
> > +ILIXI_LICENSE_FILES = COPYING.LESSER COPYING
> > +ILIXI_INSTALL_STAGING = YES
> > +
> > +ILIXI_DEPENDENCIES =         \
> > +     libsigc         \
> > +     libxml2         \
> > +     directfb        \
> > +     fontconfig      \
> > +
> > +ifeq ($(BR2_PACKAGE_SAWMAN),y)
> > +     ILIXI_CONF_OPTS += --enable-sawman
> > +     ILIXI_DEPENDENCIES += sawman
> > +else
> > +     ILIXI_CONF_OPTS += --disable-sawman
> > +endif
> > +
> > +ILIXI_CONF_ENV = CPPFLAGS="$(TARGET_CPPFLAGS) -std=c++11"
>
> Should be CXXFLAGS and TARGET_CXXFLAGS.
>
> baruch
>
> --
>      http://baruch.siach.name/blog/                  ~. .~   Tk Open
> Systems
> =}------------------------------------------------ooO--U--Ooo------------{=
>    - baruch@tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -
>
Baruch Siach April 7, 2016, 7:50 p.m. UTC | #5
Hi Justin,

On Thu, Apr 07, 2016 at 11:37:03AM -0600, Justin Berger wrote:
> What is the reason for CXXFLAGS over CPPFLAGS?

CPPFLAGS is usually for options that affect the C pre-processor. The most 
common pre-processor options are -I (include path), and -D (for macros). 
CXXFLAGS is for C++ options like -std=c++11. See 
http://www.gnu.org/software/make/manual/html_node/Implicit-Variables.html.

> I'm not sure why exactly but this package in particular doesn't seem to look 
> at CXXFLAGS if CPPFLAGS is present (which it is due to the autotools-package 
> internals it seems), and so doesn't catch the C++11 flag and won't compile 
> after that.

Unfortunately configure.ac does

  CXXFLAGS="$CFLAGS"

which overwrites the environment CXXFLAGS. It should have been

  CXXFLAGS="$CXXFLAGS $CFLAGS"

In this case I think you should use CFLAGS.

> I was a little unsure on best practice for setting that flag, so I
> basically just copied what directfb.mk does on line 132; where it uses
> CPPFLAGS.

That's because this line adds a pre-processor -I option.

> Although searching through I see sort of an even spread of CXX vs CPP among 
> autotools packages. But if there is a way to go with CXXFLAGS and have it 
> work, I have no preference one way or the other.

baruch

> On Tue, Apr 5, 2016 at 10:33 PM, Baruch Siach <baruch@tkos.co.il> wrote:
> > On Tue, Apr 05, 2016 at 08:47:16PM -0600, Justin Berger wrote:
> > >
> > +################################################################################
> > > +#
> > > +# ilixi
> > > +#
> > >
> > +################################################################################
> > > +
> > > +ILIXI_VERSION = 1.0.0
> > > +ILIXI_SITE = http://ilixi.org/releases
> > > +ILIXI_LICENSE = LGPLv3+, GPLV3+ (osk utf8-decoder)
> > > +ILIXI_LICENSE_FILES = COPYING.LESSER COPYING
> > > +ILIXI_INSTALL_STAGING = YES
> > > +
> > > +ILIXI_DEPENDENCIES =         \
> > > +     libsigc         \
> > > +     libxml2         \
> > > +     directfb        \
> > > +     fontconfig      \
> > > +
> > > +ifeq ($(BR2_PACKAGE_SAWMAN),y)
> > > +     ILIXI_CONF_OPTS += --enable-sawman
> > > +     ILIXI_DEPENDENCIES += sawman
> > > +else
> > > +     ILIXI_CONF_OPTS += --disable-sawman
> > > +endif
> > > +
> > > +ILIXI_CONF_ENV = CPPFLAGS="$(TARGET_CPPFLAGS) -std=c++11"
> >
> > Should be CXXFLAGS and TARGET_CXXFLAGS.
Justin Berger April 7, 2016, 8:10 p.m. UTC | #6
Ah. That makes sense, I feel somewhat chagrined for never realizing that
CPPFLAGS was C Pre-Processor as opposed to C++.

Would it be better to patch out configure.ac here instead of using CFLAGS?
I imagine the main way people learn to prepare packages is by looking at
other packages, and so this might throw people off.

On Thu, Apr 7, 2016 at 1:50 PM, Baruch Siach <baruch@tkos.co.il> wrote:

> Hi Justin,
>
> On Thu, Apr 07, 2016 at 11:37:03AM -0600, Justin Berger wrote:
> > What is the reason for CXXFLAGS over CPPFLAGS?
>
> CPPFLAGS is usually for options that affect the C pre-processor. The most
> common pre-processor options are -I (include path), and -D (for macros).
> CXXFLAGS is for C++ options like -std=c++11. See
> http://www.gnu.org/software/make/manual/html_node/Implicit-Variables.html.
>
> > I'm not sure why exactly but this package in particular doesn't seem to
> look
> > at CXXFLAGS if CPPFLAGS is present (which it is due to the
> autotools-package
> > internals it seems), and so doesn't catch the C++11 flag and won't
> compile
> > after that.
>
> Unfortunately configure.ac does
>
>   CXXFLAGS="$CFLAGS"
>
> which overwrites the environment CXXFLAGS. It should have been
>
>   CXXFLAGS="$CXXFLAGS $CFLAGS"
>
> In this case I think you should use CFLAGS.
>
> > I was a little unsure on best practice for setting that flag, so I
> > basically just copied what directfb.mk does on line 132; where it uses
> > CPPFLAGS.
>
> That's because this line adds a pre-processor -I option.
>
> > Although searching through I see sort of an even spread of CXX vs CPP
> among
> > autotools packages. But if there is a way to go with CXXFLAGS and have it
> > work, I have no preference one way or the other.
>
> baruch
>
> > On Tue, Apr 5, 2016 at 10:33 PM, Baruch Siach <baruch@tkos.co.il> wrote:
> > > On Tue, Apr 05, 2016 at 08:47:16PM -0600, Justin Berger wrote:
> > > >
> > >
> +################################################################################
> > > > +#
> > > > +# ilixi
> > > > +#
> > > >
> > >
> +################################################################################
> > > > +
> > > > +ILIXI_VERSION = 1.0.0
> > > > +ILIXI_SITE = http://ilixi.org/releases
> > > > +ILIXI_LICENSE = LGPLv3+, GPLV3+ (osk utf8-decoder)
> > > > +ILIXI_LICENSE_FILES = COPYING.LESSER COPYING
> > > > +ILIXI_INSTALL_STAGING = YES
> > > > +
> > > > +ILIXI_DEPENDENCIES =         \
> > > > +     libsigc         \
> > > > +     libxml2         \
> > > > +     directfb        \
> > > > +     fontconfig      \
> > > > +
> > > > +ifeq ($(BR2_PACKAGE_SAWMAN),y)
> > > > +     ILIXI_CONF_OPTS += --enable-sawman
> > > > +     ILIXI_DEPENDENCIES += sawman
> > > > +else
> > > > +     ILIXI_CONF_OPTS += --disable-sawman
> > > > +endif
> > > > +
> > > > +ILIXI_CONF_ENV = CPPFLAGS="$(TARGET_CPPFLAGS) -std=c++11"
> > >
> > > Should be CXXFLAGS and TARGET_CXXFLAGS.
>
> --
>      http://baruch.siach.name/blog/                  ~. .~   Tk Open
> Systems
> =}------------------------------------------------ooO--U--Ooo------------{=
>    - baruch@tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -
>
Baruch Siach April 7, 2016, 8:24 p.m. UTC | #7
On Thu, Apr 07, 2016 at 02:10:37PM -0600, Justin Berger wrote:
> Ah. That makes sense, I feel somewhat chagrined for never realizing that
> CPPFLAGS was C Pre-Processor as opposed to C++.
> 
> Would it be better to patch out configure.ac here instead of using CFLAGS?

If you push such a patch upstream that would be best. Upstream takes pull 
requests at https://github.com/ilixi/ilixi, so that shouldn't be hard.

> I imagine the main way people learn to prepare packages is by looking at
> other packages, and so this might throw people off.

baruch

> On Thu, Apr 7, 2016 at 1:50 PM, Baruch Siach <baruch@tkos.co.il> wrote:
> > On Thu, Apr 07, 2016 at 11:37:03AM -0600, Justin Berger wrote:
> > > What is the reason for CXXFLAGS over CPPFLAGS?
> >
> > CPPFLAGS is usually for options that affect the C pre-processor. The most
> > common pre-processor options are -I (include path), and -D (for macros).
> > CXXFLAGS is for C++ options like -std=c++11. See
> > http://www.gnu.org/software/make/manual/html_node/Implicit-Variables.html.
> >
> > > I'm not sure why exactly but this package in particular doesn't seem to
> > look
> > > at CXXFLAGS if CPPFLAGS is present (which it is due to the
> > autotools-package
> > > internals it seems), and so doesn't catch the C++11 flag and won't
> > compile
> > > after that.
> >
> > Unfortunately configure.ac does
> >
> >   CXXFLAGS="$CFLAGS"
> >
> > which overwrites the environment CXXFLAGS. It should have been
> >
> >   CXXFLAGS="$CXXFLAGS $CFLAGS"
> >
> > In this case I think you should use CFLAGS.
> >
> > > I was a little unsure on best practice for setting that flag, so I
> > > basically just copied what directfb.mk does on line 132; where it uses
> > > CPPFLAGS.
> >
> > That's because this line adds a pre-processor -I option.
> >
> > > Although searching through I see sort of an even spread of CXX vs CPP
> > among
> > > autotools packages. But if there is a way to go with CXXFLAGS and have it
> > > work, I have no preference one way or the other.
> >
> > baruch
> >
> > > On Tue, Apr 5, 2016 at 10:33 PM, Baruch Siach <baruch@tkos.co.il> wrote:
> > > > On Tue, Apr 05, 2016 at 08:47:16PM -0600, Justin Berger wrote:
> > > > >
> > > >
> > +################################################################################
> > > > > +#
> > > > > +# ilixi
> > > > > +#
> > > > >
> > > >
> > +################################################################################
> > > > > +
> > > > > +ILIXI_VERSION = 1.0.0
> > > > > +ILIXI_SITE = http://ilixi.org/releases
> > > > > +ILIXI_LICENSE = LGPLv3+, GPLV3+ (osk utf8-decoder)
> > > > > +ILIXI_LICENSE_FILES = COPYING.LESSER COPYING
> > > > > +ILIXI_INSTALL_STAGING = YES
> > > > > +
> > > > > +ILIXI_DEPENDENCIES =         \
> > > > > +     libsigc         \
> > > > > +     libxml2         \
> > > > > +     directfb        \
> > > > > +     fontconfig      \
> > > > > +
> > > > > +ifeq ($(BR2_PACKAGE_SAWMAN),y)
> > > > > +     ILIXI_CONF_OPTS += --enable-sawman
> > > > > +     ILIXI_DEPENDENCIES += sawman
> > > > > +else
> > > > > +     ILIXI_CONF_OPTS += --disable-sawman
> > > > > +endif
> > > > > +
> > > > > +ILIXI_CONF_ENV = CPPFLAGS="$(TARGET_CPPFLAGS) -std=c++11"
> > > >
> > > > Should be CXXFLAGS and TARGET_CXXFLAGS.
Thomas Petazzoni April 8, 2016, 3 a.m. UTC | #8
Hello,

Thanks for this contribution! See my review below for some comments.

On Tue,  5 Apr 2016 20:47:16 -0600, Justin Berger wrote:

> diff --git a/package/ilixi/0001-Added-ifdef-around-iconv.patch b/package/ilixi/0001-Added-ifdef-around-iconv.patch
> new file mode 100644
> index 0000000..a341c8c
> --- /dev/null
> +++ b/package/ilixi/0001-Added-ifdef-around-iconv.patch
> @@ -0,0 +1,28 @@
> +From 3e2844eead42ac4e17835f5e59746a52ad0caf76 Mon Sep 17 00:00:00 2001
> +From: Justin Berger <j.david.berger@gmail.com>
> +Date: Tue, 5 Apr 2016 20:06:11 -0600
> +Subject: [PATCH] Added ifdef around iconv

This is not really a great title. A better title IMO could be:

	Fix building with locale support

> +Locale support in ilixi is a conditional dependency, and is only used when the libwnn dependency is also met. 

This should be wrapped to 80 characters. And you need to Signed-off-by
your patches.

Also, please submit this patch upstream.

> diff --git a/package/ilixi/Config.in b/package/ilixi/Config.in
> new file mode 100644
> index 0000000..54e7b04
> --- /dev/null
> +++ b/package/ilixi/Config.in
> @@ -0,0 +1,26 @@
> +config BR2_PACKAGE_ILIXI
> +	bool "ilixi"
> +	depends on BR2_INSTALL_LIBSTDCPP
> +	depends on BR2_TOOLCHAIN_HAS_THREADS
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 # C++11
> +	depends on !BR2_TOOLCHAIN_USES_MUSL # directfb
> +	depends on BR2_TOOLCHAIN_HAS_SYNC_4 # directfb
> +	depends on BR2_USE_WCHAR
> +	select BR2_PACKAGE_DIRECTFB
> +	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.

Not related to the review itself, but I find it odd to use things based
on DirectFB these days. The project is dead, the web site has been dead
for over a year now, etc.

> +comment "ilixi needs a toolchain w/ C++, threads, wchar, gcc >= 4.7"

"needs a glibc/uclibc toolchain w/"

> diff --git a/package/ilixi/ilixi.mk b/package/ilixi/ilixi.mk
> new file mode 100644
> index 0000000..cde9af3
> --- /dev/null
> +++ b/package/ilixi/ilixi.mk
> @@ -0,0 +1,28 @@
> +################################################################################
> +#
> +# ilixi
> +#
> +################################################################################
> +
> +ILIXI_VERSION = 1.0.0
> +ILIXI_SITE = http://ilixi.org/releases
> +ILIXI_LICENSE = LGPLv3+, GPLV3+ (osk utf8-decoder)
> +ILIXI_LICENSE_FILES = COPYING.LESSER COPYING
> +ILIXI_INSTALL_STAGING = YES
> +
> +ILIXI_DEPENDENCIES = 	\
> +	libsigc 	\
> +	libxml2 	\
> +	directfb 	\

We typically don't indent the \

> +	fontconfig	\

This last \ is not needed.

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

The sawman package no longer exists in Buildroot. Please make sure to
send your patch against the latest version of Buildroot. Sawman is now
part of DirectFB itself.

Does ilixi has some optional dependencies? According to your patch, it
can optional depend on libwnn. If that's the case, then please add the
relevant --disable-<foo> or --without-<bar> configuration options to
explicitly disable all those optional dependencies.

Thanks!

Thomas
diff mbox

Patch

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/0001-Added-ifdef-around-iconv.patch b/package/ilixi/0001-Added-ifdef-around-iconv.patch
new file mode 100644
index 0000000..a341c8c
--- /dev/null
+++ b/package/ilixi/0001-Added-ifdef-around-iconv.patch
@@ -0,0 +1,28 @@ 
+From 3e2844eead42ac4e17835f5e59746a52ad0caf76 Mon Sep 17 00:00:00 2001
+From: Justin Berger <j.david.berger@gmail.com>
+Date: Tue, 5 Apr 2016 20:06:11 -0600
+Subject: [PATCH] Added ifdef around iconv
+
+Locale support in ilixi is a conditional dependency, and is only used when the libwnn dependency is also met. 
+
+---
+ ilixi/lib/InputHelperJP.cpp | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/ilixi/lib/InputHelperJP.cpp b/ilixi/lib/InputHelperJP.cpp
+index 95d0da4..72c5f3f 100644
+--- a/ilixi/lib/InputHelperJP.cpp
++++ b/ilixi/lib/InputHelperJP.cpp
+@@ -26,7 +26,9 @@
+ #include <lib/utf8.h>
+ #include <core/Logger.h>
+ #include <directfb.h>
++#if ILIXI_HAVE_LIBWNN
+ #include <iconv.h>
++#endif
+ #include <stdlib.h>
+ #include <stdint.h>
+ #include <string.h>
+-- 
+2.1.4
+
diff --git a/package/ilixi/Config.in b/package/ilixi/Config.in
new file mode 100644
index 0000000..54e7b04
--- /dev/null
+++ b/package/ilixi/Config.in
@@ -0,0 +1,26 @@ 
+config BR2_PACKAGE_ILIXI
+	bool "ilixi"
+	depends on BR2_INSTALL_LIBSTDCPP
+	depends on BR2_TOOLCHAIN_HAS_THREADS
+	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 # C++11
+	depends on !BR2_TOOLCHAIN_USES_MUSL # directfb
+	depends on BR2_TOOLCHAIN_HAS_SYNC_4 # directfb
+	depends on BR2_USE_WCHAR
+	select BR2_PACKAGE_DIRECTFB
+	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.
+
+	  http://www.ilixi.org
+
+comment "ilixi needs a toolchain w/ C++, threads, wchar, gcc >= 4.7"
+	depends on BR2_TOOLCHAIN_HAS_SYNC_4
+	depends on !BR2_INSTALL_LIBSTDCPP	   ||	\
+		   !BR2_TOOLCHAIN_HAS_THREADS 	   ||	\
+		   !BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 ||	\
+		   !BR2_USE_WCHAR                  ||   \
+		   BR2_TOOLCHAIN_USES_MUSL
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..cde9af3
--- /dev/null
+++ b/package/ilixi/ilixi.mk
@@ -0,0 +1,28 @@ 
+################################################################################
+#
+# ilixi
+#
+################################################################################
+
+ILIXI_VERSION = 1.0.0
+ILIXI_SITE = http://ilixi.org/releases
+ILIXI_LICENSE = LGPLv3+, GPLV3+ (osk utf8-decoder)
+ILIXI_LICENSE_FILES = COPYING.LESSER COPYING
+ILIXI_INSTALL_STAGING = YES
+
+ILIXI_DEPENDENCIES = 	\
+	libsigc 	\
+	libxml2 	\
+	directfb 	\
+	fontconfig	\
+
+ifeq ($(BR2_PACKAGE_SAWMAN),y)
+	ILIXI_CONF_OPTS += --enable-sawman
+	ILIXI_DEPENDENCIES += sawman
+else
+	ILIXI_CONF_OPTS += --disable-sawman
+endif
+
+ILIXI_CONF_ENV = CPPFLAGS="$(TARGET_CPPFLAGS) -std=c++11"
+
+$(eval $(autotools-package))