[PATCH] Add HarfBuzz support to the build system

Khaled Hosny khaledhosny at eglug.org
Sun Apr 21 01:51:34 PDT 2013


Hi,

I didn't know that it will submit each commit separately (git review),
should I abandon this and the next commits and squash them into one?

Also, there are some unresolved issues that I can't handle, may be
submitting to gerrit wasn't the best idea after all.

Regards,
Khaled

On Sun, Apr 21, 2013 at 08:19:15AM +0000, Khaled Hosny (via Code Review) wrote:
> 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>
> 
> _______________________________________________
> LibreOffice mailing list
> LibreOffice at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/libreoffice


More information about the LibreOffice mailing list