# 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. import("//build/buildflag_header.gni") import("//build/config/features.gni") import("//build/config/jumbo.gni") import("//pdf/features.gni") import("//testing/test.gni") import("//third_party/pdfium/pdfium.gni") import("//v8/gni/v8.gni") # Generate a buildflag header for compile-time checking of PDF support. buildflag_header("buildflags") { header = "buildflags.h" flags = [ "ENABLE_PDF=$enable_pdf" ] } if (enable_pdf) { pdf_engine = 0 # 0 PDFium config("pdf_common_config") { if (pdf_engine == 0) { include_dirs = [ "//third_party/pdfium" ] } } jumbo_static_library("pdf") { configs += [ ":pdf_common_config" ] deps = [ ":features", "//base", "//net", "//ppapi/cpp:objects", "//ppapi/cpp/private:internal_module", "//ui/base", "//ui/gfx/range", ] public_deps = [ "//gin", ] public = [ "pdf.h", "pdf_ppapi.h", ] sources = [ "accessibility.cc", "accessibility.h", "chunk_stream.h", "document_loader.h", "document_loader_impl.cc", "document_loader_impl.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.cc", "pdf_engine.h", "pdf_ppapi.cc", "pdf_ppapi.h", "pdf_transform.cc", "pdf_transform.h", "preview_mode_client.cc", "preview_mode_client.h", "range_set.cc", "range_set.h", "url_loader_wrapper.h", "url_loader_wrapper_impl.cc", "url_loader_wrapper_impl.h", ] if (pdf_engine == 0) { deps += [ "//pdf/pdfium/fuzzers", "//printing", "//third_party/pdfium", ] sources += [ "pdfium/pdfium_api_string_buffer_adapter.cc", "pdfium/pdfium_api_string_buffer_adapter.h", "pdfium/pdfium_assert_matching_enums.cc", "pdfium/pdfium_document.cc", "pdfium/pdfium_document.h", "pdfium/pdfium_engine.cc", "pdfium/pdfium_engine.h", "pdfium/pdfium_engine_exports.cc", "pdfium/pdfium_engine_exports.h", "pdfium/pdfium_form_filler.cc", "pdfium/pdfium_form_filler.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_print.cc", "pdfium/pdfium_print.h", "pdfium/pdfium_range.cc", "pdfium/pdfium_range.h", "pdfium/pdfium_unsupported_features.cc", "pdfium/pdfium_unsupported_features.h", ] } } source_set("features") { configs += [ ":pdf_common_config" ] deps = [ "//base", ] public = [ "pdf_features.h", ] sources = [ "pdf_features.cc", "pdf_features.h", ] } source_set("pdf_test_utils") { testonly = true sources = [ "test/test_client.cc", "test/test_client.h", "test/test_document_loader.cc", "test/test_document_loader.h", ] deps = [ ":pdf", "//base", ] } test("pdf_unittests") { testonly = true configs += [ ":pdf_common_config" ] sources = [ "chunk_stream_unittest.cc", "document_loader_impl_unittest.cc", "out_of_process_instance_unittest.cc", "pdf_transform_unittest.cc", "range_set_unittest.cc", ] deps = [ ":pdf", ":pdf_test_utils", "//base", "//base/test:run_all_unittests", "//base/test:test_support", "//ppapi/c", "//testing/gmock", "//testing/gtest", "//ui/gfx/range", ] data = [ "test/data/", ] if (pdf_engine == 0) { configs += [ "//v8:external_startup_data" ] deps += [ # Explicitly depend on PDFium to pick up its public configs, which are # not transitive, possibly because the "pdf" target is a static_library. "//third_party/pdfium", ] sources += [ "pdfium/accessibility_unittest.cc", "pdfium/findtext_unittest.cc", "pdfium/pdfium_engine_exports_unittest.cc", "pdfium/pdfium_print_unittest.cc", "pdfium/pdfium_test_base.cc", "pdfium/pdfium_test_base.h", ] if (v8_use_external_startup_data) { data += [ "$root_out_dir/natives_blob.bin", "$root_out_dir/snapshot_blob.bin", ] } } } } else { # Dummy group when PDF support is disabled so targets can unconditionally # depend on it. group("pdf") { } }