Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(76)

Issue 2872333002: Build FreeType with HarfBuzz support (Closed)

Created:
3 years, 7 months ago by drott
Modified:
3 years, 7 months ago
CC:
chromium-reviews, darin-cc_chromium.org, jam, jochen+watch_chromium.org, mlamouri+watch-content_chromium.org, Peter Beverloo
Target Ref:
refs/heads/master
Project:
chromium
Visibility:
Public.

Description

Compile FreeType with HarfBuzz support FreeType's autohinter uses HarfBuzz API to collect additional GSUB and GPOS mappings to detect ligatures that should be aligned by the autohinter. Previously we were not able to build FreeType with HarfBuzz support because of the cyclic dependency. This CL resolves the cyclic dependency by leaving undefined symbols in FreeType and HarfBuzz open until the linking stage. This resolves issues with fi and ffi ligatures in Roboto looking like they were shifted to a different baseline. I tried developing a pixel test for this, which works if I force usage of the FreeType autohinter through SkPaint::kSlight_Hinting, however we are currently unable to automatically test this since our Linux layout tests do not exercise the autohinting code and do not set this hinting mode, probably due to the special fontconfig settings that we are using for the layout tests. Manually verifying the Roboto ligatures however confirms that this works. BUG=617168

Patch Set 1 #

Patch Set 2 : Add missing gni files #

Patch Set 3 : Move back to if statement for harfbuzz-ng-ft target #

Total comments: 1

Patch Set 4 : Move GCC visibility settings into harfbuzz-ng-ft target #

Patch Set 5 : Remove duplicate line #

Patch Set 6 : Always link harbuzz-ng-ft and fix mac component build #

Unified diffs Side-by-side diffs Delta from patch set Stats (+99 lines, -49 lines) Patch
M build/config/freetype/BUILD.gn View 1 2 3 4 5 1 chunk +21 lines, -10 lines 0 comments Download
A + build/config/freetype/freetype.gni View 1 2 chunks +0 lines, -12 lines 0 comments Download
M content/shell/BUILD.gn View 1 2 3 4 5 1 chunk +1 line, -1 line 0 comments Download
M third_party/freetype/BUILD.gn View 1 chunk +2 lines, -0 lines 0 comments Download
M third_party/freetype/include/freetype-custom-config/ftoption.h View 1 chunk +1 line, -1 line 0 comments Download
M third_party/harfbuzz-ng/BUILD.gn View 1 2 3 4 5 4 chunks +62 lines, -25 lines 0 comments Download
A third_party/harfbuzz-ng/harfbuzz.gni View 1 1 chunk +12 lines, -0 lines 0 comments Download

Messages

Total messages: 31 (26 generated)
drott
mkwst@, could you please review the content/shell/BUILD.gn change? Thanks.
3 years, 7 months ago (2017-05-10 15:39:09 UTC) #2
Mike West
LGTM. :)
3 years, 7 months ago (2017-05-10 15:40:59 UTC) #4
bungeman-chromium
https://codereview.chromium.org/2872333002/diff/40001/build/config/freetype/BUILD.gn File build/config/freetype/BUILD.gn (right): https://codereview.chromium.org/2872333002/diff/40001/build/config/freetype/BUILD.gn#newcode8 build/config/freetype/BUILD.gn:8: import("//build/config/ui.gni") This line is here twice?
3 years, 7 months ago (2017-05-10 16:45:33 UTC) #17
Dirk Pranke
lgtm w/ comment addressed.
3 years, 7 months ago (2017-05-11 02:09:08 UTC) #18
drott
3 years, 7 months ago (2017-05-11 16:03:16 UTC) #31
Message was sent while issue was closed.
I had to abandon this one, since the linker tricks won't work on Windows. I'll
upload a separate CL with a new approach.

Powered by Google App Engine
This is Rietveld 408576698