[pango/hb-dont-fallback-too-early] build: Don't build HarfBuzz prematurely
- From: Chun-wei Fan <fanchunwei src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [pango/hb-dont-fallback-too-early] build: Don't build HarfBuzz prematurely
- Date: Thu, 25 Feb 2021 08:48:23 +0000 (UTC)
commit 09bf1b41b40151044644d0e35ba9949007fc83cd
Author: Chun-wei Fan <fanchunwei src gnome org>
Date: Thu Feb 25 16:40:41 2021 +0800
build: Don't build HarfBuzz prematurely
For Visual Studio builds, since HarfBuzz is built with CMake until
HarfBuzz 2.6.x yet we only require HarfBuzz 2.0.0 or later, we
aren't able to find pre-2.6.x HarfBuzz using Meson's dependency()
method as the support for CMake config files is not done in Meson.
As a result, we need to make sure that we first manually look for the
HarfBuzz/HarfBuzz-GObject libraries before we attempt to use the
fallback mechanism in Meson, so that we won't rebuild HarfBuzz
unneccesarily.
This rebuild will also cause issues for older compilers that don't
have enough support for C++11 as building Harfbuzz with Meson support
requires a C++11 compiler, which was mandated in HarfBuzz 2.5.0.
meson.build | 7 +++----
pango/meson.build | 15 +++++++++++++--
2 files changed, 16 insertions(+), 6 deletions(-)
---
diff --git a/meson.build b/meson.build
index 28d9c9ba..3ebbfeff 100644
--- a/meson.build
+++ b/meson.build
@@ -239,9 +239,7 @@ fontconfig_pc=''
harfbuzz_lib=''
fontconfig_lib=''
-harfbuzz_dep = dependency('harfbuzz', version: harfbuzz_req_version, required: false,
- fallback: ['harfbuzz', 'libharfbuzz_dep'],
- default_options: ['coretext=enabled'])
+harfbuzz_dep = dependency('harfbuzz', version: harfbuzz_req_version, required: false)
if harfbuzz_dep.found()
harfbuzz_pc = 'harfbuzz'
else
@@ -262,7 +260,8 @@ endif
# when finding dependencies via CMake files is fixed.
if not harfbuzz_dep.found()
harfbuzz_dep = dependency('harfbuzz', version: harfbuzz_req_version,
- fallback: ['harfbuzz', 'libharfbuzz_dep'])
+ fallback: ['harfbuzz', 'libharfbuzz_dep'],
+ default_options: ['coretext=enabled'])
endif
if not harfbuzz_dep.found()
diff --git a/pango/meson.build b/pango/meson.build
index 777f5374..e5121bd8 100644
--- a/pango/meson.build
+++ b/pango/meson.build
@@ -129,8 +129,19 @@ if build_gir
gir_args = [
'--quiet',
]
- harfbuzz_gobject_dep = dependency('harfbuzz-gobject', version: harfbuzz_req_version, required: false,
- fallback: ['harfbuzz', 'libharfbuzz_gobject_dep'])
+ harfbuzz_gobject_dep = dependency('harfbuzz-gobject', version: harfbuzz_req_version, required: false)
+
+ if not harfbuzz_gobject_dep.found() and cc.get_argument_syntax() == 'msvc'
+ # The CMake build files for HarfBuzz (which is used for MSVC builds) do not
+ # generate pkg-config files, so look for harfbuzz-gobject.lib
+ harfbuzz_gobject_dep = cc.find_library('harfbuzz-gobject', has_headers: ['hb-gobject.h'], required:
false)
+ endif
+
+ if not harfbuzz_gobject_dep.found()
+ harfbuzz_gobject_dep = dependency('harfbuzz-gobject', version: harfbuzz_req_version, required: false,
+ fallback: ['harfbuzz', 'libharfbuzz_gobject_dep'])
+ endif
+
if harfbuzz_gobject_dep.found()
pango_deps += harfbuzz_gobject_dep
endif
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]