# Copyright 2015 PDFium Authors. All rights reserved.
# 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 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.
  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 png codec. Ignored if not XFA.
  pdf_enable_xfa_tiff = true

  # Build PDFium against skia (experimental) rather than agg. Use Skia to draw
  # everything.
  pdf_use_skia = pdf_use_skia_override

  # Build PDFium against skia (experimental) rather than agg. Use Skia to draw
  # paths.
  pdf_use_skia_paths = pdf_use_skia_paths_override

  # Build PDFium with or without experimental win32 GDI APIs.
  pdf_use_win32_gdi = pdf_use_win32_gdi_override

  # Build PDFium standalone
  pdf_is_standalone = false

  # Build a complete static library
  pdf_is_complete_lib = false

  # Enable coverage information
  use_coverage = false
}
