[M120 Migration][VD] Remove accessing oom_score_adj in zygote process
[platform/framework/web/chromium-efl.git] / printing / BUILD.gn
1 # Copyright 2014 The Chromium Authors
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/config/chromeos/ui_mode.gni")
6 import("//build/config/features.gni")
7 import("//build/config/linux/pkg_config.gni")
8 import("//build/config/sysroot.gni")
9 import("//build/config/ui.gni")
10 import("//pdf/features.gni")
11 import("//printing/buildflags/buildflags.gni")
12 import("//testing/test.gni")
13 if (is_android) {
14   import("//build/config/android/rules.gni")
15   import("//third_party/jni_zero/jni_zero.gni")
16 }
17
18 if (enable_printing_unittests) {
19   import("//build/config/ios/bundle_data_from_filelist.gni")
20 } else {
21   if (!use_efl) {
22     assert(enable_printing)
23   }
24 }
25
26 if (is_win || enable_print_preview) {
27   # Windows basic printing or print preview requires pdf enabled.
28   assert(enable_pdf,
29          "Windows basic printing or print preview needs pdf: " +
30              "set enable_pdf=true.")
31 }
32
33 config("strict") {
34   configs = [ "//build/config/compiler:wexit_time_destructors" ]
35 }
36
37 # Lower-dependency base printing files which are needed by both :printing and
38 # //printing/backend without incurring deeper UI dependencies (e.g.,
39 # //ui/accessibility).  New files should normally be added to :printing, and
40 # only be moved here if they are also required by //printing/backend.
41 component("printing_base") {
42   sources = [
43     "print_job_constants.cc",
44     "print_job_constants.h",
45     "printing_features.cc",
46     "printing_features.h",
47     "printing_utils.cc",
48     "printing_utils.h",
49     "units.cc",
50     "units.h",
51   ]
52
53   configs += [ ":strict" ]
54
55   if (use_cups_ipp || is_chromeos) {
56     sources += [
57       "printer_query_result.h",
58       "printer_status.cc",
59       "printer_status.h",
60     ]
61   }
62
63   if (use_cups) {
64     public_configs = [ ":cups" ]
65     sources += [
66       "print_job_constants_cups.cc",
67       "print_job_constants_cups.h",
68     ]
69   }
70
71   cflags = []
72   defines = [ "IS_PRINTING_BASE_IMPL" ]
73
74   public_deps = [
75     "//build:chromeos_buildflags",
76     "//printing/buildflags",
77   ]
78   deps = [
79     "//base",
80     "//third_party/icu",
81     "//ui/gfx",
82     "//ui/gfx/geometry",
83   ]
84 }
85
86 if (enable_oop_printing && (is_linux || is_chromeos || is_tizen)) {
87   source_set("printing_sandbox_hook") {
88     sources = [
89       "sandbox/print_backend_sandbox_hook_linux.cc",
90       "sandbox/print_backend_sandbox_hook_linux.h",
91     ]
92
93     configs += [ ":strict" ]
94
95     deps = [
96       ":printing_base",
97       "//base",
98       "//printing/buildflags",
99       "//sandbox/linux:sandbox_services",
100       "//sandbox/policy",
101       "//services/network:network_sandbox_hook",
102     ]
103
104     if (use_cups) {
105       configs += [ ":cups" ]
106     }
107
108     if (is_chromeos && use_cups) {
109       deps += [ "//printing/backend" ]
110     }
111   }
112 }
113
114 source_set("native_drawing_context") {
115   sources = [ "native_drawing_context.h" ]
116
117   configs += [ ":strict" ]
118
119   deps = [ "//base" ]
120 }
121
122 component("metafile") {
123   sources = [
124     "metafile.cc",
125     "metafile.h",
126     "metafile_agent.cc",
127     "metafile_agent.h",
128     "metafile_skia.cc",
129     "metafile_skia.h",
130   ]
131
132   configs += [ ":strict" ]
133
134   defines = [ "IS_PRINTING_METAFILE_IMPL" ]
135   public_deps = [
136     ":native_drawing_context",
137     "//printing/mojom",
138   ]
139   deps = [
140     "//cc/paint",
141     "//printing/common",
142     "//ui/accessibility",
143   ]
144
145   if (is_apple) {
146     sources += [
147       "pdf_metafile_cg_mac.cc",
148       "pdf_metafile_cg_mac.h",
149     ]
150
151     frameworks = [
152       "CoreFoundation.framework",
153       "CoreGraphics.framework",
154     ]
155   }
156
157   if (is_mac) {
158     frameworks += [ "ApplicationServices.framework" ]
159   }
160
161   if (is_win) {
162     sources += [
163       "emf_win.cc",
164       "emf_win.h",
165     ]
166   }
167 }
168
169 component("printing") {
170   sources = [
171     "nup_parameters.cc",
172     "nup_parameters.h",
173     "page_number.cc",
174     "page_number.h",
175     "page_range.cc",
176     "page_range.h",
177     "page_setup.cc",
178     "page_setup.h",
179     "pdf_render_settings.h",
180     "print_dialog_linux_interface.h",
181     "print_settings.cc",
182     "print_settings.h",
183     "print_settings_conversion.cc",
184     "print_settings_conversion.h",
185     "printed_document.cc",
186     "printed_document.h",
187     "printing_context.cc",
188     "printing_context.h",
189     "printing_context_factory_for_test.h",
190     "pwg_raster_settings.h",
191   ]
192
193   configs += [ ":strict" ]
194
195   cflags = []
196   defines = [ "IS_PRINTING_IMPL" ]
197
198   public_deps = [
199     ":metafile",
200     ":native_drawing_context",
201     ":printing_base",
202   ]
203   deps = [
204     "//base",
205     "//base:i18n",
206     "//base/third_party/dynamic_annotations",
207     "//build:chromeos_buildflags",
208     "//printing/mojom",
209     "//skia",
210     "//third_party/icu",
211     "//ui/gfx",
212     "//ui/gfx/geometry",
213     "//url",
214   ]
215
216   if (is_android) {
217     sources += [
218       "printing_context_android.cc",
219       "printing_context_android.h",
220     ]
221
222     deps += [
223       ":printing_jni_headers",
224       "//ui/android",
225     ]
226   }
227
228   if (!enable_basic_print_dialog) {
229     sources += [
230       "printing_context_no_system_dialog.cc",
231       "printing_context_no_system_dialog.h",
232     ]
233   }
234
235   if (is_linux || is_tizen) {
236     sources += [
237       "printing_context_linux.cc",
238       "printing_context_linux.h",
239     ]
240
241     deps += [ "//ui/linux:linux_ui" ]
242   }
243
244   if (is_mac) {
245     sources += [
246       "print_settings_initializer_mac.cc",
247       "print_settings_initializer_mac.h",
248       "printing_context_mac.h",
249       "printing_context_mac.mm",
250     ]
251
252     frameworks = [
253       "AppKit.framework",
254       "QuartzCore.framework",
255       "ApplicationServices.framework",
256       "CoreFoundation.framework",
257       "CoreGraphics.framework",
258     ]
259   }
260
261   if (is_win) {
262     sources += [
263       "print_settings_initializer_win.cc",
264       "print_settings_initializer_win.h",
265       "printed_document_win.cc",
266       "printed_page_win.cc",
267       "printed_page_win.h",
268       "printing_context_system_dialog_win.cc",
269       "printing_context_system_dialog_win.h",
270       "printing_context_win.cc",
271       "printing_context_win.h",
272     ]
273
274     deps += [ "//printing/backend" ]
275   }
276
277   if (use_aura) {
278     deps += [ "//ui/aura" ]
279   }
280
281   if (is_chromeos) {
282     sources += [
283       "client_info_helpers.cc",
284       "client_info_helpers.h",
285       "print_settings_conversion_chromeos.cc",
286       "print_settings_conversion_chromeos.h",
287     ]
288
289     deps += [
290       "//chromeos/crosapi/mojom:mojom",
291       "//third_party/re2",
292     ]
293   }
294
295   if (use_cups) {
296     if (is_chromeos) {
297       sources += [
298         "printing_context_chromeos.cc",
299         "printing_context_chromeos.h",
300       ]
301
302       deps += [ "//printing/backend" ]
303     }
304   }
305
306   if (enable_oop_printing && (is_linux || is_chromeos)) {
307     deps += [ ":printing_sandbox_hook" ]
308   }
309 }
310
311 static_library("test_support") {
312   testonly = true
313   sources = [
314     "image.cc",
315     "image.h",
316     "test_printing_context.cc",
317     "test_printing_context.h",
318   ]
319
320   public_deps = [
321     "//printing",
322     "//printing/backend:test_support",
323     "//printing/mojom",
324     "//ui/gfx/geometry",
325   ]
326   deps = [
327     "//base",
328     "//build:chromeos_buildflags",
329     "//printing/backend",
330     "//skia",
331     "//ui/gfx",
332   ]
333 }
334
335 if (enable_printing_unittests) {
336   bundle_data_from_filelist("pdf_metafile_cg_mac_unittest_bundle_data") {
337     testonly = true
338     filelist_name = "test/pdf_metafile_cg_mac_unittest_bundle_data.filelist"
339   }
340 }
341
342 test("printing_unittests") {
343   sources = [
344     "backend/print_backend_unittest.cc",
345     "backend/print_backend_utils_unittest.cc",
346     "metafile_skia_unittest.cc",
347     "nup_parameters_unittest.cc",
348     "page_number_unittest.cc",
349     "page_range_unittest.cc",
350     "page_setup_unittest.cc",
351     "print_settings_conversion_unittest.cc",
352     "print_settings_unittest.cc",
353     "printing_test.h",
354     "printing_utils_unittest.cc",
355     "units_unittest.cc",
356   ]
357
358   deps = [
359     ":printing",
360     ":test_support",
361     "//base/test:test_support",
362     "//build:chromeos_buildflags",
363     "//mojo/core/test:run_all_unittests",
364     "//mojo/public/cpp/test_support:test_utils",
365     "//printing/backend",
366     "//printing/backend:test_support",
367     "//printing/common",
368     "//printing/mojom",
369     "//testing/gmock",
370     "//testing/gtest",
371     "//ui/base",
372     "//ui/gfx",
373     "//ui/gfx:test_support",
374     "//ui/gfx/geometry",
375   ]
376
377   if (enable_oop_printing) {
378     sources += [
379       "backend/mojom/print_backend_mojom_traits_unittest.cc",
380       "backend/test_print_backend_unittest.cc",
381       "mojom/printing_context_mojom_traits_unittest.cc",
382     ]
383     deps += [
384       "//printing/backend/mojom",
385       "//printing/mojom:printing_context",
386     ]
387   }
388
389   if (is_apple) {
390     sources += [ "pdf_metafile_cg_mac_unittest.cc" ]
391   }
392
393   if (is_mac) {
394     data = [
395       "test/data/pdf_cg/",
396       "../pdf/test/data/",
397     ]
398   } else if (enable_printing_unittests) {
399     deps += [
400       ":pdf_metafile_cg_mac_unittest_bundle_data",
401       "//pdf:pdf_test_bundle_data",
402     ]
403   }
404
405   if (is_win) {
406     sources += [
407       "backend/win_helper_unittest.cc",
408       "backend/xps_utils_win_unittest.cc",
409       "emf_win_unittest.cc",
410       "printed_page_win_unittest.cc",
411       "printing_context_win_unittest.cc",
412     ]
413
414     data = [ "test/data/emf/" ]
415   }
416
417   if (is_chromeos) {
418     sources += [
419       "client_info_helpers_unittest.cc",
420       "print_settings_conversion_chromeos_unittest.cc",
421     ]
422   }
423
424   if (use_cups) {
425     if (use_cups_ipp) {
426       sources += [ "backend/cups_ipp_helper_unittest.cc" ]
427     }
428
429     if (is_chromeos) {
430       sources += [ "printing_context_chromeos_unittest.cc" ]
431     }
432
433     if (!is_chromeos_ash) {
434       sources += [
435         "backend/cups_helper_unittest.cc",
436         "backend/print_backend_cups_unittest.cc",
437       ]
438     }
439   }
440 }
441
442 if (use_cups) {
443   if (is_chromeos_device) {
444     pkg_config("cups") {
445       packages = [ "cups" ]
446     }
447   } else {
448     config("cups") {
449       if (is_mac) {
450         libs = [ "cups" ]
451         lib_dirs = [ "$mac_sdk_path/usr/lib" ]
452       } else {
453         # rebase_path does not accept an empty string
454         if (use_sysroot) {
455           cups_sysroot = rebase_path(sysroot)
456         } else {
457           cups_sysroot = ""
458         }
459         libs = exec_script("cups_config_helper.py",
460                            [
461                              "--libs-for-gn",
462                              cups_sysroot,
463                            ],
464                            "value")
465       }
466     }
467   }
468 }
469
470 if (is_android) {
471   generate_jni("printing_jni_headers") {
472     sources = [ "android/java/src/org/chromium/printing/PrintingContext.java" ]
473   }
474
475   android_library("printing_java") {
476     deps = [
477       "//base:base_java",
478       "//build/android:build_java",
479       "//third_party/androidx:androidx_annotation_annotation_java",
480       "//third_party/jni_zero:jni_zero_java",
481       "//ui/android:ui_java",
482     ]
483     srcjar_deps = [ ":printing_jni_headers" ]
484     sources = [
485       "android/java/src/org/chromium/printing/PrintDocumentAdapterWrapper.java",
486       "android/java/src/org/chromium/printing/PrintManagerDelegate.java",
487       "android/java/src/org/chromium/printing/PrintManagerDelegateImpl.java",
488       "android/java/src/org/chromium/printing/Printable.java",
489       "android/java/src/org/chromium/printing/PrintingContext.java",
490       "android/java/src/org/chromium/printing/PrintingController.java",
491       "android/java/src/org/chromium/printing/PrintingControllerImpl.java",
492     ]
493   }
494 }