BUILD.gn 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419
  1. # Copyright (c) 2018 GitHub, Inc.
  2. # Use of this source code is governed by the MIT license that can be
  3. # found in the LICENSE file.
  4. import("//build/config/ozone.gni")
  5. import("//build/config/ui.gni")
  6. import("//components/spellcheck/spellcheck_build_features.gni")
  7. import("//electron/buildflags/buildflags.gni")
  8. import("//printing/buildflags/buildflags.gni")
  9. import("//third_party/widevine/cdm/widevine.gni")
  10. # Builds some of the chrome sources that Electron depends on.
  11. static_library("chrome") {
  12. visibility = [ "//electron:electron_lib" ]
  13. sources = [
  14. "//chrome/browser/accessibility/accessibility_ui.cc",
  15. "//chrome/browser/accessibility/accessibility_ui.h",
  16. "//chrome/browser/app_mode/app_mode_utils.cc",
  17. "//chrome/browser/app_mode/app_mode_utils.h",
  18. "//chrome/browser/browser_features.cc",
  19. "//chrome/browser/browser_features.h",
  20. "//chrome/browser/browser_process.cc",
  21. "//chrome/browser/browser_process.h",
  22. "//chrome/browser/devtools/devtools_contents_resizing_strategy.cc",
  23. "//chrome/browser/devtools/devtools_contents_resizing_strategy.h",
  24. "//chrome/browser/devtools/devtools_embedder_message_dispatcher.cc",
  25. "//chrome/browser/devtools/devtools_embedder_message_dispatcher.h",
  26. "//chrome/browser/devtools/devtools_eye_dropper.cc",
  27. "//chrome/browser/devtools/devtools_eye_dropper.h",
  28. "//chrome/browser/devtools/devtools_file_system_indexer.cc",
  29. "//chrome/browser/devtools/devtools_file_system_indexer.h",
  30. "//chrome/browser/devtools/devtools_settings.h",
  31. "//chrome/browser/extensions/global_shortcut_listener.cc",
  32. "//chrome/browser/extensions/global_shortcut_listener.h",
  33. "//chrome/browser/icon_loader.cc",
  34. "//chrome/browser/icon_loader.h",
  35. "//chrome/browser/icon_manager.cc",
  36. "//chrome/browser/icon_manager.h",
  37. "//chrome/browser/net/chrome_mojo_proxy_resolver_factory.cc",
  38. "//chrome/browser/net/chrome_mojo_proxy_resolver_factory.h",
  39. "//chrome/browser/net/proxy_config_monitor.cc",
  40. "//chrome/browser/net/proxy_config_monitor.h",
  41. "//chrome/browser/net/proxy_service_factory.cc",
  42. "//chrome/browser/net/proxy_service_factory.h",
  43. "//chrome/browser/platform_util.cc",
  44. "//chrome/browser/platform_util.h",
  45. "//chrome/browser/predictors/preconnect_manager.cc",
  46. "//chrome/browser/predictors/preconnect_manager.h",
  47. "//chrome/browser/predictors/predictors_features.cc",
  48. "//chrome/browser/predictors/predictors_features.h",
  49. "//chrome/browser/predictors/proxy_lookup_client_impl.cc",
  50. "//chrome/browser/predictors/proxy_lookup_client_impl.h",
  51. "//chrome/browser/predictors/resolve_host_client_impl.cc",
  52. "//chrome/browser/predictors/resolve_host_client_impl.h",
  53. "//chrome/browser/process_singleton.h",
  54. "//chrome/browser/ui/browser_dialogs.cc",
  55. "//chrome/browser/ui/browser_dialogs.h",
  56. "//chrome/browser/ui/exclusive_access/exclusive_access_bubble_type.cc",
  57. "//chrome/browser/ui/exclusive_access/exclusive_access_bubble_type.h",
  58. "//chrome/browser/ui/exclusive_access/exclusive_access_controller_base.cc",
  59. "//chrome/browser/ui/exclusive_access/exclusive_access_controller_base.h",
  60. "//chrome/browser/ui/exclusive_access/exclusive_access_manager.cc",
  61. "//chrome/browser/ui/exclusive_access/exclusive_access_manager.h",
  62. "//chrome/browser/ui/exclusive_access/fullscreen_controller.cc",
  63. "//chrome/browser/ui/exclusive_access/fullscreen_controller.h",
  64. "//chrome/browser/ui/exclusive_access/fullscreen_within_tab_helper.cc",
  65. "//chrome/browser/ui/exclusive_access/fullscreen_within_tab_helper.h",
  66. "//chrome/browser/ui/exclusive_access/keyboard_lock_controller.cc",
  67. "//chrome/browser/ui/exclusive_access/keyboard_lock_controller.h",
  68. "//chrome/browser/ui/exclusive_access/mouse_lock_controller.cc",
  69. "//chrome/browser/ui/exclusive_access/mouse_lock_controller.h",
  70. "//chrome/browser/ui/views/autofill/autofill_popup_view_utils.cc",
  71. "//chrome/browser/ui/views/autofill/autofill_popup_view_utils.h",
  72. "//chrome/browser/ui/views/eye_dropper/eye_dropper.cc",
  73. "//chrome/browser/ui/views/eye_dropper/eye_dropper.h",
  74. "//chrome/browser/ui/views/eye_dropper/eye_dropper_view.cc",
  75. "//chrome/browser/ui/views/eye_dropper/eye_dropper_view.h",
  76. "//extensions/browser/app_window/size_constraints.cc",
  77. "//extensions/browser/app_window/size_constraints.h",
  78. ]
  79. if (is_posix) {
  80. sources += [ "//chrome/browser/process_singleton_posix.cc" ]
  81. }
  82. if (is_mac) {
  83. sources += [
  84. "//chrome/browser/extensions/global_shortcut_listener_mac.h",
  85. "//chrome/browser/extensions/global_shortcut_listener_mac.mm",
  86. "//chrome/browser/icon_loader_mac.mm",
  87. "//chrome/browser/media/webrtc/system_media_capture_permissions_mac.h",
  88. "//chrome/browser/media/webrtc/system_media_capture_permissions_mac.mm",
  89. "//chrome/browser/media/webrtc/window_icon_util_mac.mm",
  90. "//chrome/browser/process_singleton_mac.mm",
  91. "//chrome/browser/ui/views/eye_dropper/eye_dropper_view_mac.h",
  92. "//chrome/browser/ui/views/eye_dropper/eye_dropper_view_mac.mm",
  93. ]
  94. }
  95. if (is_win) {
  96. sources += [
  97. "//chrome/browser/extensions/global_shortcut_listener_win.cc",
  98. "//chrome/browser/extensions/global_shortcut_listener_win.h",
  99. "//chrome/browser/icon_loader_win.cc",
  100. "//chrome/browser/media/webrtc/window_icon_util_win.cc",
  101. "//chrome/browser/process_singleton_win.cc",
  102. "//chrome/browser/ui/frame/window_frame_util.h",
  103. "//chrome/browser/ui/view_ids.h",
  104. "//chrome/browser/win/chrome_process_finder.cc",
  105. "//chrome/browser/win/chrome_process_finder.h",
  106. "//chrome/browser/win/titlebar_config.h",
  107. "//chrome/child/v8_crashpad_support_win.cc",
  108. "//chrome/child/v8_crashpad_support_win.h",
  109. ]
  110. }
  111. if (is_linux) {
  112. sources += [ "//chrome/browser/media/webrtc/window_icon_util_ozone.cc" ]
  113. }
  114. if (use_aura) {
  115. sources += [
  116. "//chrome/browser/platform_util_aura.cc",
  117. "//chrome/browser/ui/views/eye_dropper/eye_dropper_view_aura.cc",
  118. ]
  119. }
  120. public_deps = [
  121. "//chrome/browser:dev_ui_browser_resources",
  122. "//chrome/common",
  123. "//chrome/common:version_header",
  124. "//components/keyed_service/content",
  125. "//components/paint_preview/buildflags",
  126. "//components/proxy_config",
  127. "//components/services/language_detection/public/mojom",
  128. "//content/public/browser",
  129. "//services/strings",
  130. ]
  131. deps = [
  132. "//chrome/browser:resource_prefetch_predictor_proto",
  133. "//components/optimization_guide/proto:optimization_guide_proto",
  134. ]
  135. if (enable_basic_printing && is_win) {
  136. deps += [ "//chrome/common:cloud_print_utility_mojom" ]
  137. }
  138. if (is_linux) {
  139. sources += [ "//chrome/browser/icon_loader_auralinux.cc" ]
  140. if (use_ozone) {
  141. deps += [ "//ui/ozone" ]
  142. sources += [
  143. "//chrome/browser/extensions/global_shortcut_listener_ozone.cc",
  144. "//chrome/browser/extensions/global_shortcut_listener_ozone.h",
  145. ]
  146. }
  147. sources += [
  148. "//chrome/browser/ui/views/status_icons/concat_menu_model.cc",
  149. "//chrome/browser/ui/views/status_icons/concat_menu_model.h",
  150. "//chrome/browser/ui/views/status_icons/status_icon_linux_dbus.cc",
  151. "//chrome/browser/ui/views/status_icons/status_icon_linux_dbus.h",
  152. ]
  153. public_deps += [
  154. "//components/dbus/menu",
  155. "//components/dbus/thread_linux",
  156. ]
  157. }
  158. if (is_win) {
  159. sources += [
  160. "//chrome/browser/win/icon_reader_service.cc",
  161. "//chrome/browser/win/icon_reader_service.h",
  162. ]
  163. public_deps += [ "//chrome/services/util_win:lib" ]
  164. }
  165. if (enable_desktop_capturer) {
  166. sources += [
  167. "//chrome/browser/media/webrtc/desktop_media_list.cc",
  168. "//chrome/browser/media/webrtc/desktop_media_list.h",
  169. "//chrome/browser/media/webrtc/desktop_media_list_base.cc",
  170. "//chrome/browser/media/webrtc/desktop_media_list_base.h",
  171. "//chrome/browser/media/webrtc/desktop_media_list_observer.h",
  172. "//chrome/browser/media/webrtc/native_desktop_media_list.cc",
  173. "//chrome/browser/media/webrtc/native_desktop_media_list.h",
  174. "//chrome/browser/media/webrtc/window_icon_util.h",
  175. ]
  176. deps += [ "//ui/snapshot" ]
  177. }
  178. if (enable_widevine) {
  179. sources += [
  180. "//chrome/renderer/media/chrome_key_systems.cc",
  181. "//chrome/renderer/media/chrome_key_systems.h",
  182. "//chrome/renderer/media/chrome_key_systems_provider.cc",
  183. "//chrome/renderer/media/chrome_key_systems_provider.h",
  184. ]
  185. deps += [ "//components/cdm/renderer" ]
  186. }
  187. if (enable_basic_printing) {
  188. sources += [
  189. "//chrome/browser/printing/print_job.cc",
  190. "//chrome/browser/printing/print_job.h",
  191. "//chrome/browser/printing/print_job_manager.cc",
  192. "//chrome/browser/printing/print_job_manager.h",
  193. "//chrome/browser/printing/print_job_worker.cc",
  194. "//chrome/browser/printing/print_job_worker.h",
  195. "//chrome/browser/printing/print_view_manager_base.cc",
  196. "//chrome/browser/printing/print_view_manager_base.h",
  197. "//chrome/browser/printing/printer_query.cc",
  198. "//chrome/browser/printing/printer_query.h",
  199. "//chrome/browser/printing/printing_service.cc",
  200. "//chrome/browser/printing/printing_service.h",
  201. ]
  202. if (enable_oop_printing) {
  203. sources += [
  204. "//chrome/browser/printing/print_backend_service_manager.cc",
  205. "//chrome/browser/printing/print_backend_service_manager.h",
  206. ]
  207. }
  208. public_deps += [
  209. "//chrome/services/printing:lib",
  210. "//components/printing/browser",
  211. "//components/printing/renderer",
  212. "//components/services/print_compositor",
  213. "//components/services/print_compositor/public/cpp",
  214. "//components/services/print_compositor/public/mojom",
  215. "//printing/backend",
  216. ]
  217. deps += [
  218. "//components/printing/common",
  219. "//printing",
  220. ]
  221. if (is_win) {
  222. sources += [
  223. "//chrome/browser/printing/pdf_to_emf_converter.cc",
  224. "//chrome/browser/printing/pdf_to_emf_converter.h",
  225. "//chrome/utility/printing_handler.cc",
  226. "//chrome/utility/printing_handler.h",
  227. ]
  228. }
  229. }
  230. if (enable_picture_in_picture) {
  231. sources += [
  232. "//chrome/browser/picture_in_picture/picture_in_picture_window_manager.cc",
  233. "//chrome/browser/picture_in_picture/picture_in_picture_window_manager.h",
  234. "//chrome/browser/ui/views/overlay/back_to_tab_image_button.cc",
  235. "//chrome/browser/ui/views/overlay/back_to_tab_image_button.h",
  236. "//chrome/browser/ui/views/overlay/back_to_tab_label_button.cc",
  237. "//chrome/browser/ui/views/overlay/close_image_button.cc",
  238. "//chrome/browser/ui/views/overlay/close_image_button.h",
  239. "//chrome/browser/ui/views/overlay/constants.h",
  240. "//chrome/browser/ui/views/overlay/hang_up_button.cc",
  241. "//chrome/browser/ui/views/overlay/hang_up_button.h",
  242. "//chrome/browser/ui/views/overlay/overlay_window_views.cc",
  243. "//chrome/browser/ui/views/overlay/overlay_window_views.h",
  244. "//chrome/browser/ui/views/overlay/playback_image_button.cc",
  245. "//chrome/browser/ui/views/overlay/playback_image_button.h",
  246. "//chrome/browser/ui/views/overlay/resize_handle_button.cc",
  247. "//chrome/browser/ui/views/overlay/resize_handle_button.h",
  248. "//chrome/browser/ui/views/overlay/skip_ad_label_button.cc",
  249. "//chrome/browser/ui/views/overlay/skip_ad_label_button.h",
  250. "//chrome/browser/ui/views/overlay/toggle_camera_button.cc",
  251. "//chrome/browser/ui/views/overlay/toggle_camera_button.h",
  252. "//chrome/browser/ui/views/overlay/toggle_microphone_button.cc",
  253. "//chrome/browser/ui/views/overlay/toggle_microphone_button.h",
  254. "//chrome/browser/ui/views/overlay/track_image_button.cc",
  255. "//chrome/browser/ui/views/overlay/track_image_button.h",
  256. ]
  257. deps += [
  258. "//chrome/app/vector_icons",
  259. "//components/vector_icons:vector_icons",
  260. ]
  261. }
  262. if (enable_electron_extensions) {
  263. sources += [
  264. "//chrome/browser/extensions/chrome_url_request_util.cc",
  265. "//chrome/browser/extensions/chrome_url_request_util.h",
  266. "//chrome/browser/plugins/plugin_response_interceptor_url_loader_throttle.cc",
  267. "//chrome/browser/plugins/plugin_response_interceptor_url_loader_throttle.h",
  268. "//chrome/renderer/extensions/extension_hooks_delegate.cc",
  269. "//chrome/renderer/extensions/extension_hooks_delegate.h",
  270. "//chrome/renderer/extensions/tabs_hooks_delegate.cc",
  271. "//chrome/renderer/extensions/tabs_hooks_delegate.h",
  272. ]
  273. if (enable_pdf_viewer) {
  274. sources += [
  275. "//chrome/browser/pdf/pdf_extension_util.cc",
  276. "//chrome/browser/pdf/pdf_extension_util.h",
  277. "//chrome/renderer/pepper/chrome_pdf_print_client.cc",
  278. "//chrome/renderer/pepper/chrome_pdf_print_client.h",
  279. ]
  280. }
  281. }
  282. if (!is_mas_build) {
  283. sources += [ "//chrome/browser/hang_monitor/hang_crash_dump.h" ]
  284. if (is_mac) {
  285. sources += [ "//chrome/browser/hang_monitor/hang_crash_dump_mac.cc" ]
  286. } else if (is_win) {
  287. sources += [ "//chrome/browser/hang_monitor/hang_crash_dump_win.cc" ]
  288. } else {
  289. sources += [ "//chrome/browser/hang_monitor/hang_crash_dump.cc" ]
  290. }
  291. }
  292. }
  293. source_set("plugins") {
  294. sources = []
  295. deps = []
  296. frameworks = []
  297. # browser side
  298. sources += [
  299. "//chrome/browser/renderer_host/pepper/chrome_browser_pepper_host_factory.cc",
  300. "//chrome/browser/renderer_host/pepper/chrome_browser_pepper_host_factory.h",
  301. "//chrome/browser/renderer_host/pepper/pepper_isolated_file_system_message_filter.cc",
  302. "//chrome/browser/renderer_host/pepper/pepper_isolated_file_system_message_filter.h",
  303. ]
  304. deps += [
  305. "//media:media_buildflags",
  306. "//ppapi/buildflags",
  307. "//ppapi/proxy:ipc",
  308. "//services/device/public/mojom",
  309. ]
  310. if (enable_pdf_viewer) {
  311. deps += [ "//components/pdf/browser" ]
  312. }
  313. # renderer side
  314. sources += [
  315. "//chrome/renderer/pepper/chrome_renderer_pepper_host_factory.cc",
  316. "//chrome/renderer/pepper/chrome_renderer_pepper_host_factory.h",
  317. "//chrome/renderer/pepper/pepper_flash_font_file_host.cc",
  318. "//chrome/renderer/pepper/pepper_flash_font_file_host.h",
  319. "//chrome/renderer/pepper/pepper_shared_memory_message_filter.cc",
  320. "//chrome/renderer/pepper/pepper_shared_memory_message_filter.h",
  321. ]
  322. if (enable_pdf_viewer) {
  323. deps += [ "//components/pdf/renderer" ]
  324. }
  325. deps += [
  326. "//components/strings",
  327. "//media:media_buildflags",
  328. "//ppapi/host",
  329. "//ppapi/proxy",
  330. "//ppapi/proxy:ipc",
  331. "//ppapi/shared_impl",
  332. "//skia",
  333. ]
  334. }
  335. # This source set is just so we don't have to depend on all of //chrome/browser
  336. # You may have to add new files here during the upgrade if //chrome/browser/spellchecker
  337. # gets more files
  338. source_set("chrome_spellchecker") {
  339. sources = []
  340. deps = []
  341. libs = []
  342. public_deps = []
  343. if (enable_builtin_spellchecker) {
  344. sources += [
  345. "//chrome/browser/spellchecker/spell_check_host_chrome_impl.cc",
  346. "//chrome/browser/spellchecker/spell_check_host_chrome_impl.h",
  347. "//chrome/browser/spellchecker/spellcheck_custom_dictionary.cc",
  348. "//chrome/browser/spellchecker/spellcheck_custom_dictionary.h",
  349. "//chrome/browser/spellchecker/spellcheck_factory.cc",
  350. "//chrome/browser/spellchecker/spellcheck_factory.h",
  351. "//chrome/browser/spellchecker/spellcheck_hunspell_dictionary.cc",
  352. "//chrome/browser/spellchecker/spellcheck_hunspell_dictionary.h",
  353. "//chrome/browser/spellchecker/spellcheck_language_blocklist_policy_handler.cc",
  354. "//chrome/browser/spellchecker/spellcheck_language_blocklist_policy_handler.h",
  355. "//chrome/browser/spellchecker/spellcheck_language_policy_handler.cc",
  356. "//chrome/browser/spellchecker/spellcheck_language_policy_handler.h",
  357. "//chrome/browser/spellchecker/spellcheck_service.cc",
  358. "//chrome/browser/spellchecker/spellcheck_service.h",
  359. ]
  360. if (has_spellcheck_panel) {
  361. sources += [
  362. "//chrome/browser/spellchecker/spell_check_panel_host_impl.cc",
  363. "//chrome/browser/spellchecker/spell_check_panel_host_impl.h",
  364. ]
  365. }
  366. if (use_browser_spellchecker) {
  367. sources += [
  368. "//chrome/browser/spellchecker/spelling_request.cc",
  369. "//chrome/browser/spellchecker/spelling_request.h",
  370. ]
  371. }
  372. deps += [
  373. "//base:base_static",
  374. "//components/language/core/browser",
  375. "//components/spellcheck:buildflags",
  376. "//components/sync",
  377. ]
  378. public_deps += [ "//chrome/common:constants" ]
  379. }
  380. public_deps += [
  381. "//components/spellcheck/browser",
  382. "//components/spellcheck/common",
  383. "//components/spellcheck/renderer",
  384. ]
  385. }