d2682f5b8ffabeb7fcb39cd5a7c59f3dba9a6626
[platform/framework/web/crosswalk.git] / src / chrome / browser / 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/crypto.gni")
6 import("//build/config/features.gni")
7 import("//build/config/ui.gni")
8 import("//components/nacl/nacl_defines.gni")
9 # //build/config/android/rules.gni imports //tools/grit/grit_rule.gni, which
10 # produces a conflict for the "grit" template so we have to only include one.
11 if (is_android) {
12   import("//build/config/android/rules.gni")
13 } else {
14   import("//tools/grit/grit_rule.gni")
15 }
16 if (is_desktop_linux) {
17   import("//build/config/linux/pkg_config.gni")
18 }
19
20 about_credits_file = "$target_gen_dir/about_credits.html"
21 additional_modules_list_file =
22     "$root_gen_dir/chrome/browser/internal/additional_modules_list.txt"
23
24 gypi_values = exec_script(
25     "//build/gypi_to_gn.py",
26     [ rebase_path("../chrome_browser.gypi") ],
27     "scope",
28     [ "../chrome_browser.gypi" ])
29
30 if (is_desktop_linux) {
31   pkg_config("gnome_keyring") {
32     packages = [ "gnome-keyring-1" ]
33   }
34 }
35
36 static_library("browser") {
37   configs += [
38     "//build/config/compiler:wexit_time_destructors",
39     "//third_party/WebKit/public:debug_devtools",
40   ]
41   defines = []
42   sources = []
43   libs = []
44   ldflags = []
45
46   # iOS/non-iOS shared deps. New dependencies should generally be added in the
47   # non-iOS deps below.
48   public_deps = [
49     "//components/autofill/core/browser",
50     "//content/public/browser",
51     "//sql",
52     "//sync",
53   ]
54   deps = [
55     "//base/allocator",
56     "//chrome:extra_resources",
57     "//chrome:resources",
58     "//chrome:strings",
59     "//chrome/app:generated_resources_map",
60     "//chrome/app/resources:platform_locale_settings",
61     "//chrome/app/theme:theme_resources",
62     "//chrome/browser/history:in_memory_url_index_cache_proto",
63     "//chrome/browser/net:cert_logger_proto",
64     "//chrome/browser/net:probe_message_proto",
65     "//chrome/browser/ui",
66     "//chrome/common",
67     "//chrome/common/net",
68     "//components/autofill/core/browser",
69     "//components/bookmarks/browser",
70     "//components/captive_portal",
71     "//components/cloud_devices/common",
72     "//components/component_updater",
73     "//components/content_settings/core/browser",
74     "//components/content_settings/core/common",
75     "//components/crx_file",
76     "//components/data_reduction_proxy/core/browser",
77     "//components/domain_reliability",
78     "//components/enhanced_bookmarks",
79     "//components/favicon_base",
80     "//components/favicon/core",
81     "//components/feedback",
82     "//components/gcm_driver",
83     "//components/google/core/browser",
84     "//components/history/core/browser",
85     "//components/history/core/common",
86     "//components/infobars/core",
87     "//components/invalidation",
88     "//components/metrics:gpu",
89     "//components/metrics:net",
90     "//components/metrics:profiler",
91     "//components/metrics/proto:proto",
92     "//components/navigation_metrics",
93     "//components/network_time",
94     "//components/omaha_query_params",
95     "//components/omnibox",
96     "//components/os_crypt",
97     "//components/password_manager/core/browser",
98     "//components/password_manager/core/common",
99     "//components/policy:policy_component",
100     "//components/precache/core",
101     "//components/query_parser",
102     "//components/rappor",
103     "//components/renderer_context_menu",
104     "//components/search",
105     "//components/search_engines",
106     "//components/search_provider_logos",
107     "//components/signin/core/browser",
108     "//components/startup_metric_utils",
109     "//components/strings",
110     "//components/suggestions",
111     "//components/sync_driver",
112     "//components/translate/core/browser",
113     "//components/translate/core/common",
114     "//components/url_fixer",
115     "//components/user_prefs",
116     "//components/variations",
117     "//components/variations/net",
118     "//components/webdata/common",
119     "//content/public/browser",
120     "//content/public/common",
121     "//courgette:courgette_lib",
122     "//crypto",
123     "//google_apis",
124     "//gpu/config",
125     "//jingle:notifier",
126     "//skia",
127     "//sql",
128     "//sync",
129     "//third_party/cacheinvalidation",
130     "//third_party/icu",
131     "//third_party/libxml",
132     "//third_party/libjingle",
133     "//third_party/widevine/cdm:version_h",
134     "//third_party/zlib",
135     "//third_party/zlib:minizip",
136     "//third_party/zlib:zip",
137     "//ui/base",
138     "//ui/events:events_base",
139     "//ui/gfx",
140     "//ui/gfx/geometry",
141     "//ui/message_center",
142     "//ui/shell_dialogs",
143     "//ui/strings",
144     "//ui/resources",
145   ]
146
147   sources += rebase_path(gypi_values.chrome_browser_undo_sources,
148                          ".", "//chrome")
149
150   if (!is_ios) {
151     sources += rebase_path(gypi_values.chrome_browser_non_ios_sources,
152                            ".", "//chrome")
153     #TODO(GYP) Add these sources:
154     #        # These files are generated by GRIT.
155     #        '<(grit_out_dir)/grit/component_extension_resources_map.cc',
156     #        '<(grit_out_dir)/grit/theme_resources_map.cc',
157     #        '<(SHARED_INTERMEDIATE_DIR)/ui/resources/grit/ui_resources_map.cc',
158     #
159     #        # This file is generated by
160     #        # chrome/browser/metrics/variations/generate_resources_map.py
161     #        '<(SHARED_INTERMEDIATE_DIR)/chrome/browser/metrics/variations/generated_resources_map.cc',
162
163     defines = nacl_defines
164
165     deps += [
166       "//apps",
167       "//cc",
168       "//chrome/browser/devtools",
169       "//chrome/installer/util",
170       "//components/app_modal_dialogs",
171       "//components/autofill/content/browser",
172       "//components/dom_distiller/content",
173       "//components/keyed_service/content",
174       "//components/navigation_interception",
175       "//components/password_manager/content/browser",
176       "//components/precache/content",
177       "//components/sessions:sessions_content",
178       "//components/storage_monitor",
179       "//components/translate/content/browser",
180       "//components/url_matcher",
181       "//components/visitedlink/browser",
182       "//components/visitedlink/common",
183       "//components/web_cache/browser",
184       "//components/web_modal",
185       "//content/app/resources",
186       "//media",
187       "//media/cast:net",
188       "//mojo/common",
189       "//mojo/edk/system",
190       "//mojo/environment:chromium",
191       "//mojo/public/cpp/bindings",
192       "//mojo/public/js",
193       "//net:extras",
194       "//net:net_with_v8",
195       "//storage/browser",
196       "//storage/common",
197       "//third_party/WebKit/public:resources",
198       "//third_party/expat",
199       "//third_party/leveldatabase",
200       "//third_party/libaddressinput",
201       "//third_party/libyuv",
202       "//third_party/npapi",
203       "//third_party/re2",
204       "//third_party/smhasher:cityhash",
205       "//third_party/webrtc/modules/desktop_capture",
206       "//ui/gl",
207       "//ui/surface",
208       "//ui/web_dialogs",
209       "//v8",
210       ## TODO(tonyg): Remove this dependency (crbug.com/280157).
211       #"../testing/perf/perf_test.gyp:*",  TODO(GYP)
212     ]
213   } else {  # iOS
214     sources += rebase_path(gypi_values.chrome_browser_ios_sources,
215                           ".", "//chrome")
216     deps += [
217       "//net",
218     ]
219     libs += [
220       "CoreTelephony.framework",
221       "CoreText.framework",
222       "MobileCoreServices.framework",
223       "QuartzCore.framework",
224     ]
225     ldflags += [ "-weak_framework", "CoreImage" ]
226   }
227
228   if (is_win || is_mac) {
229     sources += rebase_path(gypi_values.chrome_browser_win_mac_sources,
230                            ".", "//chrome")
231   }
232   if (!is_android && !is_ios && !is_chromeos && enable_configuration_policy) {
233     sources += [
234       "net/disk_cache_dir_policy_handler.cc",
235       "net/disk_cache_dir_policy_handler.h",
236     ]
237   }
238   if (!is_android && !is_ios && enable_configuration_policy) {
239     sources += [
240       "download/download_dir_policy_handler.cc",
241       "download/download_dir_policy_handler.h",
242     ]
243   }
244   if (is_mac) {
245     sources += rebase_path(gypi_values.chrome_browser_mac_sources,
246                            ".", "//chrome")
247     deps += [
248       #"app_shim"  TODO(GYP)
249       #"browser_app_shim"  TODO(GYP)
250     ]
251   }
252   if (is_mac || is_ios) {
253     sources += rebase_path(gypi_values.chrome_browser_mac_ios_sources,
254                            ".", "//chrome")
255   }
256   if (cld2_data_source == "component") {
257     sources += [
258       "component_updater/cld_component_installer.cc",
259       "component_updater/cld_component_installer.h",
260     ]
261   }
262   if (enable_extensions) {
263     public_deps += [ "//chrome/browser/extensions" ]
264     deps += [
265       "//chrome/browser/sync_file_system/drive_backend:sync_file_system_drive_proto",
266       "//chrome/common/extensions/api",
267       "//chrome/common/extensions/api:api_registration",
268       "//extensions/components/javascript_dialog_extensions_client",
269     ]
270     sources += rebase_path(gypi_values.chrome_browser_extensions_sources,
271                            ".", "//chrome")
272   }
273   if (enable_background) {
274     sources += rebase_path(gypi_values.chrome_browser_background_sources,
275                            ".", "//chrome")
276     if (!use_aura || is_win || is_chromeos) {
277       sources -= [ "background/background_mode_manager_aura.cc" ]
278     }
279     defines += [ "ENABLE_BACKGROUND=1" ]
280   }
281   if (enable_task_manager) {
282     sources += rebase_path(gypi_values.chrome_browser_task_manager_sources,
283                            ".", "//chrome")
284   }
285   if (enable_spellcheck) {
286     sources += rebase_path(gypi_values.chrome_browser_spellchecker_sources,
287                            ".", "//chrome")
288     deps += [ "//third_party/hunspell" ]
289   }
290   if (enable_nacl) {
291     sources += rebase_path(gypi_values.chrome_browser_nacl_sources,
292                            ".", "//chrome")
293     #deps += [ "//components/nacl:nacl_browser" ]  TODO(GYP)
294   }
295
296   if (enable_configuration_policy) {
297     sources += rebase_path(
298         gypi_values.chrome_browser_policy_shared_with_ios_sources,
299         ".", "//chrome")
300     deps += [
301       "//components/policy",
302       "//components/policy/proto",
303     ]
304     if (!is_ios) {
305       sources += rebase_path(
306           gypi_values.chrome_browser_policy_non_ios_sources,
307           ".", "//chrome")
308     }
309     if (!is_chromeos) {
310       sources += rebase_path(
311           gypi_values.chrome_browser_policy_shared_with_ios_not_chromeos_sources,
312           ".", "//chrome")
313     }
314     if (is_win || is_mac || is_desktop_linux) {
315       sources += rebase_path(gypi_values.chrome_browser_policy_desktop_sources,
316                              ".", "//chrome")
317     }
318     if (is_android || is_ios) {
319       sources += rebase_path(gypi_values.chrome_browser_policy_mobile_sources,
320                              ".", "//chrome")
321     } else {
322       deps += [
323         "//chrome/browser/policy:path_parser",
324       ]
325     }
326   } else {
327     # Configuration policy disabled.
328     sources += rebase_path(gypi_values.chrome_browser_policy_disabled_sources,
329                            ".", "//chrome")
330   }
331
332   if (enable_plugins) {
333     sources += rebase_path(gypi_values.chrome_browser_plugins_sources,
334                            ".", "//chrome")
335     deps += [
336       "//components/pdf/browser",
337       "//ppapi:ppapi_ipc",
338       "//third_party/adobe/flash:flapper_version_h",
339     ]
340   }
341   if (safe_browsing_mode != 0) {
342     sources += rebase_path(
343         gypi_values.chrome_browser_basic_safe_browsing_sources,
344         ".", "//chrome")
345     deps += [
346       "//chrome/browser/safe_browsing:chunk_proto",
347       "//chrome/browser/safe_browsing:metadata_proto",
348       "//chrome/browser/safe_browsing:report_proto",
349     ]
350     if (safe_browsing_mode == 1) {
351       sources += rebase_path(
352           gypi_values.chrome_browser_full_safe_browsing_sources,
353           ".", "//chrome")
354       defines += [ "FULL_SAFE_BROWSING" ]
355       deps += [
356         "//chrome/common/safe_browsing:proto",
357       ]
358     } else if (safe_browsing_mode == 2) {
359       defines += [ "MOBILE_SAFE_BROWSING" ]
360     }
361   }
362
363   if (is_linux) {
364     configs += [ "//build/config/linux:udev" ]
365     deps += [ "//device/media_transfer_protocol" ]
366   }
367   if (is_linux && !is_chromeos) {
368     deps += [ "//third_party/speech-dispatcher" ]
369   }
370
371   if (is_chromeos) {
372     sources += rebase_path(gypi_values.chrome_browser_chromeos_sources,
373                            ".", "//chrome")
374     deps += [
375       "//chrome/browser/chromeos",
376     ]
377   } else {
378     # Non-ChromeOS.
379     sources += rebase_path(gypi_values.chrome_browser_non_chromeos_sources,
380                            ".", "//chrome")
381   }
382
383   if (is_chromeos || is_ios) {
384     sources -= [
385       "metrics/signin_status_metrics_provider.cc",
386       "metrics/signin_status_metrics_provider.h",
387     ]
388   }
389
390   if (use_cups) {
391     configs += [ "//printing:cups" ]
392   }
393   if (is_desktop_linux) {
394     sources += rebase_path(gypi_values.chrome_browser_gnome_keyring_sources,
395                            ".", "//chrome")
396     configs += [ ":gnome_keyring" ]
397   }
398   if (use_aura) {
399     sources += rebase_path(gypi_values.chrome_browser_aura_sources,
400                            ".", "//chrome")
401     deps += [
402       "//ui/aura",
403       "//ui/compositor",
404       "//ui/keyboard",
405     ]
406   }
407   if (ui_compositor_image_transport) {
408     deps += [ "//ui/gl" ]
409   }
410
411   if (use_ash) {
412     sources += rebase_path(gypi_values.chrome_browser_ash_sources,
413                            ".", "//chrome")
414   }
415
416   if (use_x11) {
417     sources += rebase_path(gypi_values.chrome_browser_x11_sources,
418                            ".", "//chrome")
419     if (!is_chromeos) {
420       configs += [ "//build/config/linux:xscrnsaver" ]
421     }
422   }
423   if (is_posix && !is_mac && !is_ios) {
424     sources += [
425       "//chrome/app/chrome_crash_reporter_client.cc",
426       "//chrome/app/chrome_crash_reporter_client.h",
427     ]
428     deps += [
429       "//components/crash/app",
430       "//components/crash/browser",
431     ]
432   }
433   if (use_nss_certs) {
434     sources += rebase_path(gypi_values.chrome_browser_nss_sources,
435                            ".", "//chrome")
436     if (is_chromeos) {
437       sources -= [ "net/nss_context_linux.cc" ]
438     }
439   }
440   if (enable_notifications) {
441     sources += rebase_path(gypi_values.chrome_browser_notifications_sources,
442                            ".", "//chrome")
443     if (!is_android) {
444       sources += rebase_path(
445           gypi_values.chrome_browser_non_android_notifications_sources,
446           ".", "//chrome")
447     }
448   }
449   if (enable_themes) {
450     sources += rebase_path(gypi_values.chrome_browser_themes_sources,
451                            ".", "//chrome")
452   }
453
454   if (enable_basic_printing || enable_print_preview) {
455     # Some form of printing support.
456     sources += rebase_path(gypi_values.chrome_browser_basic_printing_sources,
457                            ".", "//chrome")
458     deps += [
459       "//printing",
460     ]
461     if (is_win) {
462       sources += rebase_path(gypi_values.chrome_browser_printing_emf_sources,
463                              ".", "//chrome")
464     }
465     if (enable_print_preview) {
466       # Full printing on top of the above.
467       sources += rebase_path(gypi_values.chrome_browser_full_printing_sources,
468                              ".", "//chrome")
469     } else {
470       # Partial-only printing support.
471       sources += rebase_path(
472           gypi_values.chrome_browser_basic_only_printing_sources,
473           ".", "//chrome")
474     }
475   }
476   if (enable_captive_portal_detection) {
477     sources += rebase_path(gypi_values.chrome_browser_captive_portal_sources,
478                            ".", "//chrome")
479   }
480   if (enable_session_service) {
481     sources += rebase_path(gypi_values.chrome_browser_session_service_sources,
482                            ".", "//chrome")
483   }
484
485   if (!is_android && !is_ios && !is_chromeos) {
486     sources += rebase_path(gypi_values.chrome_browser_desktop_sources,
487                            ".", "//chrome")
488   }
489
490   if (is_android || is_ios) {
491     # Mobile.
492     sources += rebase_path(gypi_values.chrome_browser_mobile_sources,
493                            ".", "//chrome")
494   } else {
495     # Non-mobile.
496     sources += rebase_path(gypi_values.chrome_browser_non_mobile_sources,
497                            ".", "//chrome")
498     deps += [
499       "//device/core",
500       "//device/usb",
501     ]
502   }
503
504   if (is_android) {
505     sources += rebase_path(gypi_values.chrome_browser_android_sources,
506                            ".", "//chrome")
507     deps += [
508       ":jni_headers",
509       "//components/cdm/browser",
510       "//components/enhanced_bookmarks",
511       "//components/history/core/android",
512       "//components/resources:components_resources",
513       "//components/web_contents_delegate_android",
514       "//third_party/android_opengl/etc1",
515     ]
516     deps -= [
517       "//third_party/libaddressinput",
518       "//components/feedback",
519       "//components/storage_monitor",
520       "//components/web_modal",
521     ]
522   } else {
523     sources += rebase_path(gypi_values.chrome_browser_non_android_sources,
524                            ".", "//chrome")
525   }
526
527   if (is_mac) {
528     deps += [
529       "//third_party/google_toolbox_for_mac",
530       #"../third_party/mozilla/mozilla.gyp:mozilla",  TODO(GYP)
531     ]
532     libs += [
533       "Accelerate.framework",
534       "AddressBook.framework",
535       "AudioUnit.framework",
536       "DiskArbitration.framework",
537       "IOKit.framework",
538       "ImageCaptureCore.framework",
539       "OpenGL.framework",
540       "QuartzCore.framework",
541       "SecurityInterface.framework",
542     ]
543   }
544
545   if (enable_rlz) {
546     sources += rebase_path(gypi_values.chrome_browser_rlz_sources,
547                            ".", "//chrome")
548     deps += [ "//rlz:rlz_lib" ]
549   }
550
551   # TODO(GYP)
552   # Temporary fix to break the browser target into smaller chunks so it
553   # will link with goma builds.
554   #["OS=="win" and chromium_win_pch==0", {
555   #  "msvs_shard": 4,
556   #}],
557
558   if (is_win) {
559     sources += rebase_path(gypi_values.chrome_browser_win_sources,
560                            ".", "//chrome")
561     if (!is_chrome_branded) {
562       sources -= [
563         "google/did_run_updater_win.cc",
564         "google/did_run_updater_win.h",
565       ]
566     }
567     public_deps += [
568       "//ui/views",
569       "//ui/views/controls/webview",
570     ]
571     deps += [
572       "//chrome:version_header",
573       "//chrome/installer/util:strings",
574       "//third_party/iaccessible2",
575       "//third_party/isimpledom",
576       "//third_party/wtl",
577       #"chrome_process_finder",  TODO(GYP)
578       #"../chrome_elf/chrome_elf.gyp:chrome_elf",  TODO(GYP)
579       #"../chrome_elf/chrome_elf.gyp:chrome_elf_constants",  TODO(GYP)
580       #"../chrome_elf/chrome_elf.gyp:dll_hash",  TODO(GYP)
581       #"../google_update/google_update.gyp:google_update",  TODO(GYP)
582       #"../ui/metro_viewer/metro_viewer.gyp:metro_viewer_messages",  TODO(GYP)
583       #"../win8/win8.gyp:metro_viewer",  TODO(GYP)
584     ]
585   } else {
586     # Non-Windows.
587     sources += rebase_path(gypi_values.chrome_browser_non_win_sources,
588                            ".", "//chrome")
589     if (toolkit_views) {
590       deps += [
591       "//ui/views",
592       "//ui/views/controls/webview",
593       ]
594       # TODO(GYP) why is this needed? Very susicious.
595       #  "include_dirs": [
596       #    "<(INTERMEDIATE_DIR)/chrome",
597       #  ],
598     }
599   }
600
601   if (is_linux) {
602     sources += rebase_path(gypi_values.chrome_browser_linux_sources,
603                            ".", "//chrome")
604     if (use_aura) {
605       configs += [
606         "//build/config/linux:dbus",
607         "//build/config/linux:fontconfig",
608       ]
609       deps += [
610         "//dbus",
611       ]
612     }
613     if (use_x11) {
614       configs += [ "//build/config/linux:x11" ]
615       deps += [ "//ui/gfx/x" ]
616     }
617   }
618
619   if (is_desktop_linux) {
620     sources += rebase_path(gypi_values.chrome_browser_desktop_linux_sources,
621                            ".", "//chrome")
622   }
623   if (enable_plugin_installation) {
624     sources += rebase_path(
625         gypi_values.chrome_browser_plugin_installation_sources,
626         ".", "//chrome")
627   }
628   if (enable_app_list) {
629     deps += [
630       "//ui/app_list",
631     ]
632   }
633   if (enable_managed_users) {
634     sources += rebase_path(
635         gypi_values.chrome_browser_supervised_user_sources,
636         ".", "//chrome")
637   }
638   if (enable_webrtc) {
639     sources += rebase_path(
640         gypi_values.chrome_browser_webrtc_sources,
641         ".", "//chrome")
642   }
643   if (enable_service_discovery) {
644     sources += rebase_path(
645         gypi_values.chrome_browser_service_discovery_sources,
646         ".", "//chrome")
647   }
648   if (enable_mdns) {
649     sources += rebase_path(
650         gypi_values.chrome_browser_mdns_sources,
651         ".", "//chrome")
652   }
653   if (!enable_autofill_dialog || is_android || is_ios) {
654     sources -= [
655       "autofill/validation_rules_storage_factory.cc",
656       "autofill/validation_rules_storage_factory.h",
657     ]
658   }
659   if (enable_wifi_bootstrapping) {
660     sources += rebase_path(
661         gypi_values.chrome_browser_wifi_bootstrapping_sources,
662         ".", "//chrome")
663     if (is_win || is_mac) {
664       # TODO(brettw) as of this writing wifi bootstrapping is set on Windows
665       # and Mac, so this test is meaningless. Can we merge these lists?
666       sources += rebase_path(
667           gypi_values.chrome_browser_win_mac_wifi_bootstrapping_sources,
668           ".", "//chrome")
669     }
670   }
671 }
672
673 if (is_android) {
674   # GYP version: chrome/chrome_browser.gypi:chrome_browser_jni_headers
675   generate_jni("jni_headers") {
676     sources = rebase_path(
677         gypi_values.chrome_browser_jni_sources, ".", "//chrome")
678     jni_package = "chrome"
679   }
680 }
681
682 # GYP version: chrome/chrome_resources.gyp:chrome_resources
683 # (generate_browser_resources action)
684 grit("resources") {
685   source = "browser_resources.grd"
686   output_dir = "$root_gen_dir/chrome"
687   outputs = [
688     "grit/browser_resources.h",
689     "browser_resources.pak",
690   ]
691
692   omnibox_mojom_file = "$root_gen_dir/chrome/browser/ui/webui/omnibox/omnibox.mojom.js"
693
694   grit_flags = [
695     "-E", "about_credits_file=" +
696           rebase_path(about_credits_file, root_build_dir),
697     "-E", "additional_modules_list_file=" +
698           rebase_path(additional_modules_list_file, root_build_dir),
699     "-E", "omnibox_mojom_file=" +
700           rebase_path(omnibox_mojom_file, root_build_dir),
701   ]
702
703   deps = [
704     ":about_credits",
705     ":chrome_internal_resources_gen",
706     "//chrome/browser/ui/webui/omnibox:mojo_bindings",
707     "//mojo/environment:chromium",
708   ]
709 }
710
711 # GYP version: chrome/chrome_resource.gyp:about_credits
712 action("about_credits") {
713   script = "//tools/licenses.py"
714
715   # TODO(phajdan.jr): input dependencies so this can be regenerated
716   # automatically when one of the credits changes. The way this should work is
717   # that licenses.py should write a .d file listing the input dependencies (see
718   # "depfile" in GN).
719   outputs = [ about_credits_file ]
720
721   args = [
722     "credits",
723     rebase_path(about_credits_file, root_build_dir),
724   ]
725 }
726
727 # GYP version: chrome/chrome_resource.gyp:chrome_internal_resources_gen
728 if (is_chrome_branded) {
729   action("chrome_internal_resources_gen") {
730     script = "internal/transform_additional_modules_list.py"
731     sources = [ "internal/resources/additional_modules_list.input" ]
732     outputs = [ additional_modules_list_file ]
733     args = rebase_path(sources, root_build_dir) +
734            rebase_path(outputs, root_build_dir)
735   }
736 } else {
737   group("chrome_internal_resources_gen") {
738     # Empty placeholder.
739   }
740 }
741
742 # In GYP this is part of test_support_common.
743 source_set("test_support") {
744   testonly = true
745
746   # Always include this via the main test support target.
747   visibility = [ "//chrome/test:test_support" ]
748
749   sources = [
750     "browsing_data/mock_browsing_data_appcache_helper.cc",
751     "browsing_data/mock_browsing_data_appcache_helper.h",
752     "browsing_data/mock_browsing_data_channel_id_helper.cc",
753     "browsing_data/mock_browsing_data_channel_id_helper.h",
754     "browsing_data/mock_browsing_data_cookie_helper.cc",
755     "browsing_data/mock_browsing_data_cookie_helper.h",
756     "browsing_data/mock_browsing_data_database_helper.cc",
757     "browsing_data/mock_browsing_data_database_helper.h",
758     "browsing_data/mock_browsing_data_file_system_helper.cc",
759     "browsing_data/mock_browsing_data_file_system_helper.h",
760     "browsing_data/mock_browsing_data_flash_lso_helper.cc",
761     "browsing_data/mock_browsing_data_flash_lso_helper.h",
762     "browsing_data/mock_browsing_data_indexed_db_helper.cc",
763     "browsing_data/mock_browsing_data_indexed_db_helper.h",
764     "browsing_data/mock_browsing_data_local_storage_helper.cc",
765     "browsing_data/mock_browsing_data_local_storage_helper.h",
766     "browsing_data/mock_browsing_data_quota_helper.cc",
767     "browsing_data/mock_browsing_data_quota_helper.h",
768     "browsing_data/mock_browsing_data_service_worker_helper.cc",
769     "browsing_data/mock_browsing_data_service_worker_helper.h",
770     "download/download_test_file_activity_observer.cc",
771     "download/download_test_file_activity_observer.h",
772     "download/test_download_shelf.cc",
773     "download/test_download_shelf.h",
774     "invalidation/fake_invalidation_service.cc",
775     "invalidation/fake_invalidation_service.h",
776     "media/fake_desktop_media_list.cc",
777     "media/fake_desktop_media_list.h",
778     "net/dns_probe_test_util.cc",
779     "net/dns_probe_test_util.h",
780     "net/url_request_mock_util.cc",
781     "net/url_request_mock_util.h",
782     "notifications/notification_test_util.cc",
783     "notifications/notification_test_util.h",
784     "password_manager/mock_password_store_service.cc",
785     "password_manager/mock_password_store_service.h",
786     "password_manager/null_password_store_service.cc",
787     "password_manager/null_password_store_service.h",
788     "password_manager/test_password_store_service.cc",
789     "password_manager/test_password_store_service.h",
790     "prefs/pref_service_mock_factory.cc",
791     "prefs/pref_service_mock_factory.h",
792     "profile_resetter/profile_resetter_test_base.cc",
793     "profile_resetter/profile_resetter_test_base.h",
794     "search_engines/template_url_service_factory_test_util.cc",
795     "search_engines/template_url_service_factory_test_util.h",
796     "search_engines/template_url_service_test_util.cc",
797     "search_engines/template_url_service_test_util.h",
798     "sessions/session_service_test_helper.cc",
799     "sessions/session_service_test_helper.h",
800     "signin/fake_account_reconcilor.cc",
801     "signin/fake_account_reconcilor.h",
802     "signin/fake_account_tracker_service.cc",
803     "signin/fake_account_tracker_service.h",
804     "signin/fake_profile_oauth2_token_service.cc",
805     "signin/fake_profile_oauth2_token_service.h",
806     "signin/fake_profile_oauth2_token_service_builder.cc",
807     "signin/fake_profile_oauth2_token_service_builder.h",
808     "signin/fake_signin_manager.cc",
809     "signin/fake_signin_manager.h",
810     "ssl/ssl_client_auth_requestor_mock.cc",
811     "ssl/ssl_client_auth_requestor_mock.h",
812     "sync/profile_sync_components_factory_mock.cc",
813     "sync/profile_sync_components_factory_mock.h",
814     "sync/profile_sync_service_mock.cc",
815     "sync/profile_sync_service_mock.h",
816   ]
817
818   public_deps = [
819     ":browser",
820     "//chrome/browser/ui:test_support",
821   ]
822   deps = [
823     "//base:prefs_test_support",
824     "//chrome/browser",
825     "//chrome/common",
826     "//chrome/common/safe_browsing:proto",
827     "//components/invalidation",
828     "//components/invalidation:test_support",
829     "//components/password_manager/core/browser:test_support",
830     "//components/search_engines:test_support",
831     "//content/test:test_support",
832     "//chrome/app/theme:theme_resources",
833     "//net:test_support",
834     "//skia",
835     "//testing/gmock",
836     "//testing/gtest",
837     "//ui/gfx",
838   ]
839
840   if (!is_ios) {
841     deps += [
842       "//components/sessions:test_support",
843       "//google_apis:test_support",
844     ]
845   }
846
847   if (enable_extensions) {
848     sources += [
849       "extensions/extension_action_test_util.cc",
850       "extensions/extension_action_test_util.h",
851     ]
852     deps += [
853       "//extensions:test_support",
854     ]
855   }
856
857   if (is_chromeos) {
858     sources += [
859       "chromeos/app_mode/fake_cws.cc",
860       "chromeos/app_mode/fake_cws.h",
861       "chromeos/file_manager/fake_disk_mount_manager.cc",
862       "chromeos/file_manager/fake_disk_mount_manager.h",
863       "chromeos/input_method/mock_candidate_window_controller.cc",
864       "chromeos/input_method/mock_candidate_window_controller.h",
865       "chromeos/input_method/mock_input_method_engine.cc",
866       "chromeos/input_method/mock_input_method_engine.h",
867       "chromeos/input_method/mock_input_method_manager.cc",
868       "chromeos/input_method/mock_input_method_manager.h",
869       "chromeos/login/fake_login_utils.cc",
870       "chromeos/login/fake_login_utils.h",
871       "chromeos/login/mock_login_utils.cc",
872       "chromeos/login/mock_login_utils.h",
873       "chromeos/login/users/avatar/mock_user_image_manager.cc",
874       "chromeos/login/users/avatar/mock_user_image_manager.h",
875       "chromeos/login/users/fake_supervised_user_manager.cc",
876       "chromeos/login/users/fake_supervised_user_manager.h",
877       "chromeos/login/users/fake_user_manager.cc",
878       "chromeos/login/users/fake_user_manager.h",
879       "chromeos/login/users/mock_user_manager.cc",
880       "chromeos/login/users/mock_user_manager.h",
881       "chromeos/login/test/oobe_screen_waiter.cc",
882       "chromeos/login/test/oobe_screen_waiter.h",
883       "chromeos/login/test/js_checker.cc",
884       "chromeos/login/test/js_checker.h",
885       "chromeos/login/ui/mock_login_display.cc",
886       "chromeos/login/ui/mock_login_display.h",
887       "chromeos/login/ui/mock_login_display_host.cc",
888       "chromeos/login/ui/mock_login_display_host.h",
889       "chromeos/net/network_portal_detector_test_utils.cc",
890       "chromeos/net/network_portal_detector_test_utils.h",
891       "chromeos/policy/cloud_external_data_manager_base_test_util.cc",
892       "chromeos/policy/cloud_external_data_manager_base_test_util.h",
893       "chromeos/policy/device_policy_builder.cc",
894       "chromeos/policy/device_policy_builder.h",
895       "chromeos/policy/fake_device_cloud_policy_initializer.cc",
896       "chromeos/policy/fake_device_cloud_policy_initializer.h",
897       "chromeos/policy/stub_enterprise_install_attributes.cc",
898       "chromeos/policy/stub_enterprise_install_attributes.h",
899       "chromeos/settings/device_settings_test_helper.cc",
900       "chromeos/settings/device_settings_test_helper.h",
901       "chromeos/system/fake_input_device_settings.cc",
902       "chromeos/system/fake_input_device_settings.h",
903     ]
904     configs += [ "//build/config/linux:dbus" ]
905     deps += [ "//chromeos:test_support" ]
906   }
907
908   if (enable_configuration_policy) {
909     sources += [
910       "policy/test/local_policy_test_server.cc",
911       "policy/test/local_policy_test_server.h",
912     ]
913     public_deps += [
914       "//components/policy:policy_component_test_support",
915       "//components/policy:test_support",
916     ]
917   }
918
919   if (safe_browsing_mode == 1) {
920     sources += [
921       "extensions/fake_safe_browsing_database_manager.cc",
922       "extensions/fake_safe_browsing_database_manager.h",
923     ]
924   }
925
926   if (enable_extensions) {
927     sources += [
928       "drive/dummy_drive_service.cc",
929       "drive/dummy_drive_service.h",
930       "drive/fake_drive_service.cc",
931       "drive/fake_drive_service.h",
932       "drive/test_util.cc",
933       "drive/test_util.h",
934       "extensions/api/messaging/native_messaging_test_util.cc",
935       "extensions/api/messaging/native_messaging_test_util.h",
936       "extensions/extension_notification_observer.cc",
937       "extensions/extension_notification_observer.h",
938       "extensions/mock_extension_special_storage_policy.cc",
939       "extensions/mock_extension_special_storage_policy.h",
940       "extensions/test_blacklist.cc",
941       "extensions/test_blacklist.h",
942       "extensions/test_blacklist_state_fetcher.cc",
943       "extensions/test_blacklist_state_fetcher.h",
944       "extensions/test_extension_environment.cc",
945       "extensions/test_extension_environment.h",
946       "extensions/test_extension_prefs.cc",
947       "extensions/test_extension_prefs.h",
948       "extensions/test_extension_service.cc",
949       "extensions/test_extension_service.h",
950       "extensions/test_extension_system.cc",
951       "extensions/test_extension_system.h",
952       "media_galleries/media_galleries_test_util.cc",
953       "media_galleries/media_galleries_test_util.h",
954     ]
955     deps += [
956       "//components/storage_monitor:test_support",
957     ]
958   }
959
960   if (enable_mdns) {
961     sources += [
962       "local_discovery/test_service_discovery_client.cc",
963       "local_discovery/test_service_discovery_client.h",
964     ]
965   }
966
967   if (enable_app_list) {
968     sources += [
969       "ui/app_list/test/chrome_app_list_test_support.cc",
970       "ui/app_list/test/chrome_app_list_test_support.h",
971     ]
972   }
973
974   if (enable_wifi_bootstrapping) {
975     sources += [
976       "local_discovery/wifi/mock_wifi_manager.cc",
977       "local_discovery/wifi/mock_wifi_manager.h",
978     ]
979   }
980 }