From 22955d987b30056d787d5eeb1a8ac8a1277bf5e0 Mon Sep 17 00:00:00 2001 From: Tom Sepez Date: Thu, 30 Jul 2015 10:29:19 -0700 Subject: Use bundled freetype for the pdfium_test binary. But use platform freetype for library itself according to the rules for the platform. This should greatly reduce per-platform diffs in the corpus tests, but requires that the corpus be rolled at the same time. When this rolls into chromium, its src/BUILD.gn will need to be updated to say third_party:fx_freetype instead of third_party:freetype. R=jam@chromium.org Review URL: https://codereview.chromium.org/1267493005 . --- BUILD.gn | 2 +- DEPS | 2 +- pdfium.gyp | 2 +- samples/BUILD.gn | 4 ++++ samples/samples.gyp | 9 +++++++++ third_party/BUILD.gn | 6 ++++-- third_party/third_party.gyp | 2 +- 7 files changed, 21 insertions(+), 6 deletions(-) diff --git a/BUILD.gn b/BUILD.gn index 465c28034d..6581943163 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -131,7 +131,7 @@ static_library("pdfium") { } if (pdfium_bundle_freetype) { - deps += [ "third_party:freetype" ] + deps += [ "third_party:fx_freetype" ] } else { libs += [ "freetype" ] } diff --git a/DEPS b/DEPS index 8f96330581..a7a887b495 100644 --- a/DEPS +++ b/DEPS @@ -8,7 +8,7 @@ deps = { "https://chromium.googlesource.com/chromium/buildtools.git@46ce8cb60364e9e0b21a81136c7debdddfd063a8", "testing/corpus": - "https://pdfium.googlesource.com/pdfium_tests@4b9a1d593e5a101d034a4f1195174a22c179a42d", + "https://pdfium.googlesource.com/pdfium_tests@ab8b8db8660253962d8d624a85bf2c53fcf01097", "testing/gmock": "https://chromium.googlesource.com/external/googlemock.git@29763965ab52f24565299976b936d1265cb6a271", diff --git a/pdfium.gyp b/pdfium.gyp index a3697a3f7c..16d55d30d8 100644 --- a/pdfium.gyp +++ b/pdfium.gyp @@ -112,7 +112,7 @@ }], ['bundle_freetype==1', { 'dependencies': [ - 'third_party/third_party.gyp:freetype', + 'third_party/third_party.gyp:fx_freetype', ], }, { 'link_settings': { diff --git a/samples/BUILD.gn b/samples/BUILD.gn index 748a2af399..6f4518c17e 100644 --- a/samples/BUILD.gn +++ b/samples/BUILD.gn @@ -24,6 +24,10 @@ executable("pdfium_test") { ] deps = [ "//third_party/pdfium", + # Regardless of whether the library ships against system freetype, + # always link this binary against the bundled one for consistency + # of results across platforms. + "//third_party/pdfium/third_party:fx_freetype", "//v8:v8_libplatform", ":fx_lpng", ] diff --git a/samples/samples.gyp b/samples/samples.gyp index 4938ecb955..4b6c16bf2e 100644 --- a/samples/samples.gyp +++ b/samples/samples.gyp @@ -22,12 +22,21 @@ 'dependencies': [ 'fx_lpng', '../pdfium.gyp:pdfium', + # Regardless of whether the library ships against system freetype, + # always link this binary against the bundled one for consistency + # of results across platforms. + '../third_party/third_party.gyp:fx_freetype', '<(DEPTH)/v8/tools/gyp/v8.gyp:v8_libplatform', ], 'sources': [ 'pdfium_test.cc', 'image_diff_png.cc', ], + 'link_settings': { + 'libraries!': [ + '-lfreetype', + ], + }, }, { 'target_name': 'pdfium_diff', diff --git a/third_party/BUILD.gn b/third_party/BUILD.gn index 37e30ce06d..b1c8e262fc 100644 --- a/third_party/BUILD.gn +++ b/third_party/BUILD.gn @@ -5,7 +5,7 @@ group("third_party") { deps = [ ":bigint", - ":freetype", + ":fx_freetype", ":pdfium_base", ] } @@ -30,7 +30,9 @@ source_set("bigint") { ] } -source_set("freetype") { +# Tests may link against this even if the production library doesn't, +# so it needs to be separate from it. +static_library("fx_freetype") { configs -= [ "//build/config/compiler:chromium_code" ] configs += [ "//build/config/compiler:no_chromium_code", diff --git a/third_party/third_party.gyp b/third_party/third_party.gyp index 79368b5a68..4403f3cdac 100644 --- a/third_party/third_party.gyp +++ b/third_party/third_party.gyp @@ -30,7 +30,7 @@ ], }, { - 'target_name': 'freetype', + 'target_name': 'fx_freetype', 'type': 'static_library', 'defines': [ 'FT2_BUILD_LIBRARY', -- cgit v1.2.3