diff options
author | kojii <kojii@chromium.org> | 2015-06-23 20:37:01 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-06-24 03:37:45 +0000 |
commit | a2940327975938a0da0c6f8a49ba26fd78ed8d51 (patch) | |
tree | 17253811e5d03107a7adb414558f7bbec63f035a | |
parent | d51068f57562a973e3bd6da86d8c4a80237e73b5 (diff) | |
download | chromium_src-a2940327975938a0da0c6f8a49ba26fd78ed8d51.zip chromium_src-a2940327975938a0da0c6f8a49ba26fd78ed8d51.tar.gz chromium_src-a2940327975938a0da0c6f8a49ba26fd78ed8d51.tar.bz2 |
Use bundled harfbuzz on Linux
crbug.com/353127 changed to use the bundled harfbuzz for official builds
on Linux, but not for non-official Linux builds due to link warnings and
gfx_unittests crash on Trusty.
This patch changes non-official Linux builds to use the bundled harfbuzz.
Symbols from the bundled harfbuzz-ng are exported in non-official builds
so that pangoft2 can see them. gfx_unittests crashes are no longer
observed.
BUG=462689, 353127
Review URL: https://codereview.chromium.org/1197683002
Cr-Commit-Position: refs/heads/master@{#335865}
-rw-r--r-- | third_party/harfbuzz-ng/BUILD.gn | 24 | ||||
-rw-r--r-- | third_party/harfbuzz-ng/harfbuzz.gyp | 10 |
2 files changed, 18 insertions, 16 deletions
diff --git a/third_party/harfbuzz-ng/BUILD.gn b/third_party/harfbuzz-ng/BUILD.gn index 2ce1280..24c6927 100644 --- a/third_party/harfbuzz-ng/BUILD.gn +++ b/third_party/harfbuzz-ng/BUILD.gn @@ -16,18 +16,15 @@ import("//build/config/linux/pkg_config.gni") declare_args() { # Since version 1.31.0, pangoft2 which we depend on pulls in harfbuzz # anyways. However, we want to have control of the version of harfbuzz - # we use, so don't use system harfbuzz for official builds, unless we - # are building for chrome os, where we have the system harfbuzz under - # control as well. We also do not want to use the system harfbuzz - # when cross-compiling for ARM. - use_system_harfbuzz = is_linux && (is_chromeos || (!is_official_build && - current_cpu != "arm")) && - exec_script(pkg_config_script, - pkg_config_args + [ - "--atleast-version=1.31.0", - "pangoft2", - ], - "value") + # we use, so don't use system harfbuzz unless we are building for + # chrome os, where we have the system harfbuzz under control. + use_system_harfbuzz = + is_linux && is_chromeos && exec_script(pkg_config_script, + pkg_config_args + [ + "--atleast-version=1.31.0", + "pangoft2", + ], + "value") } if (use_system_harfbuzz) { @@ -166,5 +163,8 @@ if (use_system_harfbuzz) { ] defines += [ "HAVE_CORETEXT" ] } + if (is_linux && !is_chromeos && !is_official_build && current_cpu != "arm") { + configs -= [ "//build/config/gcc:symbol_visibility_hidden" ] + } } } diff --git a/third_party/harfbuzz-ng/harfbuzz.gyp b/third_party/harfbuzz-ng/harfbuzz.gyp index f381e74..c277e8e 100644 --- a/third_party/harfbuzz-ng/harfbuzz.gyp +++ b/third_party/harfbuzz-ng/harfbuzz.gyp @@ -8,12 +8,11 @@ ], 'variables': { 'conditions': [ - ['OS=="linux" and (buildtype!="Official" or chromeos==1) and embedded==0', { + ['OS=="linux" and chromeos==1', { # Since version 1.31.0, pangoft2 which we depend on pulls in harfbuzz # anyways. However, we want to have control of the version of harfbuzz - # we use, so don't use system harfbuzz for official builds, unless we - # are building for chrome os, where we have the system harfbuzz under - # control as well. + # we use, so don't use system harfbuzz unless we are building for + # chrome os, where we have the system harfbuzz under control. 'use_system_harfbuzz%': '<!(python ../../build/check_return_value.py <(pkg-config) --atleast-version=1.31.0 pangoft2)', }, { 'use_system_harfbuzz': 0, @@ -152,6 +151,9 @@ 'src/hb-coretext.h', ], }], + ['OS=="linux" and chromeos==0 and buildtype!="Official" and target_arch!="arm"', { + 'cflags!': ['-fvisibility=hidden'], + }], ], }, ], |