[PATCH] Add HarfBuzz support to the build system

Khaled Hosny (via Code Review) gerrit at gerrit.libreoffice.org
Sun Apr 21 01:19:15 PDT 2013


Hi,

I have submitted a patch for review:

    https://gerrit.libreoffice.org/3517

To pull it, you can do:

    git pull ssh://gerrit.libreoffice.org:29418/core refs/changes/17/3517/1

Add HarfBuzz support to the build system

To be used in the next commit. No support for non-system build, yet.

Change-Id: I6ee286d0c050a5ca650e7fb3692b0facccb5f0c0
---
M RepositoryExternal.mk
M config_host.mk.in
A config_host/config_harfbuzz.h.in
M configure.ac
M vcl/Library_vcl.mk
5 files changed, 64 insertions(+), 0 deletions(-)



diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk
index df44d2d..2707a23 100644
--- a/RepositoryExternal.mk
+++ b/RepositoryExternal.mk
@@ -1186,6 +1186,39 @@
 
 endif # SYSTEM_ICU
 
+ifeq ($(SYSTEM_HARFBUZZ),YES)
+
+define gb_LinkTarget__use_harfbuzz
+$(call gb_LinkTarget_set_include,$(1),\
+	$$(INCLUDE) \
+	$(HARFBUZZ_CFLAGS) \
+)
+$(call gb_LinkTarget_add_libs,$(1),$(HARFBUZZ_LIBS))
+
+endef
+
+else ifeq ($(SYSTEM_HARFBUZZ),NO)
+
+$(eval $(call gb_Helper_register_static_libraries,PLAINLIBS, \
+	harfbuzz \
+))
+define gb_LinkTarget__use_harfbuzz
+$(call gb_LinkTarget_use_unpacked,$(1),harfbuzz)
+$(call gb_LinkTarget_set_include,$(1),\
+	-I$(call gb_UnpackedTarball_get_dir,harfbuzz/include) \
+	$$(INCLUDE) \
+)
+$(call gb_LinkTarget_use_static_libraries,$(1),\
+    harfbuzz \
+)
+
+endef
+
+else # DISABLED HARFBUZZ
+
+gb_LinkTarget__use_harfbuzz :=
+
+endif # SYSTEM_HARFBUZZ
 
 ifeq ($(DISABLE_OPENSSL),YES)
 
diff --git a/config_host.mk.in b/config_host.mk.in
index 4256fa7..ad33e7d 100644
--- a/config_host.mk.in
+++ b/config_host.mk.in
@@ -122,6 +122,7 @@
 export ENABLE_GIO=@ENABLE_GIO@
 export ENABLE_GNOMEVFS=@ENABLE_GNOMEVFS@
 export ENABLE_GRAPHITE=@ENABLE_GRAPHITE@
+export ENABLE_HARFBUZZ=@ENABLE_HARFBUZZ@
 export ENABLE_GSTREAMER=@ENABLE_GSTREAMER@
 export ENABLE_GSTREAMER_0_10=@ENABLE_GSTREAMER_0_10@
 export ENABLE_GTK3=@ENABLE_GTK3@
@@ -196,6 +197,8 @@
 export GPERF=@GPERF@
 export GRAPHITE_CFLAGS=$(gb_SPACE)@GRAPHITE_CFLAGS@
 export GRAPHITE_LIBS=$(gb_SPACE)@GRAPHITE_LIBS@
+export HARFBUZZ_CFLAGS=$(gb_SPACE)@HARFBUZZ_CFLAGS@
+export HARFBUZZ_LIBS=$(gb_SPACE)@HARFBUZZ_LIBS@
 @x_Cygwin@ export GREP=@WIN_GREP@
 export GSSAPI_LIBS=@GSSAPI_LIBS@
 export GSTREAMER_0_10_CFLAGS=$(gb_SPACE)@GSTREAMER_0_10_CFLAGS@
@@ -478,6 +481,7 @@
 export SYSTEM_GENCCODE=@SYSTEM_GENCCODE@
 export SYSTEM_GENCMN=@SYSTEM_GENCMN@
 export SYSTEM_GRAPHITE=@SYSTEM_GRAPHITE@
+export SYSTEM_HARFBUZZ=@SYSTEM_HARFBUZZ@
 export SYSTEM_HSQLDB=@SYSTEM_HSQLDB@
 export SYSTEM_HUNSPELL=@SYSTEM_HUNSPELL@
 export SYSTEM_HYPH=@SYSTEM_HYPH@
diff --git a/config_host/config_harfbuzz.h.in b/config_host/config_harfbuzz.h.in
new file mode 100644
index 0000000..b408f52
--- /dev/null
+++ b/config_host/config_harfbuzz.h.in
@@ -0,0 +1,6 @@
+#ifndef CONFIG_HARFBUZZ_H
+#define CONFIG_HARFBUZZ_H
+
+#define ENABLE_HARFBUZZ 0
+
+#endif
diff --git a/configure.ac b/configure.ac
index 2152487..6b844d6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -720,6 +720,11 @@
         [Enables the compilation of Graphite smart font rendering.])
 )
 
+AC_ARG_ENABLE(harfbuzz,
+    AS_HELP_STRING([--enable-harfbuzz],
+        [Determines whether to use HarfBuzz text layout engine.])
+)
+
 AC_ARG_ENABLE(fetch-external,
     AS_HELP_STRING([--disable-fetch-external],
         [Disables fetching external tarballs from web sources.])
@@ -8378,6 +8383,20 @@
 AC_SUBST(ENABLE_GRAPHITE)
 
 dnl ===================================================================
+dnl HarfBuzz
+dnl ===================================================================
+AC_MSG_CHECKING([whether to enable HarfBuzz support])
+if test "$_os" != "WINNT" -a "$_os" != "Darwin" && test "$enable_harfbuzz" = "" -o "$enable_harfbuzz" != "no"; then
+    AC_MSG_RESULT([yes])
+    ENABLE_HARFBUZZ="TRUE"
+    AC_DEFINE(ENABLE_HARFBUZZ)
+    libo_CHECK_SYSTEM_MODULE([harfbuzz],[HARFBUZZ],[harfbuzz >= 0.9.10])
+else
+    AC_MSG_RESULT([no])
+fi
+AC_SUBST(ENABLE_HARFBUZZ)
+
+dnl ===================================================================
 dnl Check for NPAPI interface to plug browser plugins into LibreOffice documents
 dnl ===================================================================
 AC_MSG_CHECKING([whether to plug browser plugins into LibreOffice documents])
@@ -11880,6 +11899,7 @@
 AC_CONFIG_HEADERS([config_host/config_features.h])
 AC_CONFIG_HEADERS([config_host/config_global.h])
 AC_CONFIG_HEADERS([config_host/config_graphite.h])
+AC_CONFIG_HEADERS([config_host/config_harfbuzz.h])
 AC_CONFIG_HEADERS([config_host/config_kde4.h])
 AC_CONFIG_HEADERS([config_host/config_mingw.h])
 AC_CONFIG_HEADERS([config_host/config_oox.h])
diff --git a/vcl/Library_vcl.mk b/vcl/Library_vcl.mk
index 17d1ef6..870dbd7 100644
--- a/vcl/Library_vcl.mk
+++ b/vcl/Library_vcl.mk
@@ -340,6 +340,7 @@
 endif
 
 $(eval $(call gb_Library_use_external,vcl,graphite))
+$(eval $(call gb_Library_use_externals,vcl,harfbuzz))
 
 endif
 

-- 
To view, visit https://gerrit.libreoffice.org/3517
To unsubscribe, visit https://gerrit.libreoffice.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I6ee286d0c050a5ca650e7fb3692b0facccb5f0c0
Gerrit-PatchSet: 1
Gerrit-Project: core
Gerrit-Branch: master
Gerrit-Owner: Khaled Hosny <khaledhosny at eglug.org>



More information about the LibreOffice mailing list