# 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/npapi", "//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 (!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") deps += [ "//extensions/components/native_app_window" ] 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") 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", ] } 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", ] }