BUILD.gn 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801
  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. import("//build/buildflag_header.gni")
  5. import("//build/config/chrome_build.gni") # For branding_file_path.
  6. import("//build/config/chromeos/ui_mode.gni")
  7. import("//build/util/process_version.gni")
  8. import("//chrome/browser/downgrade/buildflags.gni")
  9. import("//chrome/common/features.gni")
  10. import("//components/nacl/features.gni")
  11. import("//components/offline_pages/buildflags/features.gni")
  12. import("//device/vr/buildflags/buildflags.gni")
  13. import("//extensions/buildflags/buildflags.gni")
  14. import("//media/media_options.gni")
  15. import("//mojo/public/tools/bindings/mojom.gni")
  16. import("//pdf/features.gni")
  17. import("//ppapi/buildflags/buildflags.gni")
  18. import("//printing/buildflags/buildflags.gni")
  19. import("//third_party/widevine/cdm/widevine.gni")
  20. import("//tools/grit/grit_rule.gni")
  21. grit("resources") {
  22. source = "common_resources.grd"
  23. defines = chrome_grit_defines
  24. output_dir = "$root_gen_dir/chrome"
  25. output_name = "common_resources"
  26. outputs = [
  27. "grit/common_resources.h",
  28. "common_resources.pak",
  29. ]
  30. }
  31. buildflag_header("buildflags") {
  32. header = "buildflags.h"
  33. flags = [
  34. "BUILTIN_CERT_VERIFIER_POLICY_SUPPORTED=$builtin_cert_verifier_policy_supported",
  35. "CHROME_ROOT_STORE_POLICY_SUPPORTED=$chrome_root_store_policy_supported",
  36. "ENABLE_BACKGROUND_MODE=$enable_background_mode",
  37. "ENABLE_BACKGROUND_CONTENTS=$enable_background_contents",
  38. "ENABLE_BASIC_PRINT_DIALOG=$enable_basic_print_dialog",
  39. "ENABLE_CHROME_NOTIFICATIONS=$enable_chrome_notifications",
  40. "ENABLE_CLICK_TO_CALL=$enable_click_to_call",
  41. "ENABLE_DOWNGRADE_PROCESSING=$enable_downgrade_processing",
  42. "ENABLE_HANGOUT_SERVICES_EXTENSION=$enable_hangout_services_extension",
  43. "ENABLE_SERVICE_DISCOVERY=$enable_service_discovery",
  44. "ENABLE_SESSION_SERVICE=$enable_session_service",
  45. "ENABLE_SUPERVISED_USERS=$enable_supervised_users",
  46. "ENABLE_SYSTEM_NOTIFICATIONS=$enable_system_notifications",
  47. "ENABLE_WAYLAND_SERVER=$enable_wayland_server",
  48. "ENABLE_WEBUI_CERTIFICATE_VIEWER=$enable_webui_certificate_viewer",
  49. "ENABLE_WEBUI_TAB_STRIP=$enable_webui_tab_strip",
  50. "OPTIMIZE_WEBUI=$optimize_webui",
  51. ]
  52. }
  53. source_set("channel_info") {
  54. sources = [
  55. "channel_info.cc",
  56. "channel_info.h",
  57. ]
  58. deps = [
  59. "//build:branding_buildflags",
  60. "//build:chromeos_buildflags",
  61. ]
  62. public_deps = [
  63. "//base",
  64. "//components/version_info",
  65. "//components/version_info:version_string",
  66. ]
  67. if (is_win) {
  68. sources += [ "channel_info_win.cc" ]
  69. public_deps += [ "//chrome/install_static:install_static_util" ]
  70. } else if (is_mac) {
  71. sources += [ "channel_info_mac.mm" ]
  72. } else if (is_android) {
  73. sources += [ "channel_info_android.cc" ]
  74. public_deps += [ "//components/version_info/android:channel_getter" ]
  75. } else if (is_chromeos_ash) {
  76. sources += [ "channel_info_chromeos.cc" ]
  77. deps += [
  78. "//chromeos/crosapi/cpp",
  79. "//chromeos/crosapi/cpp:crosapi_constants",
  80. ]
  81. } else if (is_chromeos_lacros) {
  82. sources += [ "channel_info_lacros.cc" ]
  83. } else if (is_posix) {
  84. sources += [ "channel_info_posix.cc" ]
  85. } else if (is_fuchsia) {
  86. sources += [ "channel_info_fuchsia.cc" ]
  87. }
  88. }
  89. source_set("ini_parser") {
  90. sources = [
  91. "ini_parser.cc",
  92. "ini_parser.h",
  93. ]
  94. deps = [ "//base" ]
  95. }
  96. group("common") {
  97. public_deps = [ ":common_lib" ]
  98. if (is_win) {
  99. public_deps += [ ":delay_load_support" ]
  100. }
  101. }
  102. # Use a static library here because many test binaries depend on this but don't
  103. # require many files from it. This makes linking more efficient.
  104. static_library("common_lib") {
  105. visibility = [
  106. ":*",
  107. "//chrome/common/win:eventlog_messages",
  108. ]
  109. sources = [
  110. "all_messages.h",
  111. "child_process_host_flags.h",
  112. "child_process_logging.h",
  113. "chrome_content_client.cc",
  114. "chrome_content_client.h",
  115. "chrome_content_client_constants.cc",
  116. "chrome_descriptors.h",
  117. "chrome_isolated_world_ids.h",
  118. "chrome_resource_request_blocked_reason.h",
  119. "chrome_result_codes.cc",
  120. "chrome_result_codes.h",
  121. "common_message_generator.cc",
  122. "common_message_generator.h",
  123. "content_restriction.h",
  124. "crash_keys.cc",
  125. "crash_keys.h",
  126. "google_url_loader_throttle.cc",
  127. "google_url_loader_throttle.h",
  128. "logging_chrome.cc",
  129. "logging_chrome.h",
  130. "media/cdm_registration.cc",
  131. "media/cdm_registration.h",
  132. "media/media_resource_provider.cc",
  133. "media/media_resource_provider.h",
  134. "media_galleries/metadata_types.h",
  135. "pdf_util.cc",
  136. "pdf_util.h",
  137. "pref_names_util.cc",
  138. "pref_names_util.h",
  139. "ref_counted_util.h",
  140. "search/instant_mojom_traits.h",
  141. "search/instant_types.cc",
  142. "search/instant_types.h",
  143. "search/ntp_logging_events.h",
  144. "secure_origin_allowlist.cc",
  145. "secure_origin_allowlist.h",
  146. "url_constants.cc",
  147. "url_constants.h",
  148. "webui_url_constants.cc",
  149. "webui_url_constants.h",
  150. ]
  151. defines = []
  152. configs += [
  153. "//build/config:precompiled_headers",
  154. "//build/config/compiler:wexit_time_destructors",
  155. ]
  156. public_deps = [
  157. ":available_offline_content_mojom",
  158. ":buildflags",
  159. ":channel_info",
  160. ":ini_parser",
  161. ":mojo_bindings",
  162. ":offline_page_auto_fetcher_mojom",
  163. ":supervised_user_commands_mojom",
  164. "//base",
  165. "//base:base_static",
  166. "//base:i18n",
  167. "//build:branding_buildflags",
  168. "//build/config/chromebox_for_meetings:buildflags",
  169. "//chrome:resources",
  170. "//chrome:strings",
  171. "//chrome/app/theme:theme_resources",
  172. "//chrome/common:constants",
  173. "//chrome/common/net",
  174. "//chrome/common/privacy_budget",
  175. "//chrome/common/profiler",
  176. "//chrome/common/search:mojo_bindings",
  177. "//chrome/installer/util:with_no_strings",
  178. "//components/cast_certificate",
  179. "//components/cdm/common",
  180. "//components/client_hints/common",
  181. "//components/cloud_devices/common",
  182. "//components/component_updater",
  183. "//components/content_settings/core/common",
  184. "//components/crash/core/common",
  185. "//components/device_signals/core/common:features",
  186. "//components/dom_distiller/core",
  187. "//components/embedder_support/origin_trials",
  188. "//components/error_page/common",
  189. "//components/favicon_base",
  190. "//components/flags_ui:switches",
  191. "//components/gcm_driver/common",
  192. "//components/history_clusters/history_clusters_internals/webui",
  193. "//components/metrics",
  194. "//components/metrics:net",
  195. "//components/nacl/common:buildflags",
  196. "//components/nacl/common:process_type",
  197. "//components/nacl/common:switches",
  198. "//components/net_log",
  199. "//components/network_session_configurator/common",
  200. "//components/ntp_tiles",
  201. "//components/offline_pages/buildflags",
  202. "//components/offline_pages/core:switches",
  203. "//components/omnibox/common",
  204. "//components/optimization_guide/optimization_guide_internals/webui",
  205. "//components/page_load_metrics/common:page_load_metrics_mojom",
  206. "//components/password_manager/core/common",
  207. "//components/policy:generated",
  208. "//components/policy/core/common",
  209. "//components/prefs",
  210. "//components/safe_browsing:buildflags",
  211. "//components/safe_browsing/core/common",
  212. "//components/services/app_service/public/cpp:app_share_target",
  213. "//components/services/app_service/public/cpp:app_types",
  214. "//components/services/heap_profiling/public/cpp",
  215. "//components/strings",
  216. "//components/translate/content/common",
  217. "//components/translate/core/common",
  218. "//components/url_formatter",
  219. "//components/variations",
  220. "//components/variations/net",
  221. "//components/visitedlink/common",
  222. "//content/public/common",
  223. "//extensions/buildflags",
  224. "//google_apis",
  225. "//gpu/command_buffer/service",
  226. "//gpu/config",
  227. "//ipc",
  228. "//media",
  229. "//mojo/public/cpp/bindings",
  230. "//pdf:buildflags",
  231. "//ppapi/buildflags",
  232. "//printing/buildflags",
  233. "//sandbox/policy",
  234. "//skia",
  235. "//third_party/icu",
  236. "//third_party/re2",
  237. "//third_party/widevine/cdm:buildflags",
  238. "//ui/accessibility",
  239. "//ui/base",
  240. "//ui/gfx/ipc",
  241. "//ui/gfx/ipc/geometry",
  242. "//ui/gfx/ipc/skia",
  243. "//ui/gl",
  244. "//ui/message_center/public/cpp",
  245. "//ui/native_theme",
  246. "//ui/resources:resources",
  247. "//url",
  248. ]
  249. deps = [
  250. "//build:chromeos_buildflags",
  251. "//components/google/core/common",
  252. "//components/live_caption:constants",
  253. "//components/metrics:call_stack_profile_builder",
  254. "//components/no_state_prefetch/common",
  255. "//components/no_state_prefetch/common:mojo_bindings",
  256. "//components/page_load_metrics/common:common",
  257. ]
  258. if (enable_pdf) {
  259. deps += [ "//components/pdf/common" ]
  260. }
  261. if (enable_ppapi) {
  262. public_deps += [ "//ppapi/shared_impl" ]
  263. }
  264. if (enable_extensions) {
  265. sources += [
  266. "extensions/api/file_browser_handlers/file_browser_handler.cc",
  267. "extensions/api/file_browser_handlers/file_browser_handler.h",
  268. "extensions/api/notifications/notification_style.cc",
  269. "extensions/api/notifications/notification_style.h",
  270. "extensions/api/omnibox/omnibox_handler.cc",
  271. "extensions/api/omnibox/omnibox_handler.h",
  272. "extensions/api/side_panel/side_panel_info.cc",
  273. "extensions/api/side_panel/side_panel_info.h",
  274. "extensions/api/speech/tts_engine_manifest_handler.cc",
  275. "extensions/api/speech/tts_engine_manifest_handler.h",
  276. "extensions/api/storage/storage_schema_manifest_handler.cc",
  277. "extensions/api/storage/storage_schema_manifest_handler.h",
  278. "extensions/api/system_indicator/system_indicator_handler.cc",
  279. "extensions/api/system_indicator/system_indicator_handler.h",
  280. "extensions/api/url_handlers/url_handlers_parser.cc",
  281. "extensions/api/url_handlers/url_handlers_parser.h",
  282. "extensions/chrome_extensions_api_provider.cc",
  283. "extensions/chrome_extensions_api_provider.h",
  284. "extensions/chrome_extensions_client.cc",
  285. "extensions/chrome_extensions_client.h",
  286. "extensions/chrome_manifest_handlers.cc",
  287. "extensions/chrome_manifest_handlers.h",
  288. "extensions/chrome_manifest_url_handlers.cc",
  289. "extensions/chrome_manifest_url_handlers.h",
  290. "extensions/extension_constants.cc",
  291. "extensions/extension_constants.h",
  292. "extensions/extension_metrics.cc",
  293. "extensions/extension_metrics.h",
  294. "extensions/manifest_handlers/app_launch_info.cc",
  295. "extensions/manifest_handlers/app_launch_info.h",
  296. "extensions/manifest_handlers/linked_app_icons.cc",
  297. "extensions/manifest_handlers/linked_app_icons.h",
  298. "extensions/manifest_handlers/minimum_chrome_version_checker.cc",
  299. "extensions/manifest_handlers/minimum_chrome_version_checker.h",
  300. "extensions/manifest_handlers/natively_connectable_handler.cc",
  301. "extensions/manifest_handlers/natively_connectable_handler.h",
  302. "extensions/manifest_handlers/settings_overrides_handler.cc",
  303. "extensions/manifest_handlers/settings_overrides_handler.h",
  304. "extensions/manifest_handlers/theme_handler.cc",
  305. "extensions/manifest_handlers/theme_handler.h",
  306. "extensions/permissions/chrome_api_permissions.cc",
  307. "extensions/permissions/chrome_api_permissions.h",
  308. "extensions/permissions/chrome_permission_message_provider.cc",
  309. "extensions/permissions/chrome_permission_message_provider.h",
  310. "extensions/permissions/chrome_permission_message_rules.cc",
  311. "extensions/permissions/chrome_permission_message_rules.h",
  312. "extensions/sync_helper.cc",
  313. "extensions/sync_helper.h",
  314. "extensions/webstore_install_result.cc",
  315. "extensions/webstore_install_result.h",
  316. "initialize_extensions_client.cc",
  317. "initialize_extensions_client.h",
  318. ]
  319. deps += [
  320. "//chrome/common/apps/platform_apps",
  321. "//components/app_constants",
  322. "//components/services/app_service/public/mojom",
  323. ]
  324. public_deps += [
  325. "//chrome/common/extensions/api",
  326. "//chrome/common/extensions/api:extensions_features",
  327. "//extensions:extensions_resources",
  328. "//extensions/common",
  329. "//extensions/common:common_constants",
  330. "//extensions/common:core_api_provider",
  331. "//extensions/common/api",
  332. "//extensions/strings",
  333. "//media/cast:net",
  334. "//services/device/public/cpp/usb",
  335. ]
  336. }
  337. if (!is_fuchsia) {
  338. deps += [ "//components/crash/core/app" ]
  339. }
  340. if (is_mac) {
  341. assert(enable_extensions)
  342. sources += [
  343. "extensions/image_writer/image_writer_util_mac.cc",
  344. "extensions/image_writer/image_writer_util_mac.h",
  345. "mac/launchd.h",
  346. "mac/launchd.mm",
  347. "mac/service_management.h",
  348. "mac/service_management.mm",
  349. ]
  350. public_deps += [ ":app_mode_app_support" ]
  351. }
  352. if (is_chromeos) {
  353. assert(enable_extensions)
  354. sources += [
  355. "extensions/api/file_system_provider_capabilities/file_system_provider_capabilities_handler.cc",
  356. "extensions/api/file_system_provider_capabilities/file_system_provider_capabilities_handler.h",
  357. ]
  358. deps += [ "//chrome/common/chromeos/extensions" ]
  359. }
  360. if (is_chromeos_ash) {
  361. assert(enable_extensions)
  362. sources += [
  363. "extensions/api/input_ime/input_components_handler.cc",
  364. "extensions/api/input_ime/input_components_handler.h",
  365. ]
  366. public_deps += [ "//ash/keyboard/ui" ]
  367. deps += [ "//ash/constants" ]
  368. }
  369. if (is_chromeos) {
  370. deps += [ "//chrome/common/chromeos/extensions" ]
  371. }
  372. if (enable_nacl) {
  373. public_deps += [ "//components/nacl/common" ]
  374. }
  375. # Printing.
  376. if (enable_basic_printing) {
  377. public_deps += [
  378. "//components/printing/common",
  379. "//printing",
  380. ]
  381. }
  382. if (is_android) {
  383. sources -= [ "media_galleries/metadata_types.h" ]
  384. sources += [
  385. "media/chrome_media_drm_bridge_client.cc",
  386. "media/chrome_media_drm_bridge_client.h",
  387. ]
  388. } else {
  389. # Non-Android.
  390. public_deps += [ "//chrome/common/importer" ]
  391. }
  392. if (is_win) {
  393. sources += [
  394. "child_process_logging_win.cc",
  395. "conflicts/module_watcher_win.cc",
  396. "conflicts/module_watcher_win.h",
  397. "conflicts/remote_module_watcher_win.cc",
  398. "conflicts/remote_module_watcher_win.h",
  399. ]
  400. deps += [
  401. "//chrome/chrome_elf:chrome_elf_main_include",
  402. "//chrome/common/win:eventlog_messages",
  403. "//components/crash/core/app:crash_export_thunk_include",
  404. ]
  405. public_deps += [
  406. "//components/dom_distiller/core", # Needed by chrome_content_client.cc.
  407. "//third_party/wtl",
  408. ]
  409. libs = [ "wintrust.lib" ]
  410. }
  411. if (is_posix && !is_android) {
  412. sources += [
  413. "process_singleton_lock_posix.cc",
  414. "process_singleton_lock_posix.h",
  415. ]
  416. }
  417. if (is_mac) {
  418. public_deps += [ "//third_party/google_toolbox_for_mac" ]
  419. frameworks = [ "ServiceManagement.framework" ]
  420. }
  421. if (enable_plugins) {
  422. sources += [
  423. "ppapi_utils.cc",
  424. "ppapi_utils.h",
  425. ]
  426. }
  427. if (enable_plugins && enable_extensions) {
  428. sources += [
  429. "pepper_permission_util.cc",
  430. "pepper_permission_util.h",
  431. ]
  432. }
  433. if (enable_library_cdms) {
  434. deps += [ "//media/cdm:cdm_paths" ] # Needed by chrome_content_client.cc
  435. if (enable_widevine) {
  436. if (is_linux || is_chromeos_lacros) {
  437. sources += [
  438. "media/component_widevine_cdm_hint_file_linux.cc",
  439. "media/component_widevine_cdm_hint_file_linux.h",
  440. ]
  441. }
  442. deps += [ "//third_party/widevine/cdm:headers" ]
  443. }
  444. }
  445. if (safe_browsing_mode != 0) {
  446. public_deps += [ "//chrome/common/safe_browsing" ]
  447. }
  448. if (is_linux || is_chromeos) {
  449. sources += [
  450. "auto_start_linux.cc",
  451. "auto_start_linux.h",
  452. ]
  453. deps += [ "//sandbox/linux:sandbox_services" ]
  454. }
  455. if (enable_cdm_host_verification) {
  456. sources += [
  457. "media/cdm_host_file_path.cc",
  458. "media/cdm_host_file_path.h",
  459. ]
  460. public_deps += [ "//chrome/common:version_header" ]
  461. }
  462. }
  463. process_version("version_header") {
  464. # TODO(brettw) this should have more reduced visibility, but chrome/browser
  465. # currently depends on this.
  466. #visibility = [ ":*" ]
  467. sources = [
  468. "//chrome/VERSION",
  469. branding_file_path,
  470. ]
  471. template_file = "chrome_version.h.in"
  472. output = "$target_gen_dir/chrome_version.h"
  473. }
  474. # Separate out the constants that aren't intermingled with or dependent on code
  475. # so that they can be used without adding any binary bloat.
  476. static_library("non_code_constants") {
  477. sources = [
  478. "chrome_constants.cc",
  479. "chrome_constants.h",
  480. "chrome_switches.cc",
  481. "chrome_switches.h",
  482. "env_vars.cc",
  483. "env_vars.h",
  484. ]
  485. if (is_win) {
  486. sources += [ "chrome_icon_resources_win.h" ]
  487. }
  488. deps = [
  489. ":buildflags",
  490. ":version_header",
  491. "//base",
  492. "//build:chromeos_buildflags",
  493. "//ppapi/buildflags",
  494. ]
  495. public_deps = [
  496. "//build:branding_buildflags",
  497. "//printing/buildflags",
  498. "//ui/base:buildflags",
  499. ]
  500. }
  501. component("chrome_features") {
  502. defines = [ "IS_CHROME_FEATURES_IMPL" ]
  503. sources = [
  504. "chrome_features.cc",
  505. "chrome_features.h",
  506. ]
  507. deps = [
  508. ":buildflags",
  509. ":non_code_constants",
  510. "//base",
  511. "//build:chromeos_buildflags",
  512. "//components/offline_pages/buildflags",
  513. "//device/vr/buildflags",
  514. "//extensions/buildflags",
  515. "//media:media_buildflags",
  516. "//net:buildflags",
  517. "//ppapi/buildflags",
  518. "//printing/buildflags",
  519. "//rlz/buildflags",
  520. ]
  521. public_deps = [ "//ui/base:buildflags" ]
  522. }
  523. static_library("constants") {
  524. sources = [
  525. "chrome_paths.cc",
  526. "chrome_paths.h",
  527. "chrome_paths_internal.h",
  528. "chrome_result_codes.h",
  529. "pref_font_script_names-inl.h",
  530. "pref_font_webkit_names.h",
  531. "pref_names.cc",
  532. "pref_names.h",
  533. ]
  534. public_deps = [
  535. ":buildflags",
  536. ":chrome_features",
  537. ":non_code_constants",
  538. "//content/public/common:result_codes",
  539. "//rlz/buildflags",
  540. "//third_party/widevine/cdm:buildflags",
  541. ]
  542. deps = [
  543. ":channel_info",
  544. ":version_header",
  545. "//base",
  546. "//base/third_party/dynamic_annotations",
  547. "//build:branding_buildflags",
  548. "//build:chromeos_buildflags",
  549. "//components/bookmarks/common",
  550. "//components/nacl/common:switches",
  551. "//components/offline_pages/buildflags",
  552. "//extensions/buildflags",
  553. "//media:media_buildflags",
  554. "//ppapi/buildflags",
  555. "//printing/buildflags",
  556. "//third_party/widevine/cdm:buildflags",
  557. ]
  558. if (is_android) {
  559. sources += [ "chrome_paths_android.cc" ]
  560. # This dependency must only be added for Android.
  561. #
  562. # On Windows, //chrome/installer/util depends on this target to get
  563. # constants. That target is in turn used in a number of installer helper
  564. # targets independent of Chrome that we want to keep small. So we don't
  565. # want something large like //ui/base.
  566. #
  567. # Android doesn't have this structure and corresponding size limitation
  568. # on this target. On that platform one of the Chrome paths forwards to one
  569. # implemented in //ui/base, so we need that dependency.
  570. deps += [ "//ui/base" ]
  571. }
  572. if (is_chromeos_lacros) {
  573. sources += [
  574. "chrome_paths_lacros.cc",
  575. "chrome_paths_lacros.h",
  576. ]
  577. deps += [
  578. "//chromeos/crosapi/cpp:crosapi_constants",
  579. "//chromeos/lacros:lacros_paths",
  580. ]
  581. public_deps += [ "//chromeos/crosapi/mojom" ]
  582. } else if (is_linux || is_chromeos) {
  583. sources += [ "chrome_paths_linux.cc" ]
  584. }
  585. if (is_mac) {
  586. sources += [ "chrome_paths_mac.mm" ]
  587. }
  588. if (is_win) {
  589. sources += [ "chrome_paths_win.cc" ]
  590. deps += [ "//chrome/install_static:install_static_util" ]
  591. }
  592. if (is_fuchsia) {
  593. sources += [ "chrome_paths_fuchsia.cc" ]
  594. }
  595. if (enable_widevine && enable_library_cdms) {
  596. deps += [
  597. "//media/cdm:cdm_paths", # Needed by chrome_paths.cc.
  598. "//third_party/widevine/cdm:headers",
  599. ]
  600. }
  601. }
  602. # Use a static library here because many test binaries depend on this but don't
  603. # require many files from it. This makes linking more efficient.
  604. static_library("test_support") {
  605. testonly = true
  606. visibility = [ "//chrome/test:*" ]
  607. sources = [
  608. "search/mock_embedded_search_client.cc",
  609. "search/mock_embedded_search_client.h",
  610. ]
  611. deps = [
  612. ":common",
  613. "//base",
  614. "//chrome/common/search:mojo_bindings",
  615. "//testing/gmock",
  616. "//testing/gtest",
  617. ]
  618. if (enable_extensions) {
  619. sources += [
  620. "extensions/extension_test_util.cc",
  621. "extensions/extension_test_util.h",
  622. ]
  623. deps += [ "//chrome/common/extensions:test_features" ]
  624. }
  625. }
  626. if (is_mac) {
  627. source_set("app_mode_app_support") {
  628. sources = [
  629. "mac/app_mode_chrome_locator.h",
  630. "mac/app_mode_chrome_locator.mm",
  631. "mac/app_mode_common.h",
  632. "mac/app_mode_common.mm",
  633. ]
  634. configs += [ "//build/config/compiler:wexit_time_destructors" ]
  635. deps = [
  636. ":constants",
  637. "//base",
  638. ]
  639. }
  640. }
  641. if (is_win) {
  642. # delay load support must be a source_set to ensure that it has external
  643. # linkage and will correctly emplace over the correct symbols in
  644. # delayimp.lib at link time.
  645. source_set("delay_load_support") {
  646. sources = [
  647. "win/delay_load_failure_hook.cc",
  648. "win/delay_load_failure_hook.h",
  649. ]
  650. deps = [ "//base" ]
  651. }
  652. }
  653. mojom("mojo_bindings") {
  654. disable_variants = true
  655. sources = [
  656. "cache_stats_recorder.mojom",
  657. "chrome_render_frame.mojom",
  658. "draggable_regions.mojom",
  659. "media/webrtc_logging.mojom",
  660. "metrics.mojom",
  661. "net/net_error_page_support.mojom",
  662. "net_benchmarking.mojom",
  663. "network_diagnostics.mojom",
  664. "network_easter_egg.mojom",
  665. "open_search_description_document_handler.mojom",
  666. "plugin.mojom",
  667. "renderer_configuration.mojom",
  668. "sync_encryption_keys_extension.mojom",
  669. ]
  670. deps = []
  671. if (is_android) {
  672. sources += [ "sandbox_status_extension_android.mojom" ]
  673. }
  674. if (is_mac) {
  675. sources += [ "mac/app_shim.mojom" ]
  676. }
  677. if (is_win) {
  678. sources += [
  679. "conflicts/module_event_sink_win.mojom",
  680. "font_prewarmer.mojom",
  681. ]
  682. }
  683. public_deps = [
  684. "//components/content_settings/common:mojom",
  685. "//components/content_settings/core/common:mojo_bindings",
  686. "//components/no_state_prefetch/common:mojo_bindings",
  687. "//content/public/common:interfaces",
  688. "//mojo/public/mojom/base",
  689. "//third_party/blink/public/mojom:mojom_platform",
  690. "//ui/gfx/geometry/mojom",
  691. "//ui/gfx/image/mojom",
  692. "//url/mojom:url_mojom_gurl",
  693. "//url/mojom:url_mojom_origin",
  694. ]
  695. if (is_mac) {
  696. public_deps += [ "//components/remote_cocoa/common:mojo" ]
  697. }
  698. if (safe_browsing_mode == 1) {
  699. public_deps += [ "//chrome/services/file_util/public/mojom" ]
  700. }
  701. overridden_deps = [
  702. "//content/public/common:interfaces",
  703. "//third_party/blink/public/mojom:mojom_platform",
  704. ]
  705. component_deps = [ "//content/public/common" ]
  706. enabled_features = []
  707. if (enable_offline_pages) {
  708. sources += [ "mhtml_page_notifier.mojom" ]
  709. deps += [ "//third_party/blink/public/mojom:mojom_mhtml_load_result" ]
  710. enabled_features += [ "enable_offline_pages" ]
  711. }
  712. if (enable_plugins) {
  713. enabled_features += [ "enable_plugins" ]
  714. }
  715. }
  716. mojom("supervised_user_commands_mojom") {
  717. sources = [ "supervised_user_commands.mojom" ]
  718. }
  719. mojom("available_offline_content_mojom") {
  720. sources = [ "available_offline_content.mojom" ]
  721. public_deps = [ "//url/mojom:url_mojom_gurl" ]
  722. }
  723. mojom("offline_page_auto_fetcher_mojom") {
  724. sources = [ "offline_page_auto_fetcher.mojom" ]
  725. public_deps = [ "//url/mojom:url_mojom_gurl" ]
  726. }