| # Copyright 2014 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import("//build/config/crypto.gni") |
| import("//build/config/features.gni") |
| import("//build/config/ui.gni") |
| |
| gypi_values = exec_script("//build/gypi_to_gn.py", |
| [ rebase_path("../../chrome_browser_ui.gypi") ], |
| "scope", |
| [ "../../chrome_browser_ui.gypi" ]) |
| |
| source_set("ui") { |
| output_name = "browser_ui" |
| |
| sources = [] |
| defines = [] |
| libs = [] |
| |
| configs += [ |
| "//build/config/compiler:wexit_time_destructors", |
| "//third_party/WebKit/public:debug_devtools", |
| ] |
| |
| # Since browser and browser_ui actually depend on each other, |
| # we must omit the dependency from browser_ui to browser. |
| # However, this means browser_ui and browser should more or less |
| # have the same dependencies. Once browser_ui is untangled from |
| # browser, then we can clean up these dependencies. |
| public_deps = [ |
| "//components/dom_distiller/core", |
| "//content/public/browser", |
| "//sync", |
| ] |
| deps = [ |
| # NOTE: New dependencies should generally be added in the OS!="ios" |
| # dependencies block below, rather than here. |
| "//base/allocator", |
| "//chrome:extra_resources", |
| "//chrome:resources", |
| "//chrome:strings", |
| "//chrome/app/resources:platform_locale_settings", |
| "//chrome/app/theme:theme_resources", |
| "//chrome/browser/net:encrypted_cert_logger_proto", |
| "//chrome/browser/ssl:cert_logger_proto", |
| "//chrome/common", |
| "//chrome/common/net", |
| "//components/app_modal", |
| "//components/auto_login_parser", |
| "//components/dom_distiller/webui", |
| "//components/invalidation", |
| "//components/onc", |
| "//components/password_manager/core/browser", |
| "//components/resources", |
| "//components/strings", |
| "//components/update_client", |
| "//content/public/common", |
| "//crypto", |
| "//skia", |
| "//third_party/cacheinvalidation", |
| "//third_party/icu", |
| "//third_party/libxml", |
| "//third_party/zlib", |
| "//ui/accessibility", |
| "//ui/base", |
| "//ui/content_accelerators", |
| "//ui/events", |
| "//ui/events:gesture_detection", |
| "//ui/gfx", |
| "//ui/gfx/geometry", |
| "//ui/message_center", |
| "//ui/native_theme", |
| "//ui/resources", |
| "//ui/snapshot", |
| "//ui/strings", |
| ] |
| |
| if (!is_ios) { |
| sources += rebase_path(gypi_values.chrome_browser_ui_non_ios_sources, |
| ".", |
| "//chrome") |
| sources += rebase_path(gypi_values.chrome_browser_ui_toolbar_model_sources, |
| ".", |
| "//chrome") |
| deps += [ |
| "//chrome/browser/devtools", |
| "//chrome/browser/ui/views", |
| "//chrome/browser/ui/webui/omnibox:mojo_bindings", |
| "//chrome/installer/util", |
| "//components/autofill/content/browser:risk_proto", |
| "//components/power", |
| "//components/suggestions/proto", |
| "//device/nfc", |
| "//media", |
| "//net:net_with_v8", |
| "//storage/browser", |
| "//storage/common", |
| "//third_party/WebKit/public:resources", |
| "//third_party/adobe/flash:flapper_version_h", |
| "//third_party/expat", |
| "//third_party/leveldatabase", |
| "//third_party/mojo/src/mojo/edk/system", |
| "//third_party/libjingle", |
| "//third_party/re2", |
| "//ui/base/ime", |
| "//ui/compositor", |
| "//ui/surface", |
| "//ui/web_dialogs", |
| "//v8", |
| ] |
| } else { |
| # iOS. |
| sources += |
| rebase_path(gypi_values.chrome_browser_ui_ios_sources, ".", "//chrome") |
| deps += [ "//net" ] |
| } |
| |
| if (!is_android && !is_ios) { |
| sources += rebase_path(gypi_values.chrome_browser_ui_non_mobile_sources, |
| ".", |
| "//chrome") |
| sources += |
| rebase_path(gypi_values.chrome_browser_ui_omnibox_non_mobile_sources, |
| ".", |
| "//chrome") |
| deps += [ |
| "//components/copresence", |
| "//components/feedback/proto", |
| "//components/proximity_auth/webui", |
| "//device/bluetooth", |
| "//third_party/libusb", |
| ] |
| } |
| |
| if (enable_basic_printing || enable_print_preview) { |
| deps += [ "//printing" ] |
| } |
| |
| if (enable_nacl) { |
| sources += |
| rebase_path(gypi_values.chrome_browser_ui_nacl_sources, ".", "//chrome") |
| deps += [ "//native_client/src/trusted/service_runtime:sel" ] |
| } |
| if (enable_configuration_policy) { |
| sources += rebase_path(gypi_values.chrome_browser_ui_policy_sources, |
| ".", |
| "//chrome") |
| deps += [ "//components/policy" ] |
| } |
| if (enable_plugins) { |
| sources += rebase_path(gypi_values.chrome_browser_ui_plugin_sources, |
| ".", |
| "//chrome") |
| deps += [ "//ppapi/proxy:ipc" ] |
| } |
| if (safe_browsing_mode == 1) { |
| deps += [ |
| "//chrome/browser/safe_browsing:chunk_proto", |
| "//chrome/common/safe_browsing:proto", |
| "//chrome/browser/safe_browsing:report_proto", |
| ] |
| } |
| if (is_chromeos) { |
| sources += rebase_path(gypi_values.chrome_browser_ui_chromeos_sources, |
| ".", |
| "//chrome") |
| deps += [ "//chrome/browser/chromeos" ] |
| } else { |
| sources += rebase_path(gypi_values.chrome_browser_ui_non_chromeos_sources, |
| ".", |
| "//chrome") |
| } |
| if (use_cups) { |
| configs += [ "//printing:cups" ] |
| } |
| if (use_ash) { |
| sources += |
| rebase_path(gypi_values.chrome_browser_ui_ash_sources, ".", "//chrome") |
| deps += [ |
| "//ash", |
| "//ash:ash_with_content", |
| "//ash/strings", |
| "//components/user_manager", |
| ] |
| if (!is_chromeos) { |
| sources += rebase_path(gypi_values.chrome_browser_ui_ash_non_chromeos, |
| ".", |
| "//chrome") |
| } |
| } else { # Not ash. |
| sources += rebase_path(gypi_values.chrome_browser_ui_non_ash_sources, |
| ".", |
| "//chrome") |
| } |
| if (toolkit_views) { |
| sources += rebase_path(gypi_values.chrome_browser_ui_views_sources, |
| ".", |
| "//chrome") |
| deps += [ "//components/constrained_window" ] |
| |
| if (enable_extensions) { |
| deps += [ "//extensions/components/native_app_window" ] |
| } |
| |
| if (!is_chromeos) { |
| sources += |
| rebase_path(gypi_values.chrome_browser_ui_views_non_chromeos_sources, |
| ".", |
| "//chrome") |
| } |
| if (!is_mac) { |
| sources += |
| rebase_path(gypi_values.chrome_browser_ui_views_non_mac_sources, |
| ".", |
| "//chrome") |
| if (enable_extensions) { |
| sources += rebase_path( |
| gypi_values.chrome_browser_ui_views_extensions_non_mac_sources, |
| ".", |
| "//chrome") |
| } |
| if (is_chromeos) { |
| # TODO(GYP): crbug.com/481629. These files should probably not be |
| # a part of ui_views_non_mac_sources at all. |
| sources -= [ |
| "views/frame/opaque_browser_frame_view.cc", |
| "views/frame/opaque_browser_frame_view.h", |
| "views/frame/opaque_browser_frame_view_linux.cc", |
| "views/frame/opaque_browser_frame_view_linux.h", |
| ] |
| } |
| } |
| if (use_ash) { |
| sources += rebase_path(gypi_values.chrome_browser_ui_ash_views_sources, |
| ".", |
| "//chrome") |
| } |
| } |
| if (use_aura && !use_ozone && is_desktop_linux) { |
| deps += [ |
| "//build/config/linux:gio", |
| |
| # gtk2 is the only component that can interact with gtk2 in our new |
| # world. |
| "//chrome/browser/ui/libgtk2ui", |
| ] |
| } |
| if (is_win || is_mac || is_desktop_linux) { |
| sources += rebase_path(gypi_values.chrome_browser_ui_desktop_sources, |
| ".", |
| "//chrome") |
| } |
| if (use_aura) { |
| sources += |
| rebase_path(gypi_values.chrome_browser_ui_aura_sources, ".", "//chrome") |
| deps += [ |
| # aura uses some of ash resources. |
| "//ash/resources", |
| "//ui/aura", |
| "//ui/keyboard", |
| "//ui/keyboard:resources", |
| "//ui/wm", |
| ] |
| if (!is_chromeos) { |
| sources += rebase_path(gypi_values.chrome_browser_ui_aura_non_chromeos, |
| ".", |
| "//chrome") |
| } |
| } |
| if (ui_compositor_image_transport) { |
| deps += [ "//ui/gl" ] |
| } |
| if (use_nss_certs) { |
| sources += |
| rebase_path(gypi_values.chrome_browser_ui_nss_sources, ".", "//chrome") |
| } |
| if (!enable_themes) { |
| sources -= [ "webui/theme_source.cc" ] |
| } |
| if (enable_print_preview) { |
| sources += rebase_path(gypi_values.chrome_browser_ui_print_preview_sources, |
| ".", |
| "//chrome") |
| } |
| |
| if (is_android) { |
| deps += [ |
| "//chrome/browser:jni_headers", |
| "//crypto:platform", |
| "//components/web_contents_delegate_android", |
| ] |
| deps -= [ |
| "//chrome/browser/ui/views", |
| "//ui/events", |
| ] |
| sources += rebase_path(gypi_values.chrome_browser_ui_android_sources, |
| ".", |
| "//chrome") |
| |
| defines += [ "CHROME_BUILD_ID=" + android_chrome_build_id ] |
| } |
| |
| if (is_mac) { |
| sources += |
| rebase_path(gypi_values.chrome_browser_ui_mac_sources, ".", "//chrome") |
| deps += [ |
| ":generate_localizer", |
| "//third_party/apple_sample_code", |
| "//third_party/google_toolbox_for_mac", |
| "//third_party/molokocacao", |
| "//third_party/mozilla", |
| ] |
| if (mac_views_browser) { |
| sources += rebase_path( |
| gypi_values.chrome_browser_ui_views_mac_experimental_sources, |
| ".", |
| "//chrome") |
| sources += |
| rebase_path(gypi_values.chrome_browser_ui_views_non_mac_sources, |
| ".", |
| "//chrome") |
| sources += rebase_path( |
| gypi_values.chrome_browser_ui_views_extensions_non_mac_sources, |
| ".", |
| "//chrome") |
| deps += [ "//extensions/components/native_app_window" ] |
| } else { |
| sources += rebase_path(gypi_values.chrome_browser_ui_cocoa_sources, |
| ".", |
| "//chrome") |
| } |
| include_dirs = [ "$target_gen_dir" ] |
| libs += [ "Quartz.framework" ] |
| configs += |
| [ "//third_party/google_toolbox_for_mac:google_toolbox_for_mac_config" ] |
| } else { # non-Mac. |
| sources += rebase_path(gypi_values.chrome_browser_ui_non_mac_sources, |
| ".", |
| "//chrome") |
| } |
| |
| if (is_win) { |
| sources += |
| rebase_path(gypi_values.chrome_browser_ui_win_sources, ".", "//chrome") |
| sources -= [ |
| "views/apps/keyboard_hook_handler.cc", |
| "views/frame/taskbar_decorator.cc", |
| ] |
| public_deps += [ |
| "//ui/views", |
| "//ui/views/controls/webview", |
| ] |
| deps += [ |
| "//chrome/browser/metro_utils", |
| "//chrome/installer/util:strings", |
| "//google_update", |
| "//third_party/wtl", |
| "//third_party/iaccessible2", |
| "//third_party/isimpledom", |
| "//ui/app_list", |
| ] |
| if (!is_chrome_branded) { |
| deps -= [ "//google_update" ] |
| sources -= [ "webui/help/version_updater_win.cc" ] |
| sources += [ |
| "webui/help/version_updater_basic.cc", |
| "webui/help/version_updater_basic.h", |
| ] |
| } |
| } else { # 'OS!="win" |
| if (toolkit_views) { |
| public_deps += [ |
| "//ui/views", |
| "//ui/views/controls/webview", |
| ] |
| } |
| } |
| if (is_desktop_linux) { |
| sources += rebase_path(gypi_values.chrome_browser_ui_desktop_linux_sources, |
| ".", |
| "//chrome") |
| } |
| if (is_linux) { # Both desktop Linux and ChromeOS. |
| sources += rebase_path(gypi_values.chrome_browser_ui_linux_sources, |
| ".", |
| "//chrome") |
| deps += [ "//device/udev_linux" ] |
| if (use_aura) { |
| configs += [ "//build/config/linux:fontconfig" ] |
| deps += [ "//dbus" ] |
| } |
| if (use_x11) { |
| sources += rebase_path(gypi_values.chrome_browser_ui_x11_sources, |
| ".", |
| "//chrome") |
| configs += [ "//build/config/linux:x11" ] |
| deps += [ "//ui/events/devices" ] |
| if (is_chromeos) { |
| sources -= [ "views/tabs/window_finder_x11.cc" ] |
| } |
| } |
| } |
| |
| if (enable_app_list) { |
| sources += rebase_path(gypi_values.chrome_browser_ui_app_list_sources, |
| ".", |
| "//chrome") |
| deps += [ "//ui/app_list" ] |
| } else { |
| sources += rebase_path(gypi_values.chrome_browser_ui_non_app_list_sources, |
| ".", |
| "//chrome") |
| } |
| if (enable_autofill_dialog) { |
| sources += |
| rebase_path(gypi_values.chrome_browser_ui_autofill_dialog_sources, |
| ".", |
| "//chrome") |
| if (!is_android && !is_ios) { |
| sources += rebase_path( |
| gypi_values.chrome_browser_ui_autofill_dialog_non_mobile_sources, |
| ".", |
| "//chrome") |
| deps += [ |
| "//third_party/libaddressinput", |
| "//third_party/libaddressinput:strings", |
| ] |
| } |
| } |
| if (enable_extensions) { |
| deps += [ |
| "//chrome/browser/extensions", |
| "//chrome/common/extensions/api", |
| "//chrome/common/extensions/api:api_registration", |
| ] |
| sources += rebase_path(gypi_values.chrome_browser_ui_extensions_sources, |
| ".", |
| "//chrome") |
| } |
| if (enable_google_now && !is_android) { |
| sources += rebase_path( |
| gypi_values.chrome_browser_ui_google_now_non_android_sources, |
| ".", |
| "//chrome") |
| } |
| if (enable_media_router) { |
| sources += rebase_path(gypi_values.chrome_browser_ui_media_router_sources, |
| ".", |
| "//chrome") |
| deps += [ "//chrome/browser/media/router" ] |
| } |
| if (enable_webrtc) { |
| sources += rebase_path(gypi_values.chrome_browser_ui_webrtc_sources, |
| ".", |
| "//chrome") |
| } |
| if (enable_service_discovery) { |
| sources += |
| rebase_path(gypi_values.chrome_browser_ui_service_discovery_sources, |
| ".", |
| "//chrome") |
| } |
| } |
| |
| if (is_mac) { |
| nib_gypi_values = exec_script("//build/gypi_to_gn.py", |
| [ rebase_path("../../chrome_nibs.gypi") ], |
| "scope", |
| [ "../../chrome_nibs.gypi" ]) |
| |
| action("generate_localizer") { |
| script = "//chrome/tools/build/mac/generate_localizer" |
| sources = [] |
| table_path = "$target_gen_dir/ui_localizer_table.h" |
| outputs = [ |
| table_path, |
| ] |
| args = [ rebase_path(table_path, root_build_dir) ] + |
| rebase_path(nib_gypi_values.mac_translated_xibs, |
| root_build_dir, |
| "//chrome") |
| } |
| } |
| |
| # In GYP this is part of test_support_common. |
| source_set("test_support") { |
| testonly = true |
| |
| sources = [ |
| "browser.h", |
| "cocoa/extensions/browser_action_test_util_mac.mm", |
| "cocoa/find_bar/find_bar_host_unittest_util_cocoa.mm", |
| "cocoa/run_loop_testing.h", |
| "cocoa/run_loop_testing.mm", |
| "exclusive_access/fullscreen_controller_state_test.cc", |
| "exclusive_access/fullscreen_controller_state_test.h", |
| "exclusive_access/fullscreen_controller_state_tests.h", |
| "exclusive_access/fullscreen_controller_test.cc", |
| "exclusive_access/fullscreen_controller_test.h", |
| "find_bar/find_bar_host_unittest_util.h", |
| "login/login_prompt_test_utils.cc", |
| "login/login_prompt_test_utils.h", |
| "passwords/manage_passwords_ui_controller_mock.cc", |
| "passwords/manage_passwords_ui_controller_mock.h", |
| "test/test_confirm_bubble_model.cc", |
| "test/test_confirm_bubble_model.h", |
| "toolbar/test_toolbar_action_view_controller.cc", |
| "toolbar/test_toolbar_action_view_controller.h", |
| "website_settings/mock_permission_bubble_request.cc", |
| "website_settings/mock_permission_bubble_request.h", |
| ] |
| |
| if (toolkit_views) { |
| sources += [ "views/find_bar_host_unittest_util_views.cc" ] |
| if (!is_mac) { |
| sources += [ "views/toolbar/browser_action_test_util_views.cc" ] |
| } |
| } |
| |
| public_deps = [ |
| ":ui", |
| ] |
| deps = [ |
| "//chrome/app/theme:theme_resources", |
| "//chrome/browser", |
| "//content/public/browser", |
| "//content/public/common", |
| "//content/test:test_support", |
| "//net:test_support", |
| "//skia", |
| "//testing/gtest", |
| "//ui/base", |
| ] |
| } |