Upload upstream chromium 76.0.3809.146
[platform/framework/web/chromium-efl.git] / pdf / BUILD.gn
1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
4
5 import("//build/buildflag_header.gni")
6 import("//build/config/features.gni")
7 import("//build/config/jumbo.gni")
8 import("//pdf/features.gni")
9 import("//testing/test.gni")
10 import("//third_party/pdfium/pdfium.gni")
11 import("//v8/gni/v8.gni")
12
13 # Generate a buildflag header for compile-time checking of PDF support.
14 buildflag_header("buildflags") {
15   header = "buildflags.h"
16   flags = [ "ENABLE_PDF=$enable_pdf" ]
17 }
18
19 if (enable_pdf) {
20   pdf_engine = 0  # 0 PDFium
21
22   config("pdf_common_config") {
23     if (pdf_engine == 0) {
24       include_dirs = [ "//third_party/pdfium" ]
25     }
26   }
27
28   jumbo_static_library("pdf") {
29     configs += [ ":pdf_common_config" ]
30     deps = [
31       ":features",
32       "//base",
33       "//net",
34       "//ppapi/cpp:objects",
35       "//ppapi/cpp/private:internal_module",
36       "//ui/base",
37       "//ui/gfx/range",
38     ]
39
40     public_deps = [
41       "//gin",
42     ]
43
44     public = [
45       "pdf.h",
46       "pdf_ppapi.h",
47     ]
48
49     sources = [
50       "accessibility.cc",
51       "accessibility.h",
52       "chunk_stream.h",
53       "document_loader.h",
54       "document_loader_impl.cc",
55       "document_loader_impl.h",
56       "draw_utils.cc",
57       "draw_utils.h",
58       "out_of_process_instance.cc",
59       "out_of_process_instance.h",
60       "paint_aggregator.cc",
61       "paint_aggregator.h",
62       "paint_manager.cc",
63       "paint_manager.h",
64       "pdf.cc",
65       "pdf.h",
66       "pdf_engine.cc",
67       "pdf_engine.h",
68       "pdf_ppapi.cc",
69       "pdf_ppapi.h",
70       "pdf_transform.cc",
71       "pdf_transform.h",
72       "preview_mode_client.cc",
73       "preview_mode_client.h",
74       "range_set.cc",
75       "range_set.h",
76       "url_loader_wrapper.h",
77       "url_loader_wrapper_impl.cc",
78       "url_loader_wrapper_impl.h",
79     ]
80
81     if (pdf_engine == 0) {
82       deps += [
83         "//pdf/pdfium/fuzzers",
84         "//printing",
85         "//third_party/pdfium",
86       ]
87
88       sources += [
89         "pdfium/pdfium_api_string_buffer_adapter.cc",
90         "pdfium/pdfium_api_string_buffer_adapter.h",
91         "pdfium/pdfium_assert_matching_enums.cc",
92         "pdfium/pdfium_document.cc",
93         "pdfium/pdfium_document.h",
94         "pdfium/pdfium_engine.cc",
95         "pdfium/pdfium_engine.h",
96         "pdfium/pdfium_engine_exports.cc",
97         "pdfium/pdfium_engine_exports.h",
98         "pdfium/pdfium_form_filler.cc",
99         "pdfium/pdfium_form_filler.h",
100         "pdfium/pdfium_mem_buffer_file_read.cc",
101         "pdfium/pdfium_mem_buffer_file_read.h",
102         "pdfium/pdfium_mem_buffer_file_write.cc",
103         "pdfium/pdfium_mem_buffer_file_write.h",
104         "pdfium/pdfium_page.cc",
105         "pdfium/pdfium_page.h",
106         "pdfium/pdfium_print.cc",
107         "pdfium/pdfium_print.h",
108         "pdfium/pdfium_range.cc",
109         "pdfium/pdfium_range.h",
110         "pdfium/pdfium_unsupported_features.cc",
111         "pdfium/pdfium_unsupported_features.h",
112       ]
113     }
114   }
115
116   source_set("features") {
117     configs += [ ":pdf_common_config" ]
118     deps = [
119       "//base",
120     ]
121
122     public = [
123       "pdf_features.h",
124     ]
125
126     sources = [
127       "pdf_features.cc",
128       "pdf_features.h",
129     ]
130   }
131
132   source_set("pdf_test_utils") {
133     testonly = true
134     sources = [
135       "test/test_client.cc",
136       "test/test_client.h",
137       "test/test_document_loader.cc",
138       "test/test_document_loader.h",
139     ]
140
141     deps = [
142       ":pdf",
143       "//base",
144     ]
145   }
146
147   test("pdf_unittests") {
148     testonly = true
149     configs += [ ":pdf_common_config" ]
150     sources = [
151       "chunk_stream_unittest.cc",
152       "document_loader_impl_unittest.cc",
153       "out_of_process_instance_unittest.cc",
154       "pdf_transform_unittest.cc",
155       "range_set_unittest.cc",
156     ]
157
158     deps = [
159       ":pdf",
160       ":pdf_test_utils",
161       "//base",
162       "//base/test:run_all_unittests",
163       "//base/test:test_support",
164       "//ppapi/c",
165       "//testing/gmock",
166       "//testing/gtest",
167       "//ui/gfx/range",
168     ]
169
170     data = [
171       "test/data/",
172     ]
173
174     if (pdf_engine == 0) {
175       configs += [ "//v8:external_startup_data" ]
176       deps += [
177         # Explicitly depend on PDFium to pick up its public configs, which are
178         # not transitive, possibly because the "pdf" target is a static_library.
179         "//third_party/pdfium",
180       ]
181       sources += [
182         "pdfium/accessibility_unittest.cc",
183         "pdfium/findtext_unittest.cc",
184         "pdfium/pdfium_engine_exports_unittest.cc",
185         "pdfium/pdfium_print_unittest.cc",
186         "pdfium/pdfium_test_base.cc",
187         "pdfium/pdfium_test_base.h",
188       ]
189
190       if (v8_use_external_startup_data) {
191         data += [
192           "$root_out_dir/natives_blob.bin",
193           "$root_out_dir/snapshot_blob.bin",
194         ]
195       }
196     }
197   }
198 } else {
199   # Dummy group when PDF support is disabled so targets can unconditionally
200   # depend on it.
201   group("pdf") {
202   }
203 }