[Libreoffice-commits] core.git: Branch 'feature/commonsallayout' - 5 commits - configure.ac external/harfbuzz RepositoryExternal.mk vcl/inc vcl/Library_vcl.mk vcl/source
Khaled Hosny
khaledhosny at eglug.org
Thu Sep 22 21:35:23 UTC 2016
Rebased ref, commits from common ancestor:
commit 7697ef88cba36f6397693126fc2091a72e7b9821
Author: Khaled Hosny <khaledhosny at eglug.org>
Date: Thu Sep 22 14:09:29 2016 -0700
Add missing override
Change-Id: I6a309715e30eef1c99c390e95c91f81cc9d75d04
diff --git a/vcl/inc/CommonSalLayout.hxx b/vcl/inc/CommonSalLayout.hxx
index 179eee88..89214d4 100644
--- a/vcl/inc/CommonSalLayout.hxx
+++ b/vcl/inc/CommonSalLayout.hxx
@@ -66,6 +66,6 @@ public:
virtual void DrawText( SalGraphics& ) const override;
std::shared_ptr<vcl::TextLayoutCache> CreateTextLayoutCache(OUString const&) const override;
- virtual bool GetCharWidths(DeviceCoordinate* pCharWidths) const;
- virtual void ApplyDXArray(ImplLayoutArgs&);
+ virtual bool GetCharWidths(DeviceCoordinate* pCharWidths) const override;
+ virtual void ApplyDXArray(ImplLayoutArgs&) override;
};
diff --git a/vcl/inc/quartz/salgdi.h b/vcl/inc/quartz/salgdi.h
index 5313903..f7e5156 100644
--- a/vcl/inc/quartz/salgdi.h
+++ b/vcl/inc/quartz/salgdi.h
@@ -410,7 +410,7 @@ public:
virtual SalLayout* GetTextLayout( ImplLayoutArgs&, int nFallbackLevel ) override;
virtual void DrawSalLayout( const CommonSalLayout& ) override;
- virtual void DrawServerFontLayout( const GenericSalLayout&, const ServerFont& ) {};
+ virtual void DrawServerFontLayout( const GenericSalLayout&, const ServerFont& ) override {};
virtual bool supportsOperation( OutDevSupportType ) const override;
#ifdef MACOSX
commit b712562a0f9325db188f72e5b035763d95b92dcc
Author: Khaled Hosny <khaledhosny at eglug.org>
Date: Thu Sep 22 14:04:50 2016 -0700
Fix building HarfBuzz with Graphite on macOS
A very ugly hack as We don’t have pkg-config on macOS, so search for graphite2
always fails even though we set GRAPHITE2_LIBS etc.
Change-Id: I0b663a4d0a2534c72b7317ec08d1656e3ce311e0
diff --git a/external/harfbuzz/ExternalProject_harfbuzz.mk b/external/harfbuzz/ExternalProject_harfbuzz.mk
index 5e98f9e..514132d 100644
--- a/external/harfbuzz/ExternalProject_harfbuzz.mk
+++ b/external/harfbuzz/ExternalProject_harfbuzz.mk
@@ -39,6 +39,7 @@ $(call gb_ExternalProject_get_state_target,harfbuzz,build) :
$(if $(verbose),--disable-silent-rules,--enable-silent-rules) \
$(if $(CROSS_COMPILING),--build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM)) \
$(if $(filter LINUX,$(OS)),CXXFLAGS="$(CXXFLAGS) -fvisibility=hidden") \
+ $(if $(filter MACOSX,$(OS)),PKG_CONFIG=true) \
&& (cd $(EXTERNAL_WORKDIR)/src && $(MAKE) lib) \
)
commit 1e07723351cef08186a3c3397a10ebe18dc183a6
Author: Khaled Hosny <khaledhosny at eglug.org>
Date: Thu Sep 22 07:57:04 2016 -0700
Build HarfBuzz with Core Text on Mac
To enable support for AAT fonts.
Change-Id: Ifcc7d1672e98f8c067482400b7e45226bed4dbf1
diff --git a/external/harfbuzz/ExternalProject_harfbuzz.mk b/external/harfbuzz/ExternalProject_harfbuzz.mk
index f6a2d49..5e98f9e 100644
--- a/external/harfbuzz/ExternalProject_harfbuzz.mk
+++ b/external/harfbuzz/ExternalProject_harfbuzz.mk
@@ -35,6 +35,7 @@ $(call gb_ExternalProject_get_state_target,harfbuzz,build) :
--with-cairo=no \
--with-glib=no \
--with-graphite2=yes \
+ $(if $(filter MACOSX,$(OS)),--with-coretext=yes) \
$(if $(verbose),--disable-silent-rules,--enable-silent-rules) \
$(if $(CROSS_COMPILING),--build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM)) \
$(if $(filter LINUX,$(OS)),CXXFLAGS="$(CXXFLAGS) -fvisibility=hidden") \
commit 41c2d077d34352172edc5533d8f2f21afd2192ef
Author: Khaled Hosny <khaledhosny at eglug.org>
Date: Thu Sep 22 19:48:10 2016 +0200
Always pass BCP 47 tags to HarfBuzz
This is what it is expecting anyway, no need to special case it for
Chinese.
Change-Id: I6732412375d19816b599005d78abd796f67599ee
diff --git a/vcl/source/gdi/CommonSalLayout.cxx b/vcl/source/gdi/CommonSalLayout.cxx
index ea4e5f9..8cb1dc9 100644
--- a/vcl/source/gdi/CommonSalLayout.cxx
+++ b/vcl/source/gdi/CommonSalLayout.cxx
@@ -379,7 +379,7 @@ bool CommonSalLayout::LayoutText(ImplLayoutArgs& rArgs)
aHbScript = it->maScript;
// hb_language_from_string() accept ISO639-3 language tag except for Chinese.
LanguageTag &rTag = rArgs.maLanguageTag;
- OString sLanguage = OUStringToOString( MsLangId::isChinese(rTag.getLanguageType()) ? rTag.getBcp47():rTag.getLanguage() , RTL_TEXTENCODING_UTF8 );
+ OString sLanguage = OUStringToOString(rTag.getBcp47(), RTL_TEXTENCODING_ASCII_US);
int nHbFlags = HB_BUFFER_FLAGS_DEFAULT;
if (nMinRunPos == 0)
commit c56081ada0eef4fd0daf29dde76bba12b2f00a50
Author: Khaled Hosny <khaledhosny at eglug.org>
Date: Thu Sep 22 19:45:23 2016 +0200
Always build Graphite everywhere
It is no longer an optional feature on any platform. The
--enable-graphite stuff is kept as it controls the old Graphite
integration code and it should be removed without.
Change-Id: Ib4d76bba782a1439f02f93411b22d237a1987ea5
diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk
index e0f1337..64eeacf 100644
--- a/RepositoryExternal.mk
+++ b/RepositoryExternal.mk
@@ -1357,8 +1357,6 @@ endef
endif # SYSTEM_FONTCONFIG
-ifeq ($(ENABLE_GRAPHITE),TRUE)
-
ifneq ($(SYSTEM_GRAPHITE),)
define gb_LinkTarget__use_graphite
@@ -1386,12 +1384,6 @@ endef
endif # SYSTEM_GRAPHITE
-else # !ENABLE_GRAPHITE
-
-gb_LinkTarget__use_graphite :=
-
-endif # ENABLE_GRAPHITE
-
ifneq ($(SYSTEM_ICU),)
gb_LinkTarget__use_icu_headers:=
diff --git a/configure.ac b/configure.ac
index be56b53..51a51d1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -9231,19 +9231,20 @@ AC_SUBST(ICU_LIBS)
dnl ===================================================================
dnl Graphite
dnl ===================================================================
+libo_CHECK_SYSTEM_MODULE([graphite],[GRAPHITE],[graphite2 >= 0.9.3],["-I${WORKDIR}/UnpackedTarball/graphite/include"],["-L${WORKDIR}/LinkTarget/StaticLibrary -lgraphite"])
+if test "$with_system_graphite" = "yes"; then
+ libo_MINGW_CHECK_DLL([libgraphite2])
+fi
+if test "$COM" = "MSC"; then # override the above
+ GRAPHITE_LIBS="${WORKDIR}/LinkTarget/StaticLibrary/graphite.lib"
+fi
+# This is the old Graphite support that will eventually be removed
AC_MSG_CHECKING([whether to enable graphite support])
if test $_os != Darwin -a $_os != Android -a $_os != iOS -a \( -z "$enable_graphite" -o "$enable_graphite" != no \); then
AC_MSG_RESULT([yes])
ENABLE_GRAPHITE="TRUE"
AC_DEFINE(ENABLE_GRAPHITE)
- libo_CHECK_SYSTEM_MODULE([graphite],[GRAPHITE],[graphite2 >= 0.9.3],["-I${WORKDIR}/UnpackedTarball/graphite/include"],["-L${WORKDIR}/LinkTarget/StaticLibrary -lgraphite"])
- if test "$with_system_graphite" = "yes"; then
- libo_MINGW_CHECK_DLL([libgraphite2])
- fi
- if test "$COM" = "MSC"; then # override the above
- GRAPHITE_LIBS="${WORKDIR}/LinkTarget/StaticLibrary/graphite.lib"
- fi
else
AC_MSG_RESULT([no])
@@ -9330,6 +9331,9 @@ if test "$COM" = "MSC"; then # override the above
HARFBUZZ_LIBS="${WORKDIR}/UnpackedTarball/harfbuzz/src/.libs/libharfbuzz.lib"
fi
if test "$with_system_harfbuzz" = "yes"; then
+ if test "$with_system_graphite" = "no"; then
+ AC_MSG_ERROR([--with-system-graphite must be used when --with-system-harfbuzz is used])
+ fi
AC_MSG_CHECKING([whether system Harfbuzz is built with Graphite support])
_save_libs="$LIBS"
_save_cflags="$CFLAGS"
@@ -9338,6 +9342,10 @@ if test "$with_system_harfbuzz" = "yes"; then
AC_CHECK_FUNC(hb_graphite2_face_get_gr_face,,[AC_MSG_ERROR([Harfbuzz needs to be built with Graphite support.])])
LIBS="$_save_libs"
CFLAGS="$_save_cflags"
+else
+ if test "$with_system_graphite" = "yes"; then
+ AC_MSG_ERROR([--without-system-graphite must be used when --without-system-harfbuzz is used])
+ fi
fi
AC_MSG_CHECKING([whether to use X11])
diff --git a/vcl/Library_vcl.mk b/vcl/Library_vcl.mk
index 67bcbe5..2b0874a 100644
--- a/vcl/Library_vcl.mk
+++ b/vcl/Library_vcl.mk
@@ -116,6 +116,7 @@ $(eval $(call gb_Library_use_externals,vcl,\
boost_headers \
gio \
glm_headers \
+ graphite \
harfbuzz \
icu_headers \
icuuc \
@@ -434,8 +435,6 @@ $(eval $(call gb_Library_add_exception_objects,vcl,\
))
endif
-$(eval $(call gb_Library_use_external,vcl,graphite))
-
endif
vcl_quartz_code= \
More information about the Libreoffice-commits
mailing list