# Copyright 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

pdf_engine = 0  # 0 PDFium

static_library("pdf") {
  sources = [
    "chunk_stream.cc",
    "chunk_stream.h",
    "document_loader.cc",
    "document_loader.h",
    "draw_utils.cc",
    "draw_utils.h",
    "out_of_process_instance.cc",
    "out_of_process_instance.h",
    "paint_aggregator.cc",
    "paint_aggregator.h",
    "paint_manager.cc",
    "paint_manager.h",
    "pdf.cc",
    "pdf.h",
    "pdf_engine.h",
    "preview_mode_client.cc",
    "preview_mode_client.h",
    "resource.h",
    "resource_consts.h",
  ]

  # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
  configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]

  if (pdf_engine == 0) {
    sources += [
      "pdfium/pdfium_api_string_buffer_adapter.cc",
      "pdfium/pdfium_api_string_buffer_adapter.h",
      "pdfium/pdfium_assert_matching_enums.cc",
      "pdfium/pdfium_engine.cc",
      "pdfium/pdfium_engine.h",
      "pdfium/pdfium_mem_buffer_file_read.cc",
      "pdfium/pdfium_mem_buffer_file_read.h",
      "pdfium/pdfium_mem_buffer_file_write.cc",
      "pdfium/pdfium_mem_buffer_file_write.h",
      "pdfium/pdfium_page.cc",
      "pdfium/pdfium_page.h",
      "pdfium/pdfium_range.cc",
      "pdfium/pdfium_range.h",
    ]
  }

  deps = [
    "//base",
    "//components/ui/zoom",
    "//content/public/common",
    "//gin",
    "//net",
    "//ppapi/cpp:objects",
    "//ppapi/cpp/private:internal_module",
    "//third_party/pdfium",
  ]
}
