diff options
author | Dominik Röttsches <drott@chromium.org> | 2017-03-30 11:07:43 +0300 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2017-03-30 08:45:37 +0000 |
commit | 4b0671ab3e795bbb5e6aaf6305cae3171d73d241 (patch) | |
tree | 494c9d053197c1902fd9a4073d75b010b635b7a5 | |
parent | 1831ca9439ece65b54bb2bcdaec777729689b9f9 (diff) | |
download | pdfium-4b0671ab3e795bbb5e6aaf6305cae3171d73d241.tar.xz |
Allow configuration of external embedder FreeType
Add a public config to fxfreetype to make includes visible and provide a
freetype_common group as a public dependency on fxcrt. freetype_common
switches between fxfreetype and //build/config/freetype, which gives
embedders the flexibility to configure the source of FreeType.
BUG=chromium:700926
Change-Id: I73ae26979dcf69a419485def23c7a13dffa2a15d
Reviewed-on: https://pdfium-review.googlesource.com/2971
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
-rw-r--r-- | BUILD.gn | 22 | ||||
-rw-r--r-- | build_overrides/pdfium.gni | 4 | ||||
-rw-r--r-- | pdfium.gni | 4 | ||||
-rw-r--r-- | third_party/BUILD.gn | 14 |
4 files changed, 27 insertions, 17 deletions
@@ -5,14 +5,19 @@ import("//testing/test.gni") import("pdfium.gni") +group("freetype_common") { + public_deps = [] + if (pdf_bundle_freetype) { + public_deps += [ "third_party:fx_freetype" ] + } else { + public_deps += [ "//build/config/freetype" ] + } +} + config("pdfium_common_config") { cflags = [] ldflags = [] - include_dirs = [ - ".", - "third_party/freetype/include", - "third_party/freetype/include/freetype", - ] + include_dirs = [ "." ] defines = [ "OPJ_STATIC", "PNG_PREFIX", @@ -212,12 +217,6 @@ static_library("pdfium") { ] } - if (pdf_bundle_freetype) { - deps += [ "third_party:fx_freetype" ] - } else { - libs += [ "freetype" ] - } - if (pdf_is_complete_lib) { complete_static_lib = true } @@ -798,6 +797,7 @@ static_library("fxcrt") { "third_party:pdfium_base", ] public_deps = [ + ":freetype_common", "third_party:pdfium_base", ] diff --git a/build_overrides/pdfium.gni b/build_overrides/pdfium.gni index d6bcc850cd..a8ce2cff24 100644 --- a/build_overrides/pdfium.gni +++ b/build_overrides/pdfium.gni @@ -12,8 +12,8 @@ pdf_enable_v8_override = true # Default: Without XFA support. pdf_enable_xfa_override = false -# Build PDFium either using the bundled FreeType, or using the system FreeType. -# System FreeType only exists on Linux. +# Build PDFium either using the bundled FreeType, or using a third-party +# FreeType, configured by the embedder in //build/config/freetype. # Default: Use the bundled FreeType. pdf_bundle_freetype_override = true diff --git a/pdfium.gni b/pdfium.gni index 3626824085..1829831b08 100644 --- a/pdfium.gni +++ b/pdfium.gni @@ -7,8 +7,8 @@ import("//build_overrides/pdfium.gni") # This file contains PDFium-related build flags. declare_args() { - # Build PDFium either using the bundled FreeType, or using the system - # FreeType. + # Build PDFium either using the bundled FreeType, or using a third-party + # FreeType, configured by the embedder in //build/config/freetype. pdf_bundle_freetype = pdf_bundle_freetype_override # Build PDFium either with or without v8 support. diff --git a/third_party/BUILD.gn b/third_party/BUILD.gn index 2055821f8e..a24e99e7f0 100644 --- a/third_party/BUILD.gn +++ b/third_party/BUILD.gn @@ -46,12 +46,19 @@ config("fx_freetype_warnings") { # # ttgload.c casts from unsigned int to unsigned long to void*. cflags = [ - "-Wno-unused-function", - "-Wno-int-to-void-pointer-cast", + "-Wno-unused-function", + "-Wno-int-to-void-pointer-cast", ] } } +config("freetype_public_includes_config") { + include_dirs = [ + "freetype/include", + "freetype/src/include", + ] +} + # Tests may link against this even if the production library doesn't, # so it needs to be separate from it. static_library("fx_freetype") { @@ -63,6 +70,9 @@ static_library("fx_freetype") { # Must be after no_chromium_code for warning flags to be ordered correctly. ":fx_freetype_warnings", ] + + public_configs = [ ":freetype_public_includes_config" ] + defines = [ "FT2_BUILD_LIBRARY" ] sources = [ "freetype/include/freetype/config/ftconfig.h", |