diff options
author | Khaled Hosny <khaledhosny@eglug.org> | 2013-08-17 14:47:55 +0200 |
---|---|---|
committer | Fridrich Strba <fridrich@documentfoundation.org> | 2013-08-19 09:13:45 +0000 |
commit | 3bd7d5520fc15ee0e0cf930e73041ce6a18cb619 (patch) | |
tree | 8c13702e7c0be27aa6c298b9ff3bbd9bb0b41b90 | |
parent | acd9f66f2834c16650d37109650ed47e491a0241 (diff) |
Update internal HarfBuzz to 0.9.19
Change-Id: I520832508a8d419e394817a0e25949071928f612
Reviewed-on: https://gerrit.libreoffice.org/5478
Reviewed-by: Fridrich Strba <fridrich@documentfoundation.org>
Tested-by: Fridrich Strba <fridrich@documentfoundation.org>
-rw-r--r-- | Makefile.fetch | 2 | ||||
-rw-r--r-- | RepositoryExternal.mk | 1 | ||||
-rw-r--r-- | configure.ac | 6 | ||||
-rw-r--r-- | download.lst | 3 | ||||
-rw-r--r-- | harfbuzz/ExternalPackage_harfbuzz.mk | 5 | ||||
-rw-r--r-- | harfbuzz/ExternalProject_harfbuzz.mk | 6 | ||||
-rw-r--r-- | harfbuzz/UnpackedTarball_harfbuzz.mk | 5 | ||||
-rw-r--r-- | harfbuzz/harfbuzz-0.9.16-winxp.patch.1 | 137 | ||||
-rw-r--r-- | harfbuzz/harfbuzz.configure.patch.1 | 108 |
9 files changed, 14 insertions, 259 deletions
diff --git a/Makefile.fetch b/Makefile.fetch index 2ea9ac817af9..dbfcc5dbb039 100644 --- a/Makefile.fetch +++ b/Makefile.fetch @@ -77,6 +77,7 @@ $(WORKDIR)/download: $(BUILDDIR)/config_host.mk $(SRCDIR)/download.lst $(SRCDIR) $(call fetch_Optional,LIBATOMIC_OPS,LIBATOMIC_OPS_TARBALL) \ $(call fetch_Optional,CDR,CDR_TARBALL) \ $(call fetch_Optional,FIREBIRD,FIREBIRD_TARBALL) \ + $(call fetch_Optional,HARFBUZZ,HARFBUZZ_TARBALL) \ $(call fetch_Optional,MSPUB,MSPUB_TARBALL) \ $(call fetch_Optional,MWAW,MWAW_TARBALL) \ $(call fetch_Optional,VISIO,VISIO_TARBALL) \ @@ -114,7 +115,6 @@ $(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,ICU,$(ICU_51_LAYOUT_FIX_TARBALL)) \ diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk index 1015b6c88cd9..5962dc40906a 100644 --- a/RepositoryExternal.mk +++ b/RepositoryExternal.mk @@ -1246,6 +1246,7 @@ $(call gb_LinkTarget_use_package,$(1),\ ) $(call gb_LinkTarget_use_static_libraries,$(1),\ harfbuzz \ + harfbuzz-icu \ ) endef diff --git a/configure.ac b/configure.ac index b0514a03d499..eb08245495de 100644 --- a/configure.ac +++ b/configure.ac @@ -8910,11 +8910,7 @@ AC_MSG_CHECKING([whether to enable HarfBuzz support]) if test "$_os" != "WINNT" -a "$_os" != "Darwin"; then AC_MSG_RESULT([yes]) ENABLE_HARFBUZZ="TRUE" - if $PKG_CONFIG --atleast-version 0.9.18 harfbuzz; then - libo_CHECK_SYSTEM_MODULE([harfbuzz],[HARFBUZZ],[harfbuzz-icu >= 0.9.18]) - else - libo_CHECK_SYSTEM_MODULE([harfbuzz],[HARFBUZZ],[harfbuzz >= 0.9.10]) - fi + libo_CHECK_SYSTEM_MODULE([harfbuzz],[HARFBUZZ],[harfbuzz-icu >= 0.9.18]) else AC_MSG_RESULT([no]) fi diff --git a/download.lst b/download.lst index b8259aa35952..f859583a0118 100644 --- a/download.lst +++ b/download.lst @@ -10,6 +10,8 @@ FIREBIRD_MD5SUM := 21154d2004e025c8a3666625b0357bb5 export FIREBIRD_TARBALL := Firebird-2.5.2.26540-0.tar.bz2 # FIREBIRD_MD5SUM := b259c2d1c60a03bd104108405ae990a7 # export FIREBIRD_TARBALL := Firebird-3.0-alpha1-20130302.tar.gz +HARFBUZZ_MD5SUM := 9782581ee6ef972554772e84ca448131 +export HARFBUZZ_TARBALL := harfbuzz-0.9.19.tar.bz2 LIBATOMIC_OPS_MD5SUM := c0b86562d5aa40761a87134f83e6adcf export LIBATOMIC_OPS_TARBALL := libatomic_ops-7_2d.zip @@ -44,7 +46,6 @@ 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 := c48827713e93539dc7285f9e86ffbdc5-harfbuzz-0.9.17.tar.bz2 export HYPHEN_TARBALL := a2f6010987e1c601274ab5d63b72c944-hyphen-2.8.4.tar.gz export ICU_TARBALL := 6eef33b229d0239d654983028c9c7053-icu4c-51_1-src.tgz export ICU_51_LAYOUT_FIX_TARBALL := 7650341b04f05ff2595bf064f3e41f41-icu-51-layout-fix-10107.tgz diff --git a/harfbuzz/ExternalPackage_harfbuzz.mk b/harfbuzz/ExternalPackage_harfbuzz.mk index cb3339d21661..e6420aaec9c2 100644 --- a/harfbuzz/ExternalPackage_harfbuzz.mk +++ b/harfbuzz/ExternalPackage_harfbuzz.mk @@ -11,7 +11,10 @@ $(eval $(call gb_ExternalPackage_ExternalPackage,harfbuzz,harfbuzz)) $(eval $(call gb_ExternalPackage_use_external_project,harfbuzz,harfbuzz)) -$(eval $(call gb_ExternalPackage_add_file,harfbuzz,lib/libharfbuzz.a,src/.libs/libharfbuzz.a)) +$(eval $(call gb_ExternalPackage_add_files,harfbuzz,lib,\ + src/.libs/libharfbuzz.a \ + src/.libs/libharfbuzz-icu.a \ +)) # vim: set noet sw=4 ts=4: diff --git a/harfbuzz/ExternalProject_harfbuzz.mk b/harfbuzz/ExternalProject_harfbuzz.mk index 007e3dd0fc59..f49553d4b6c8 100644 --- a/harfbuzz/ExternalProject_harfbuzz.mk +++ b/harfbuzz/ExternalProject_harfbuzz.mk @@ -25,8 +25,12 @@ $(call gb_ExternalProject_get_state_target,harfbuzz,build) : --enable-static \ --disable-shared \ --with-pic \ + --with-icu=yes \ + --with-freetype=no \ + --with-cairo=no \ + --with-glib=no \ $(if $(filter YES,$(CROSS_COMPILING)),--build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM)) \ - && (cd $(EXTERNAL_WORKDIR)/src && $(MAKE) libharfbuzz.la) \ + && (cd $(EXTERNAL_WORKDIR)/src && $(MAKE)) \ ) # vim: set noet sw=4 ts=4: diff --git a/harfbuzz/UnpackedTarball_harfbuzz.mk b/harfbuzz/UnpackedTarball_harfbuzz.mk index 9c6d81f592eb..0bda2a186e2a 100644 --- a/harfbuzz/UnpackedTarball_harfbuzz.mk +++ b/harfbuzz/UnpackedTarball_harfbuzz.mk @@ -11,9 +11,4 @@ $(eval $(call gb_UnpackedTarball_UnpackedTarball,harfbuzz)) $(eval $(call gb_UnpackedTarball_set_tarball,harfbuzz,$(HARFBUZZ_TARBALL),,harfbuzz)) -$(eval $(call gb_UnpackedTarball_add_patches,harfbuzz, \ - harfbuzz/harfbuzz.configure.patch.1 \ - harfbuzz/harfbuzz-0.9.16-winxp.patch.1 \ -)) - # vim: set noet sw=4 ts=4: diff --git a/harfbuzz/harfbuzz-0.9.16-winxp.patch.1 b/harfbuzz/harfbuzz-0.9.16-winxp.patch.1 deleted file mode 100644 index 3787136039bb..000000000000 --- a/harfbuzz/harfbuzz-0.9.16-winxp.patch.1 +++ /dev/null @@ -1,137 +0,0 @@ ---- harfbuzz-0.9.16/src/hb-uniscribe.cc 2013-04-19 03:36:12.000000000 +0200 -+++ harfbuzz-0.9.16/src/hb-uniscribe.cc 2013-05-08 17:13:37.874217344 +0200 -@@ -44,6 +44,10 @@ - #endif - - -+typedef HRESULT WINAPI (*SIOT)(const WCHAR*,int,int,const SCRIPT_CONTROL*,const SCRIPT_STATE*,SCRIPT_ITEM*,OPENTYPE_TAG*,int*); -+typedef HRESULT WINAPI (*SSOT)(HDC,SCRIPT_CACHE*,SCRIPT_ANALYSIS*,OPENTYPE_TAG,OPENTYPE_TAG,int*,TEXTRANGE_PROPERTIES**,int,const WCHAR*,int,int,WORD*,SCRIPT_CHARPROP*,WORD*,SCRIPT_GLYPHPROP*,int*); -+typedef HRESULT WINAPI (*SPOT)(HDC,SCRIPT_CACHE*,SCRIPT_ANALYSIS*,OPENTYPE_TAG,OPENTYPE_TAG,int*,TEXTRANGE_PROPERTIES**,int,const WCHAR*,const WORD*,const SCRIPT_CHARPROP*,int,const WORD*,const SCRIPT_GLYPHPROP*,int,int*,GOFFSET*,ABC*); -+ - /* - DWORD GetFontData( - __in HDC hdc, -@@ -240,6 +244,11 @@ - hb_face_t *face = font->face; - hb_uniscribe_shaper_face_data_t *face_data = HB_SHAPER_DATA_GET (face); - hb_uniscribe_shaper_font_data_t *font_data = HB_SHAPER_DATA_GET (font); -+ SIOT siot = NULL; -+ SSOT ssot = NULL; -+ SPOT spot = NULL; -+ HMODULE hinstLib = GetModuleHandle("usp10.dll"); -+ - - #define FAIL(...) \ - HB_STMT_START { \ -@@ -249,6 +258,15 @@ - - HRESULT hr; - -+ if (hinstLib) -+ { -+ siot = (SIOT)GetProcAddress(hinstLib, "ScriptItemizeOpenType"); -+ -+ ssot = (SSOT)GetProcAddress(hinstLib, "ScriptShapeOpenType"); -+ -+ spot = (SPOT)GetProcAddress(hinstLib, "ScriptPlaceOpenType"); -+ } -+ - retry: - - unsigned int scratch_size; -@@ -291,6 +309,7 @@ - - ALLOCATE_ARRAY (WORD, glyphs, glyphs_size); - ALLOCATE_ARRAY (SCRIPT_GLYPHPROP, glyph_props, glyphs_size); -+ ALLOCATE_ARRAY (SCRIPT_VISATTR, vis_attr, glyphs_size); - ALLOCATE_ARRAY (int, advances, glyphs_size); - ALLOCATE_ARRAY (GOFFSET, offsets, glyphs_size); - ALLOCATE_ARRAY (uint32_t, vis_clusters, glyphs_size); -@@ -312,7 +331,8 @@ - bidi_state.uBidiLevel = HB_DIRECTION_IS_FORWARD (buffer->props.direction) ? 0 : 1; - bidi_state.fOverrideDirection = 1; - -- hr = ScriptItemizeOpenType (wchars, -+ if (siot && ssot && spot) { -+ hr = siot (wchars, - chars_len, - MAX_ITEMS, - &bidi_control, -@@ -320,6 +340,16 @@ - items, - script_tags, - &item_count); -+ } -+ else { -+ hr = ScriptItemize(wchars, -+ chars_len, -+ MAX_ITEMS, -+ &bidi_control, -+ &bidi_state, -+ items, -+ &item_count); -+ } - if (unlikely (FAILED (hr))) - FAIL ("ScriptItemizeOpenType() failed: 0x%08xL", hr); - -@@ -344,7 +374,8 @@ - unsigned int item_chars_len = items[i + 1].iCharPos - chars_offset; - - retry_shape: -- hr = ScriptShapeOpenType (font_data->hdc, -+ if (siot && ssot && spot) { -+ hr = ssot (font_data->hdc, - &font_data->script_cache, - &items[i].a, - script_tags[i], -@@ -361,6 +392,20 @@ - glyphs + glyphs_offset, - glyph_props + glyphs_offset, - (int *) &glyphs_len); -+ } -+ else { -+ hr = ScriptShape (font_data->hdc, -+ &font_data->script_cache, -+ wchars + chars_offset, -+ item_chars_len, -+ glyphs_size - glyphs_offset, -+ &items[i].a, -+ /* out */ -+ glyphs + glyphs_offset, -+ log_clusters + chars_offset, -+ vis_attr + glyphs_offset, -+ (int *) &glyphs_len); -+ } - - if (unlikely (items[i].a.fNoGlyphIndex)) - FAIL ("ScriptShapeOpenType() set fNoGlyphIndex"); -@@ -386,7 +431,8 @@ - for (unsigned int j = chars_offset; j < chars_offset + item_chars_len; j++) - log_clusters[j] += glyphs_offset; - -- hr = ScriptPlaceOpenType (font_data->hdc, -+ if (siot && ssot && spot) { -+ hr = spot (font_data->hdc, - &font_data->script_cache, - &items[i].a, - script_tags[i], -@@ -405,6 +451,19 @@ - advances + glyphs_offset, - offsets + glyphs_offset, - NULL); -+ } -+ else { -+ hr = ScriptPlace (font_data->hdc, -+ &font_data->script_cache, -+ glyphs + glyphs_offset, -+ glyphs_len, -+ vis_attr + glyphs_offset, -+ &items[i].a, -+ /* out */ -+ advances + glyphs_offset, -+ offsets + glyphs_offset, -+ NULL); -+ } - if (unlikely (FAILED (hr))) - FAIL ("ScriptPlaceOpenType() failed: 0x%08xL", hr); - diff --git a/harfbuzz/harfbuzz.configure.patch.1 b/harfbuzz/harfbuzz.configure.patch.1 deleted file mode 100644 index c66e2b74d60a..000000000000 --- a/harfbuzz/harfbuzz.configure.patch.1 +++ /dev/null @@ -1,108 +0,0 @@ -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 -@@ -17555,12 +17555,12 @@ - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ICU_LE by using icu-config fallback" >&5 - $as_echo_n "checking for ICU_LE by using icu-config fallback... " >&6; } - if test "$ICU_CONFIG" != "no" && "$ICU_CONFIG" --version >/dev/null; then -- have_icu_le=true -+ have_icu_le=false - # We don't use --cflags as this gives us a lot of things that we don't - # necessarily want, like debugging and optimization flags - # See man (1) icu-config for more info. - ICU_LE_CFLAGS=`$ICU_CONFIG --cppflags` -- ICU_LE_LIBS=`$ICU_CONFIG --ldflags-searchpath --ldflags-libsonly --ldflags-layout` -+ ICU_LE_LIBS=`$ICU_CONFIG --ldflags-searchpath --ldflags-libsonly --ldflags-layout | tr "\n" " "` - - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -@@ -17654,7 +17654,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 |