aboutsummaryrefslogtreecommitdiff
path: root/pdfium.gni
blob: ffa740a9ce55ddb91d06c20161dacaf2c2c1ccd3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# Copyright 2015 The PDFium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//build_overrides/pdfium.gni")

# This file contains PDFium-related build flags.

declare_args() {
  # Build PDFium either:
  # 1) When set to true, with a bundled FreeType, built from FreeType source
  #    code in //third_party/freetype and PDFium's FreeType configs in
  #    third_party/freetype/include.
  # 2) When set to false, use whatever FreeType target is defined in
  #    //build/config/freetype.
  pdf_bundle_freetype = pdf_bundle_freetype_override

  # Generate logging messages for click events that reach PDFium
  pdf_enable_click_logging = false

  # Build PDFium either with or without v8 support.
  pdf_enable_v8 = pdf_enable_v8_override

  # Build PDFium either with or without XFA Forms support.
  pdf_enable_xfa = pdf_enable_xfa_override

  # If XFA, also support bmp codec. Ignored if not XFA.
  pdf_enable_xfa_bmp = true

  # If XFA, also support gif codec. Ignored if not XFA.
  pdf_enable_xfa_gif = true

  # If XFA, also support png codec. Ignored if not XFA.
  pdf_enable_xfa_png = true

  # If XFA, also support tiff codec. Ignored if not XFA.
  pdf_enable_xfa_tiff = true

  # Build PDFium using C++20 if set to true. Otherwise builds with C++17.
  # There is no "pdf_use_cxx20_override" variable because this is only used in
  # standalone PDFium, and not when PDFium is embedded in our projects.
  pdf_use_cxx20 = (is_win && is_component_build) || is_fuchsia

  # Build PDFium against PartitionAlloc. When false, PDFium must build without
  # requiring any PartitionAlloc headers or code to be present. When true,
  # PDFium will use PartitionAlloc partitions to separate strings, scalars,
  # etc. from other allocations. However, the use of PartitionAlloc for new or
  # malloc is controlled by args in build_overrides/partition_alloc.gni.
  pdf_use_partition_alloc = pdf_use_partition_alloc_override

  # Build PDFium to use Skia (experimental) for all PDFium graphics.
  # If enabled, coexists in build with AGG graphics and the default
  # renderer is selectable at runtime.
  pdf_use_skia = pdf_use_skia_override

  # Build PDFium standalone. Now only controls whether the test binaries
  # are built. Most logic is conditioned by build_with_chromium.
  pdf_is_standalone = false

  # Build a complete static library
  pdf_is_complete_lib = false

  # Enable callgrind for performance profiling
  enable_callgrind = false

  # Don't build against bundled lcms2.
  use_system_lcms2 = false

  # Don't build against bundled libopenjpeg2.
  use_system_libopenjpeg2 = false

  # Don't build against bundled libpng.
  use_system_libpng = false

  # Don't build against bundled libtiff.
  use_system_libtiff = false

  # Don't build against bundled zlib.
  use_system_zlib = false

  # Enable SSE2 for MSVC builds. Ignored if it's not a MSVC build.
  msvc_use_sse2 = true
}

assert(!pdf_is_complete_lib || !is_component_build,
       "pdf_is_complete_lib=true requires is_component_build=false")