[M73 Dev][EFL] Disable VizDisplayCompositor for EFL port
[platform/framework/web/chromium-efl.git] / components / 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/config/chrome_build.gni")
6 import("//build/config/features.gni")
7 import("//build/config/ui.gni")
8 import("//components/nacl/features.gni")
9 import("//components/ui_devtools/devtools.gni")
10 import("//media/media_options.gni")
11 import("//ppapi/buildflags/buildflags.gni")
12 import("//printing/buildflags/buildflags.gni")
13 import("//rlz/buildflags/buildflags.gni")
14 import("//testing/test.gni")
15 import("//tools/grit/repack.gni")
16
17 if (is_android) {
18   import("//build/config/android/rules.gni")
19   import("//build/config/compiler/compiler.gni")
20   import("//tools/v8_context_snapshot/v8_context_snapshot.gni")
21 }
22
23 if (is_ios) {
24   import("//ios/build/config.gni")
25 }
26
27 if (is_ios) {
28   bundle_data("components_tests_pak_bundle_data") {
29     public_deps = [
30       ":components_tests_pak",
31       "//ui/resources:ui_test_pak",
32     ]
33     sources = [
34       "$root_out_dir/components_tests_resources.pak",
35       "$root_out_dir/ui_test.pak",
36     ]
37     outputs = [
38       "{{bundle_resources_dir}}/{{source_file_part}}",
39     ]
40   }
41 }
42
43 # To add a unit test to this target, make a "unit_test" source_set in your
44 # component (it's important to use a source_set instead of a static library or
45 # no tests will run) and add a reference here. You can add more than one unit
46 # test target if convenient.
47 test("components_unittests") {
48   if (is_android || is_linux || is_mac || is_win) {
49     data = [
50       "test/data/",
51
52       # TODO(dpranke): Remove the next two lines after GN has rolled to 339778.
53       "$root_out_dir/components_tests_resources.pak",
54       "$root_out_dir/ui_test.pak",
55     ]
56   }
57
58   if (is_android) {
59     enable_multidex = true
60
61     # The tracing unittests require this for testing unwinding. See
62     # stack_unwinder_android_unittest.cc.
63     if (can_unwind_with_cfi_table && is_official_build) {
64       add_unwind_tables_in_apk = true
65     }
66   }
67
68   # Add only ":unit_tests" dependencies here. If your tests have dependencies
69   # (this would at least include the component itself), they should be on the
70   # test source set and not here.
71
72   deps = [
73     "//base",
74     "//components/apdu:unit_tests",
75     "//components/assist_ranker:unit_tests",
76     "//components/autofill/core/browser:unit_tests",
77     "//components/autofill/core/common:unit_tests",
78     "//components/base32:unit_tests",
79     "//components/blacklist/opt_out_blacklist:unit_tests",
80     "//components/blacklist/opt_out_blacklist/sql:unit_tests",
81     "//components/bookmarks/browser:unit_tests",
82     "//components/bookmarks/managed:unit_tests",
83     "//components/browser_sync:unit_tests",
84     "//components/browsing_data/core:unit_tests",
85     "//components/bubble:unit_tests",
86     "//components/captive_portal:unit_tests",
87     "//components/cbor:unit_tests",
88     "//components/certificate_matching:unit_tests",
89     "//components/client_update_protocol:unit_tests",
90     "//components/cloud_devices/common:unit_tests",
91     "//components/component_updater:unit_tests",
92     "//components/consent_auditor:unit_tests",
93     "//components/content_settings/core/browser:unit_tests",
94     "//components/content_settings/core/common:unit_tests",
95     "//components/crx_file:unit_tests",
96     "//components/device_event_log:unit_tests",
97     "//components/dom_distiller/core:unit_tests",
98     "//components/download:unit_tests",
99     "//components/encrypted_messages:unit_tests",
100     "//components/favicon/core:unit_tests",
101     "//components/favicon_base:unit_tests",
102     "//components/feature_engagement:unit_tests",
103     "//components/feed:unit_tests",
104     "//components/filename_generation:unit_tests",
105     "//components/flags_ui:unit_tests",
106     "//components/gcm_driver:unit_tests",
107     "//components/gcm_driver/crypto:unit_tests",
108     "//components/google/core/browser:unit_tests",
109     "//components/grpc_support/test:unit_tests",
110     "//components/gwp_asan:unit_tests",
111     "//components/history/core/browser:unit_tests",
112     "//components/history/core/common:unit_tests",
113     "//components/image_fetcher/core:unit_tests",
114     "//components/keyed_service/core:unit_tests",
115     "//components/language/core/browser:unit_tests",
116     "//components/language/core/common:unit_tests",
117     "//components/language_usage_metrics:unit_tests",
118     "//components/leveldb_proto:unit_tests",
119     "//components/live_tab_count_metrics:unit_tests",
120     "//components/login:unit_tests",
121     "//components/metrics:unit_tests",
122     "//components/navigation_metrics:unit_tests",
123     "//components/net_log:unit_tests",
124     "//components/network_session_configurator/browser:unit_tests",
125     "//components/network_time:unit_tests",
126     "//components/ntp_snippets:unit_tests",
127     "//components/ntp_tiles:unit_tests",
128     "//components/offline_items_collection/core:unit_tests",
129     "//components/omnibox/browser:unit_tests",
130     "//components/open_from_clipboard:unit_tests",
131     "//components/os_crypt:unit_tests",
132     "//components/password_manager/core/browser:unit_tests",
133     "//components/password_manager/core/common:unit_tests",
134     "//components/payments/core:unit_tests",
135     "//components/prefs:unit_tests",
136     "//components/previews/core:unit_tests",
137     "//components/proxy_config:unit_tests",
138     "//components/query_parser:unit_tests",
139     "//components/rappor:unit_tests",
140     "//components/reading_list/core:unit_tests",
141     "//components/safe_search_api:unit_tests",
142     "//components/scheduling_metrics:unit_tests",
143     "//components/search:unit_tests",
144     "//components/search_engines:unit_tests",
145     "//components/search_provider_logos:unit_tests",
146     "//components/security_state/core:unit_tests",
147     "//components/send_tab_to_self:unit_tests",
148     "//components/services/heap_profiling/public/cpp:unit_tests",
149     "//components/services/unzip:unit_tests",
150     "//components/sessions:unit_tests",
151     "//components/signin/core/browser:unit_tests",
152     "//components/ssl_errors:unit_tests",
153     "//components/subresource_filter/core/browser:unit_tests",
154     "//components/subresource_filter/core/common:unit_tests",
155     "//components/subresource_filter/tools:unit_tests",
156     "//components/suggestions:unit_tests",
157     "//components/supervised_user_error_page:unit_tests",
158     "//components/sync:unit_tests",
159     "//components/sync_bookmarks:unit_tests",
160     "//components/sync_preferences:unit_tests",
161     "//components/sync_sessions:unit_tests",
162     "//components/task_scheduler_util:unit_tests",
163     "//components/test:run_all_unittests",
164     "//components/translate/core/browser:unit_tests",
165     "//components/translate/core/common:unit_tests",
166     "//components/translate/core/language_detection:unit_tests",
167     "//components/ukm:unit_tests",
168     "//components/undo:unit_tests",
169     "//components/unified_consent:unit_tests",
170     "//components/update_client:unit_tests",
171     "//components/upload_list:unit_tests",
172     "//components/url_formatter:unit_tests",
173     "//components/url_formatter/top_domains:unit_tests",
174     "//components/url_matcher:unit_tests",
175     "//components/url_pattern_index:unit_tests",
176     "//components/variations:unit_tests",
177     "//components/variations/field_trial_config:unit_tests",
178     "//components/variations/service:unit_tests",
179     "//components/web_resource:unit_tests",
180     "//components/webdata/common:unit_tests",
181   ]
182
183   if (toolkit_views && use_aura) {
184     deps += [
185       "//components/ui_devtools:unit_tests",
186       "//components/ui_devtools/views:unit_tests",
187     ]
188   }
189
190   if (use_viz_devtools) {
191     deps += [ "//components/ui_devtools/viz:unit_tests" ]
192   }
193
194   if (enable_nacl) {
195     deps += [ "//components/nacl/browser:unit_tests" ]
196   }
197
198   if (is_ios) {
199     deps += [
200       "//components/autofill/ios/browser:unit_tests",
201       "//components/autofill/ios/form_util:unit_tests",
202       "//components/image_fetcher/ios:unit_tests",
203       "//components/password_manager/ios:unit_tests",
204       "//components/signin/ios/browser:unit_tests",
205       "//components/translate/ios/browser:unit_tests",
206     ]
207   } else {  # !iOS
208     deps += [
209       "//components/app_modal:unit_tests",
210       "//components/autofill/content/browser:unit_tests",
211       "//components/autofill/content/common:unit_tests",
212       "//components/autofill/content/renderer:unit_tests",
213       "//components/cast_certificate:unit_tests",
214       "//components/cast_channel:unit_tests",
215       "//components/certificate_transparency:unit_tests",
216       "//components/contextual_search/core:unit_tests",
217       "//components/crash/content/app:unit_tests",
218       "//components/crash/content/browser:unit_tests",
219       "//components/crash/core/common:unit_tests",
220       "//components/data_reduction_proxy/content/browser:unit_tests",
221       "//components/data_reduction_proxy/content/common:unit_tests",
222       "//components/data_reduction_proxy/content/renderer:unit_tests",
223       "//components/data_reduction_proxy/core/browser:unit_tests",
224       "//components/data_reduction_proxy/core/common:unit_tests",
225       "//components/data_use_measurement/core:unit_tests",
226       "//components/discardable_memory/common:unit_tests",
227       "//components/discardable_memory/service:unit_tests",
228       "//components/dom_distiller/content/browser:unit_tests",
229       "//components/domain_reliability:unit_tests",
230       "//components/favicon/content:unit_tests",
231       "//components/gcm_driver/instance_id:unit_tests",
232       "//components/history/content/browser:unit_tests",
233       "//components/invalidation/impl:unit_tests",
234       "//components/invalidation/public:unit_tests",
235       "//components/keyed_service/content:unit_tests",
236       "//components/language/content/browser:unit_tests",
237       "//components/link_header_util:unit_tests",
238       "//components/navigation_interception:unit_tests",
239       "//components/network_hints/renderer:unit_tests",
240       "//components/offline_pages:unit_tests",
241       "//components/optimization_guide:unit_tests",
242       "//components/page_image_annotation/content/renderer:unit_tests",
243       "//components/page_image_annotation/core:unit_tests",
244       "//components/password_manager/content/browser:unit_tests",
245       "//components/payments/content:unit_tests",
246       "//components/payments/content/utility:unit_tests",
247       "//components/policy/content:unit_tests",
248       "//components/policy/core/browser:unit_tests",
249       "//components/policy/core/common:unit_tests",
250       "//components/previews/content:unit_tests",
251       "//components/safe_browsing/common:unit_tests",
252       "//components/safe_browsing/password_protection:password_protection_unittest",
253       "//components/safe_browsing/triggers:unit_tests",
254       "//components/safe_browsing/web_ui:unit_tests",
255       "//components/security_interstitials/content:unit_tests",
256       "//components/security_state/content:unit_tests",
257       "//components/services/heap_profiling:unit_tests",
258       "//components/spellcheck/browser:unit_tests",
259       "//components/spellcheck/renderer:unit_tests",
260       "//components/subresource_filter/content/browser:unit_tests",
261       "//components/subresource_filter/content/common:unit_tests",
262       "//components/subresource_filter/content/renderer:unit_tests",
263       "//components/tracing:unit_tests",
264       "//components/translate/content/renderer:unit_tests",
265       "//components/ukm/content:unit_tests",
266       "//components/visitedlink/test:unit_tests",
267       "//components/web_cache/browser:unit_tests",
268       "//components/webcrypto:unit_tests",
269     ]
270
271     data_deps = [
272       ":components_tests_pak",
273       "//third_party/mesa_headers",
274       "//ui/resources:ui_test_pak",
275     ]
276   }  # iOS/!iOS
277
278   if (is_ios) {
279     deps += [ ":components_tests_pak_bundle_data" ]
280   }
281
282   if (is_mac || is_linux) {
283     data_deps += [ "//content/shell:pak" ]
284   }
285
286   if (is_android) {
287     deps += [
288       "//base:base_java_unittest_support",
289       "//components/autofill_assistant/browser:unit_tests",
290       "//components/cdm/browser:unit_tests",
291       "//components/crash/android:java",
292       "//components/crash/android:unit_tests",
293       "//components/gcm_driver/instance_id:test_support",
294       "//components/gcm_driver/instance_id/android:instance_id_driver_java",
295       "//components/gcm_driver/instance_id/android:instance_id_driver_test_support_java",
296       "//components/invalidation/impl",
297       "//components/invalidation/impl:java",
298       "//components/journey:unit_tests",
299       "//components/policy/android:policy_java",
300       "//components/signin/core/browser",
301       "//components/signin/core/browser/android:java",
302       "//components/spellcheck/browser/android:java",
303       "//components/tracing:tracing_test_helper_java",
304       "//components/variations/android:variations_java",
305       "//components/web_restrictions:test_support",
306       "//components/web_restrictions:test_support_java",
307       "//components/web_restrictions:unit_tests",
308       "//content/public/android:content_java",
309       "//content/public/browser",
310       "//net",
311       "//ui/android:ui_java",
312       "//ui/base",
313       "//ui/gfx",
314     ]
315     if (use_v8_context_snapshot) {
316       deps += [ "//tools/v8_context_snapshot:v8_context_snapshot_assets" ]
317     } else {
318       deps += [ "//v8:v8_external_startup_data_assets" ]
319     }
320   } else {  # !is_android
321     deps += [ "//components/keep_alive_registry:unit_tests" ]
322   }
323
324   # Desktop-only deps.
325   if (!is_android && !is_ios) {
326     deps += [
327       "//components/feedback:unit_tests",
328
329       # See comment in components/guest_view/browser/BUILD.gn for why
330       # guest_view is currently non-mobile.
331       "//components/guest_view/browser:unit_tests",
332       "//components/storage_monitor:unit_tests",
333       "//components/web_modal:unit_tests",
334       "//components/zoom:unit_tests",
335     ]
336   }
337
338   if (enable_rlz_support) {
339     deps += [ "//components/rlz:unit_tests" ]
340   }
341
342   if (is_chromeos) {
343     deps += [
344       "//components/arc:unit_tests",
345       "//components/ownership:unit_tests",
346       "//components/pairing:unit_tests",
347       "//components/timers:unit_tests",
348       "//components/user_manager:unit_tests",
349     ]
350   }
351
352   if (toolkit_views) {
353     deps += [ "//components/constrained_window:unit_tests" ]
354   }
355
356   if (is_win) {
357     deps += [ "//components/browser_watcher:unit_tests" ]
358   }
359
360   if (enable_basic_printing) {
361     deps += [
362       "//components/printing/browser:unit_tests",
363       "//components/services/pdf_compositor:unit_tests",
364     ]
365   }
366   if (enable_print_preview) {
367     deps += [ "//components/pwg_encoder:unit_tests" ]
368   }
369
370   if (safe_browsing_mode == 1) {
371     deps += [ "//components/safe_browsing/db:unit_tests_desktop" ]
372   } else if (safe_browsing_mode == 2) {
373     deps += [ "//components/safe_browsing/android:unit_tests_mobile" ]
374   }
375
376   if (!is_ios) {
377     deps += [
378       "//components/webrtc_logging/browser:unit_tests",
379       "//components/webrtc_logging/common:unit_tests",
380     ]
381   }
382
383   # No components should depend on Chrome.
384   assert_no_deps = [ "//chrome/*" ]
385
386   if (is_ios) {
387     assert_no_deps += ios_assert_no_deps
388   }
389 }
390
391 repack("components_tests_pak") {
392   sources = [
393     "$root_gen_dir/components/components_resources.pak",
394     "$root_gen_dir/components/strings/components_strings_en-US.pak",
395   ]
396
397   output = "$root_out_dir/components_tests_resources.pak"
398   deps = [
399     "//components/resources",
400     "//components/strings",
401   ]
402
403   if (is_chrome_branded) {
404     sources += [ "${root_gen_dir}/components/strings/components_google_chrome_strings_en-US.pak" ]
405   } else {
406     sources += [ "${root_gen_dir}/components/strings/components_chromium_strings_en-US.pak" ]
407   }
408 }
409
410 if (is_android) {
411   android_assets("components_browsertests_assets") {
412     testonly = true
413     sources = [
414       "$root_out_dir/components_tests_resources.pak",
415       "$root_out_dir/content_shell.pak",
416     ]
417     deps = [
418       ":components_tests_pak",
419       "//content/shell:pak",
420       "//third_party/icu:icu_assets",
421     ]
422     if (use_v8_context_snapshot) {
423       deps += [ "//tools/v8_context_snapshot:v8_context_snapshot_assets" ]
424     } else {
425       deps += [ "//v8:v8_external_startup_data_assets" ]
426     }
427   }
428
429   android_library("components_browsertests_java") {
430     testonly = true
431     deps = [
432       ":components_browsertests_resources",
433       "//base:base_java",
434       "//base:base_java_test_support",
435       "//content/public/test/android:content_java_test_support",
436       "//content/shell/android:content_shell_browsertests_java",
437       "//testing/android/native_test:native_test_java",
438     ]
439     java_files = [
440       "test/android/browsertests_apk/src/org/chromium/components_browsertests_apk/ComponentsBrowserTestsActivity.java",
441       "test/android/browsertests_apk/src/org/chromium/components_browsertests_apk/ComponentsBrowserTestsApplication.java",
442     ]
443   }
444
445   jinja_template("components_browsertests_manifest") {
446     testonly = true
447     input =
448         "//components/test/android/browsertests_apk/AndroidManifest.xml.jinja2"
449     output =
450         "${target_gen_dir}/components_browsertests_manifest/AndroidManifest.xml"
451   }
452
453   android_resources("components_browsertests_resources") {
454     testonly = true
455     resource_dirs = [ "//components/test/android/browsertests_apk/res" ]
456     custom_package = "org.chromium.components_browsertests_apk"
457   }
458 }
459
460 if (!is_ios || !is_tizen) {
461   test("components_browsertests") {
462     defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
463
464     sources = [
465       "autofill/content/browser/risk/fingerprint_browsertest.cc",
466       "autofill/content/renderer/field_data_manager_browsertest.cc",
467       "autofill/content/renderer/form_autofill_util_browsertest.cc",
468       "autofill/content/renderer/password_form_conversion_utils_browsertest.cc",
469       "dom_distiller/content/browser/distillable_page_utils_browsertest.cc",
470       "dom_distiller/content/browser/distiller_page_web_contents_browsertest.cc",
471       "dom_distiller/content/browser/test/dom_distiller_js_browsertest.cc",
472       "offline_pages/content/renovations/test/page_renovator_browsertest.cc",
473       "security_state/content/content_utils_browsertest.cc",
474       "ukm/content/source_url_recorder_browsertest.cc",
475     ]
476
477     data = [
478       "$root_out_dir/components_tests_resources.pak",
479       "$root_out_dir/content_shell.pak",
480       "test/data/",
481       "dom_distiller/core/javascript/",
482       "security_state/content/testdata/",
483       "//content/test/data/",
484       "//third_party/dom_distiller_js/dist/test/data/",
485     ]
486
487     deps = [
488       "//base",
489       "//base/test:test_support",
490       "//components/autofill/content/browser",
491       "//components/autofill/content/renderer",
492       "//components/autofill/core/browser",
493       "//components/content_settings/core/common",
494       "//components/dom_distiller/content/browser",
495       "//components/dom_distiller/core",
496       "//components/dom_distiller/core:test_support",
497       "//components/offline_pages/content/renovations",
498       "//components/offline_pages/core/renovations",
499       "//components/password_manager/content/browser",
500       "//components/security_state/content",
501       "//components/security_state/core",
502       "//components/strings",
503       "//components/tracing",
504       "//components/ukm:test_support",
505       "//components/ukm/content",
506       "//content/public/browser",
507       "//content/shell:content_shell_lib",
508       "//content/test:browsertest_support",
509       "//content/test:test_support",
510       "//device/bluetooth",
511       "//google_apis",
512       "//ipc:test_support",
513       "//net:test_support",
514       "//printing/buildflags",
515       "//services/device/public/cpp/test:test_support",
516       "//services/device/public/mojom",
517       "//services/service_manager/public/cpp",
518       "//services/service_manager/public/mojom",
519       "//testing/gmock",
520       "//testing/gtest",
521       "//ui/base",
522       "//url",
523     ]
524
525     data_deps = [
526       ":components_tests_pak",
527       "//third_party/mesa_headers",
528     ]
529
530     if (is_mac) {
531       data_deps += [ "//content/shell:content_shell" ]
532       data += [ "$root_out_dir/Content Shell.app/" ]
533     }
534
535     if (enable_plugins) {
536       sources += [ "pdf/renderer/pdf_accessibility_tree_browsertest.cc" ]
537       deps += [ "//components/pdf/renderer" ]
538     }
539
540     if (is_android) {
541       enable_multidex = true
542       sources += [
543         "autofill_assistant/browser/web_controller_browsertest.cc",
544         "test/android/browsertests_apk/components_browser_tests_jni_onload.cc",
545       ]
546       sources -= [ "autofill/content/browser/risk/fingerprint_browsertest.cc" ]
547       deps += [
548         "//components/autofill_assistant/browser",
549         "//components/autofill_assistant/browser:proto",
550         "//content/public/test/android:web_test_java_support",
551         "//content/test:web_test_support",
552         "//testing/android/native_test:native_test_support",
553       ]
554       use_default_launcher = false
555       android_manifest = "${target_gen_dir}/components_browsertests_manifest/AndroidManifest.xml"
556       android_manifest_dep = ":components_browsertests_manifest"
557       deps += [
558         ":components_browsertests_assets",
559         ":components_browsertests_java",
560       ]
561     }
562
563     if (is_linux) {
564       # content_extractor_browsertest is a standalone content extraction tool built as
565       # a MANUAL component_browsertest.
566       sources += [ "dom_distiller/standalone/content_extractor_browsertest.cc" ]
567       deps += [
568         "//components/leveldb_proto",
569         "//components/prefs:test_support",
570         "//components/sync_preferences:test_support",
571       ]
572     }
573
574     if (enable_basic_printing) {
575       sources += [ "printing/test/print_render_frame_helper_browsertest.cc" ]
576       deps += [ "//components/printing/test:test_support" ]
577     }
578
579     assert_no_deps = [ "//chrome/*" ]
580   }
581
582   test("components_perftests") {
583     sources = [
584       "discardable_memory/common/discardable_shared_memory_heap_perftest.cc",
585       "leveldb_proto/internal/proto_database_perftest.cc",
586       "omnibox/browser/history_quick_provider_performance_unittest.cc",
587       "subresource_filter/core/common/perftests/indexed_ruleset_perftest.cc",
588       "test/run_all_perftests.cc",
589       "visitedlink/test/visitedlink_perftest.cc",
590     ]
591
592     deps = [
593       "//base",
594       "//components/discardable_memory/common",
595       "//components/history/core/test",
596       "//components/leveldb_proto",
597       "//components/leveldb_proto/testing/proto",
598       "//components/omnibox/browser",
599       "//components/omnibox/browser:test_support",
600       "//components/subresource_filter/core/common",
601       "//components/subresource_filter/tools:tools_lib",
602       "//components/test:test_support",
603       "//components/visitedlink/browser",
604       "//testing/perf",
605       "//url",
606     ]
607
608     data_deps = [
609       ":components_tests_pak",
610       "//ui/resources:ui_test_pak",
611
612       # Needed for isolate script to execute.
613       "//testing:run_perf_test",
614     ]
615
616     data = [
617       "$root_out_dir/components_tests_resources.pak",
618       "$root_out_dir/ui_test.pak",
619       "//components/subresource_filter/core/common/perftests/data/",
620     ]
621
622     if (is_android) {
623       enable_multidex = true
624       deps += [ "//ui/android:ui_java" ]
625       if (use_v8_context_snapshot) {
626         deps += [ "//tools/v8_context_snapshot:v8_context_snapshot_assets" ]
627       } else {
628         deps += [ "//v8:v8_external_startup_data_assets" ]
629       }
630     }
631
632     if (!is_android) {
633       sources += [ "safe_browsing/db/v4_store_perftest.cc" ]
634       deps += [
635         "//components/safe_browsing/db:v4_protocol_manager_util",
636         "//components/safe_browsing/db:v4_store",
637         "//components/safe_browsing/db:v4_test_util",
638         "//crypto",
639       ]
640     }
641   }
642 }