diff options
-rw-r--r-- | Makefile.fetch | 1 | ||||
-rw-r--r-- | RepositoryExternal.mk | 33 | ||||
-rw-r--r-- | RepositoryModule_host.mk | 1 | ||||
-rw-r--r-- | config_host.mk.in | 4 | ||||
-rw-r--r-- | config_host/config_harfbuzz.h.in | 6 | ||||
-rw-r--r-- | configure.ac | 20 | ||||
-rw-r--r-- | download.lst | 1 | ||||
-rw-r--r-- | harfbuzz/ExternalPackage_harfbuzz.mk | 34 | ||||
-rw-r--r-- | harfbuzz/ExternalProject_harfbuzz.mk | 37 | ||||
-rw-r--r-- | harfbuzz/Makefile | 7 | ||||
-rw-r--r-- | harfbuzz/Module_harfbuzz.mk | 22 | ||||
-rw-r--r-- | harfbuzz/README | 1 | ||||
-rw-r--r-- | harfbuzz/UnpackedTarball_harfbuzz.mk | 18 | ||||
-rw-r--r-- | harfbuzz/harfbuzz.configure.patch.1 | 93 | ||||
-rw-r--r-- | vcl/Library_vcl.mk | 1 | ||||
-rw-r--r-- | vcl/Library_vclplug_gen.mk | 1 |
16 files changed, 280 insertions, 0 deletions
diff --git a/Makefile.fetch b/Makefile.fetch index bfc882db6034..e683f28ed5fb 100644 --- a/Makefile.fetch +++ b/Makefile.fetch @@ -112,6 +112,7 @@ $(WORKDIR)/download: $(BUILDDIR)/config_host.mk $(SRCDIR)/download.lst $(SRCDIR) $(call fetch_Optional,GLIBC,$(GLIBC_TARBALL)) \ $(call fetch_Optional,HSQLDB,$(HSQLDB_TARBALL)) \ $(call fetch_Optional,HUNSPELL,$(HUNSPELL_TARBALL)) \ + $(call fetch_Optional,HARFBUZZ,$(HARFBUZZ_TARBALL)) \ $(call fetch_Optional,HYPHEN,$(HYPHEN_TARBALL)) \ $(call fetch_Optional,ICU,$(ICU_TARBALL)) \ $(call fetch_Optional,JFREEREPORT,$(JFREEREPORT_FLOW_ENGINE_TARBALL)) \ diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk index f3ee5dd5eb04..807150d2cdb7 100644 --- a/RepositoryExternal.mk +++ b/RepositoryExternal.mk @@ -1186,6 +1186,39 @@ endef endif # SYSTEM_ICU +ifeq ($(ENABLE_HARFBUZZ),YES) +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 # SYSTEM_HARFBUZZ != YES + +$(eval $(call gb_Helper_register_static_libraries,PLAINLIBS, \ + harfbuzz \ +)) +define gb_LinkTarget__use_harfbuzz +$(call gb_LinkTarget_use_package,$(1),\ + harfbuzz \ +) +$(call gb_LinkTarget_use_static_libraries,$(1),\ + harfbuzz \ +) + +endef + +endif # SYSTEM_HARFBUZZ +else # ENABLE_HARFBUZZ != YES + +gb_LinkTarget__use_harfbuzz := + +endif # ENABLE_HARFBUZZ ifeq ($(DISABLE_OPENSSL),YES) diff --git a/RepositoryModule_host.mk b/RepositoryModule_host.mk index b9854f76fb3e..1b939f139214 100644 --- a/RepositoryModule_host.mk +++ b/RepositoryModule_host.mk @@ -72,6 +72,7 @@ $(eval $(call gb_Module_add_moduledirs,libreoffice,\ framework \ $(call gb_Helper_optional,FREETYPE,freetype) \ $(call gb_Helper_optional,GRAPHITE,graphite) \ + $(call gb_Helper_optional,HARFBUZZ,harfbuzz) \ $(call gb_Helper_optional,DESKTOP,helpcompiler) \ $(call gb_Helper_optional,HELP,helpcontent2) \ $(call gb_Helper_optional,HSQLDB,hsqldb) \ diff --git a/config_host.mk.in b/config_host.mk.in index 4256fa7a03e9..ad33e7d4fb35 100644 --- a/config_host.mk.in +++ b/config_host.mk.in @@ -122,6 +122,7 @@ export ENABLE_GCONF=@ENABLE_GCONF@ 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 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_GENBRK=@SYSTEM_GENBRK@ 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 000000000000..b408f5234297 --- /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 21524877e973..6b844d6a304b 100644 --- a/configure.ac +++ b/configure.ac @@ -720,6 +720,11 @@ AC_ARG_ENABLE(graphite, [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 @@ fi 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_clang.h]) 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/download.lst b/download.lst index fe61f6f46ea9..bb1b2d67df73 100644 --- a/download.lst +++ b/download.lst @@ -38,6 +38,7 @@ export GRAPHITE_TARBALL := f5ef3f7f10fa8c3542c6a085a233080b-graphite2-1.2.0.tgz export GLIBC_TARBALL := 4a660ce8466c9df01f19036435425c3a-glibc-2.1.3-stub.tar.gz export HSQLDB_TARBALL := 17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip export HUNSPELL_TARBALL := 3121aaf3e13e5d88dfff13fb4a5f1ab8-hunspell-1.3.2.tar.gz +export HARFBUZZ_TARBALL := 90855e670c790c1fec4592908be3c0b8-harfbuzz-0.9.16.tar.bz2 export HYPHEN_TARBALL := a2f6010987e1c601274ab5d63b72c944-hyphen-2.8.4.tar.gz export ICU_TARBALL := 6eef33b229d0239d654983028c9c7053-icu4c-51_1-src.tgz export JFREEREPORT_FLOW_ENGINE_TARBALL := ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip diff --git a/harfbuzz/ExternalPackage_harfbuzz.mk b/harfbuzz/ExternalPackage_harfbuzz.mk new file mode 100644 index 000000000000..0894b2e79a77 --- /dev/null +++ b/harfbuzz/ExternalPackage_harfbuzz.mk @@ -0,0 +1,34 @@ +# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- +# +# This file is part of the LibreOffice project. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# + +$(eval $(call gb_ExternalPackage_ExternalPackage,harfbuzz,harfbuzz)) + +$(eval $(call gb_ExternalPackage_add_unpacked_files,harfbuzz,inc/external/harfbuzz,\ + src/hb.h \ + src/hb-blob.h \ + src/hb-buffer.h \ + src/hb-common.h \ + src/hb-font.h \ + src/hb-icu.h \ + src/hb-ot.h \ + src/hb-ot-layout.h \ + src/hb-ot-tag.h \ + src/hb-set.h \ + src/hb-shape.h \ + src/hb-shape-plan.h \ + src/hb-unicode.h \ + src/hb-version.h \ +)) + +$(eval $(call gb_ExternalPackage_use_external_project,harfbuzz,harfbuzz)) + +$(eval $(call gb_ExternalPackage_add_file,harfbuzz,lib/libharfbuzz.a,src/.libs/libharfbuzz.a)) + + +# vim: set noet sw=4 ts=4: diff --git a/harfbuzz/ExternalProject_harfbuzz.mk b/harfbuzz/ExternalProject_harfbuzz.mk new file mode 100644 index 000000000000..ef1d823ce268 --- /dev/null +++ b/harfbuzz/ExternalProject_harfbuzz.mk @@ -0,0 +1,37 @@ +# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- +# +# This file is part of the LibreOffice project. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# + +$(eval $(call gb_ExternalProject_ExternalProject,harfbuzz)) + +$(eval $(call gb_ExternalProject_use_unpacked,harfbuzz,harfbuzz)) + +$(eval $(call gb_ExternalProject_use_autoconf,harfbuzz,build)) + +$(eval $(call gb_ExternalProject_register_targets,harfbuzz,\ + build \ +)) + +$(eval $(call gb_ExternalProject_use_externals,harfbuzz,\ + icu \ +)) + +$(call gb_ExternalProject_get_state_target,harfbuzz,build) : + $(call gb_ExternalProject_run,build,\ + export ICU_LIBS=" " \ + && export ICU_CFLAGS="$(if $(filter NO,$(SYSTEM_ICU)),\ + -I$(call gb_UnpackedTarball_get_dir,icu)/source/i18n \ + -I$(call gb_UnpackedTarball_get_dir,icu)/source/common, )" \ + && ./configure \ + --enable-static \ + --disable-shared \ + $(if $(filter YES,$(CROSS_COMPILING)),--build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM)) \ + && (cd $(EXTERNAL_WORKDIR)/src && $(MAKE) libharfbuzz.la) \ + ) + +# vim: set noet sw=4 ts=4: diff --git a/harfbuzz/Makefile b/harfbuzz/Makefile new file mode 100644 index 000000000000..ccb1c85a04da --- /dev/null +++ b/harfbuzz/Makefile @@ -0,0 +1,7 @@ +# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- + +module_directory:=$(dir $(realpath $(firstword $(MAKEFILE_LIST)))) + +include $(module_directory)/../solenv/gbuild/partial_build.mk + +# vim: set noet sw=4 ts=4: diff --git a/harfbuzz/Module_harfbuzz.mk b/harfbuzz/Module_harfbuzz.mk new file mode 100644 index 000000000000..8eb9c170e274 --- /dev/null +++ b/harfbuzz/Module_harfbuzz.mk @@ -0,0 +1,22 @@ +# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- +# +# This file is part of the LibreOffice project. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# + +$(eval $(call gb_Module_Module,harfbuzz)) + +ifeq ($(SYSTEM_HARFBUZZ),NO) + +$(eval $(call gb_Module_add_targets,harfbuzz,\ + ExternalPackage_harfbuzz \ + ExternalProject_harfbuzz \ + UnpackedTarball_harfbuzz \ +)) + +endif + +# vim: set noet sw=4 ts=4: diff --git a/harfbuzz/README b/harfbuzz/README new file mode 100644 index 000000000000..d2af8b559ad1 --- /dev/null +++ b/harfbuzz/README @@ -0,0 +1 @@ +HarfBuzz is an OpenType text shaping engine. From [http://harfbuzz.org/]. diff --git a/harfbuzz/UnpackedTarball_harfbuzz.mk b/harfbuzz/UnpackedTarball_harfbuzz.mk new file mode 100644 index 000000000000..4b98988c9f91 --- /dev/null +++ b/harfbuzz/UnpackedTarball_harfbuzz.mk @@ -0,0 +1,18 @@ +# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- +# +# This file is part of the LibreOffice project. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# + +$(eval $(call gb_UnpackedTarball_UnpackedTarball,harfbuzz)) + +$(eval $(call gb_UnpackedTarball_set_tarball,harfbuzz,$(HARFBUZZ_TARBALL))) + +$(eval $(call gb_UnpackedTarball_add_patches,harfbuzz, \ + harfbuzz/harfbuzz.configure.patch.1 \ +)) + +# vim: set noet sw=4 ts=4: diff --git a/harfbuzz/harfbuzz.configure.patch.1 b/harfbuzz/harfbuzz.configure.patch.1 new file mode 100644 index 000000000000..dc83c86f5447 --- /dev/null +++ b/harfbuzz/harfbuzz.configure.patch.1 @@ -0,0 +1,93 @@ +diff -ur harfbuzz.org/configure harfbuzz/configure +--- harfbuzz.org/configure 2013-04-22 20:45:32.738213297 +0200 ++++ harfbuzz/configure 2013-04-22 20:46:56.334209801 +0200 +@@ -16813,7 +16885,7 @@ + + + +-have_hb_old=true ++have_hb_old=false + if $have_hb_old; then + + $as_echo "#define HAVE_HB_OLD 1" >>confdefs.h +@@ -16829,7 +16901,7 @@ + + + +-have_ucdn=true ++have_ucdn=false + if $have_ucdn; then + + $as_echo "#define HAVE_UCDN 1" >>confdefs.h +@@ -16914,7 +16986,7 @@ + GLIB_LIBS=$pkg_cv_GLIB_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + $as_echo "yes" >&6; } +- have_glib=true ++ have_glib=false + fi + if $have_glib; then + +@@ -16999,7 +17071,7 @@ + GOBJECT_LIBS=$pkg_cv_GOBJECT_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + $as_echo "yes" >&6; } +- have_gobject=true ++ have_gobject=false + fi + if $have_gobject; then + +@@ -17087,7 +17159,7 @@ + CAIRO_LIBS=$pkg_cv_CAIRO_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + $as_echo "yes" >&6; } +- have_cairo=true ++ have_cairo=false + fi + if $have_cairo; then + +@@ -17172,7 +17244,7 @@ + CAIRO_FT_LIBS=$pkg_cv_CAIRO_FT_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + $as_echo "yes" >&6; } +- have_cairo_ft=true ++ have_cairo_ft=false + fi + if $have_cairo_ft; then + +@@ -17457,7 +17529,7 @@ + ICU_LE_LIBS=$pkg_cv_ICU_LE_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + $as_echo "yes" >&6; } +- have_icu_le=true ++ have_icu_le=false + fi + if test "$have_icu_le" != "true"; then + if test -n "$ac_tool_prefix"; then +@@ -17654,7 +17726,7 @@ + GRAPHITE2_LIBS=$pkg_cv_GRAPHITE2_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + $as_echo "yes" >&6; } +- have_graphite=true ++ have_graphite=false + fi + if $have_graphite; then + +@@ -17740,7 +17812,7 @@ + FREETYPE_LIBS=$pkg_cv_FREETYPE_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + $as_echo "yes" >&6; } +- have_freetype=true ++ have_freetype=false + fi + if $have_freetype; then + +@@ -17825,7 +17897,7 @@ + ac_fn_c_check_type "$LINENO" "CTFontRef" "ac_cv_type_CTFontRef" "#include <ApplicationServices/ApplicationServices.h> + " + if test "x$ac_cv_type_CTFontRef" = xyes; then : +- have_coretext=true ++ have_coretext=false + else + have_coretext=false + fi diff --git a/vcl/Library_vcl.mk b/vcl/Library_vcl.mk index ab66d47f8559..69705ea0c5ae 100644 --- a/vcl/Library_vcl.mk +++ b/vcl/Library_vcl.mk @@ -347,6 +347,7 @@ $(eval $(call gb_Library_add_exception_objects,vcl,\ endif $(eval $(call gb_Library_use_external,vcl,graphite)) +$(eval $(call gb_Library_use_external,vcl,harfbuzz)) endif diff --git a/vcl/Library_vclplug_gen.mk b/vcl/Library_vclplug_gen.mk index bea09dbaace5..5aad457c36b5 100644 --- a/vcl/Library_vclplug_gen.mk +++ b/vcl/Library_vclplug_gen.mk @@ -47,6 +47,7 @@ $(eval $(call gb_Library_use_externals,vclplug_gen,\ boost_headers \ cairo \ graphite \ + harfbuzz \ icule \ icuuc \ valgrind \ |