Patchwork [v3] harfbuzz: New package

login
register
mail settings
Submitter Markos Chandras
Date Aug. 22, 2013, 9:32 p.m.
Message ID <1377207164-10433-1-git-send-email-markos.chandras@imgtec.com>
Download mbox | patch
Permalink /patch/269216/
State Accepted
Headers show

Comments

Markos Chandras - Aug. 22, 2013, 9:32 p.m.
HarfBuzz is an OpenType text shaping engine

http://www.freedesktop.org/wiki/Software/HarfBuzz/

Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
---
Changes since v2:
- Drop BR2_PACKAGE_HARFBUZZ_* symbols. We enable/disable
these options if the respective packages are selected.
- Fix license name for each component.
Suggested by Arnout Vandecappelle
http://lists.busybox.net/pipermail/buildroot/2013-August/076728.html

Changes since v1:
- Fix alphabetical order in package/Config.in
- Rename 'LIBSTDCPP support' to 'C++ support'
---
 package/Config.in            |  1 +
 package/harfbuzz/Config.in   |  9 +++++++++
 package/harfbuzz/harfbuzz.mk | 44 ++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 54 insertions(+)
 create mode 100644 package/harfbuzz/Config.in
 create mode 100644 package/harfbuzz/harfbuzz.mk
Peter Korsgaard - Aug. 27, 2013, 8:09 p.m.
>>>>> "Markos" == Markos Chandras <markos.chandras@imgtec.com> writes:

 Markos> HarfBuzz is an OpenType text shaping engine
 Markos> http://www.freedesktop.org/wiki/Software/HarfBuzz/

 Markos> Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
 Markos> ---
 Markos> Changes since v2:
 Markos> - Drop BR2_PACKAGE_HARFBUZZ_* symbols. We enable/disable
 Markos> these options if the respective packages are selected.
 Markos> - Fix license name for each component.
 Markos> Suggested by Arnout Vandecappelle
 Markos> http://lists.busybox.net/pipermail/buildroot/2013-August/076728.html

 Markos> Changes since v1:
 Markos> - Fix alphabetical order in package/Config.in
 Markos> - Rename 'LIBSTDCPP support' to 'C++ support'
 Markos> ---
 Markos>  package/Config.in            |  1 +
 Markos>  package/harfbuzz/Config.in   |  9 +++++++++
 Markos>  package/harfbuzz/harfbuzz.mk | 44 ++++++++++++++++++++++++++++++++++++++++++++
 Markos>  3 files changed, 54 insertions(+)
 Markos>  create mode 100644 package/harfbuzz/Config.in
 Markos>  create mode 100644 package/harfbuzz/harfbuzz.mk

 Markos> diff --git a/package/Config.in b/package/Config.in
 Markos> index 7069d77..1b06755 100644
 Markos> --- a/package/Config.in
 Markos> +++ b/package/Config.in
 Markos> @@ -130,6 +130,7 @@ endif
 Markos>  source "package/fbterm/Config.in"
 Markos>  source "package/fbv/Config.in"
 Markos>  source "package/fb-test-app/Config.in"
 Markos> +source "package/harfbuzz/Config.in"

I think it makes more sense to put it under Libraries->Graphics like
E.G. freetype.

 Markos>  source "package/imagemagick/Config.in"
 Markos>  source "package/linux-fusion/Config.in"
 Markos>  source "package/lite/Config.in"
 Markos> diff --git a/package/harfbuzz/Config.in b/package/harfbuzz/Config.in
 Markos> new file mode 100644
 Markos> index 0000000..fb5fc8f
 Markos> --- /dev/null
 Markos> +++ b/package/harfbuzz/Config.in
 Markos> @@ -0,0 +1,9 @@
 Markos> +config BR2_PACKAGE_HARFBUZZ
 Markos> +	bool "harfbuzz"
 Markos> +	help
 Markos> +	  HarfBuzz is an OpenType text shaping engine
 Markos> +
 Markos> +	  http://www.freedesktop.org/wiki/Software/HarfBuzz/
 Markos> +
 Markos> +	  Harfbuzz can make optional use of cairo, freetype,
 Markos> +	  glib2 and icu packages if they are selected.

It is written in C++, so it need to depend on BR2_INSTALL_LIBSTDCPP

Committed to next with these changes, thanks.

Patch

diff --git a/package/Config.in b/package/Config.in
index 7069d77..1b06755 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -130,6 +130,7 @@  endif
 source "package/fbterm/Config.in"
 source "package/fbv/Config.in"
 source "package/fb-test-app/Config.in"
+source "package/harfbuzz/Config.in"
 source "package/imagemagick/Config.in"
 source "package/linux-fusion/Config.in"
 source "package/lite/Config.in"
diff --git a/package/harfbuzz/Config.in b/package/harfbuzz/Config.in
new file mode 100644
index 0000000..fb5fc8f
--- /dev/null
+++ b/package/harfbuzz/Config.in
@@ -0,0 +1,9 @@ 
+config BR2_PACKAGE_HARFBUZZ
+	bool "harfbuzz"
+	help
+	  HarfBuzz is an OpenType text shaping engine
+
+	  http://www.freedesktop.org/wiki/Software/HarfBuzz/
+
+	  Harfbuzz can make optional use of cairo, freetype,
+	  glib2 and icu packages if they are selected.
diff --git a/package/harfbuzz/harfbuzz.mk b/package/harfbuzz/harfbuzz.mk
new file mode 100644
index 0000000..00651fd
--- /dev/null
+++ b/package/harfbuzz/harfbuzz.mk
@@ -0,0 +1,44 @@ 
+################################################################################
+#
+# harfbuzz
+#
+################################################################################
+
+HARFBUZZ_VERSION = 0.9.19
+HARFBUZZ_SITE = http://www.freedesktop.org/software/harfbuzz/release/
+HARFBUZZ_SOURCE = harfbuzz-$(HARFBUZZ_VERSION).tar.bz2
+HARFBUZZ_LICENSE = MIT, ISC (ucdn library), ICU License (icu support library)
+HARFBUZZ_LICENSE_FILES = COPYING src/hb-ucdn/COPYING src/hb-icu-le/COPYING
+HARFBUZZ_INSTALL_STAGING = YES
+
+HARFBUZZ_CONF_OPT = --without-coretext --without-uniscribe --without-graphite2
+
+ifeq ($(BR2_PACKAGE_CAIRO),y)
+	HARFBUZZ_DEPENDENCIES += cairo
+	HARFBUZZ_CONF_OPT += --with-cairo=yes
+else
+	HARFBUZZ_CONF_OPT += --with-cairo=no
+endif
+
+ifeq ($(BR2_PACKAGE_FREETYPE),y)
+	HARFBUZZ_DEPENDENCIES += freetype
+	HARFBUZZ_CONF_OPT += --with-freetype=yes
+else
+	HARFBUZZ_CONF_OPT += --with-freetype=no
+endif
+
+ifeq ($(BR2_PACKAGE_LIBGLIB2),y)
+	HARFBUZZ_DEPENDENCIES += libglib2
+	HARFBUZZ_CONF_OPT += --with-glib=yes
+else
+	HARFBUZZ_CONF_OPT += --with-glib=no
+endif
+
+ifeq ($(BR2_PACKAGE_ICU),y)
+	HARFBUZZ_DEPENDENCIES += icu
+	HARFBUZZ_CONF_OPT += --with-icu=yes
+else
+	HARFBUZZ_CONF_OPT += --with-icu=no
+endif
+
+$(eval $(autotools-package))