Add ICU message format support
[chromium-blink-merge.git] / chrome / browser / chromeos / BUILD.gn
blobb86d872168d8d78eec0cc2fe84e8549355bb0d11
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.
5 import("//build/config/features.gni")
6 import("//build/config/ui.gni")
7 import("//chrome/chrome_tests.gni")
8 import("//media/media_options.gni")
9 import("//third_party/protobuf/proto_library.gni")
11 gypi_values = exec_script("//build/gypi_to_gn.py",
12                           [ rebase_path("../../chrome_browser_chromeos.gypi") ],
13                           "scope",
14                           [ "../../chrome_browser_chromeos.gypi" ])
16 source_set("chromeos") {
17   assert(enable_extensions, "ChromeOS Chrome has to be built with extensions")
19   configs += [
20     "//build/config/compiler:wexit_time_destructors",
21     "//build/config/linux:fontconfig",
22   ]
24   public_deps = [
25     "//ash/resources",
26     "//ash/strings",
27     "//chrome/app/resources:platform_locale_settings",
28     "//chrome/app/theme:theme_resources",
29     "//chrome:extra_resources",
30     "//chrome:resources",
31     "//chrome:strings",
32     "//components/wallpaper",
33     "//content/app/resources",
34     "//ui/chromeos/resources",
35     "//ui/chromeos/strings",
36     "//ui/resources",
37     "//ui/strings",
38   ]
40   deps = [
41     # TODO(tbarzic): Cleanup this list.
42     ":attestation_proto",
43     ":device_policy_proto",
44     "//ash",
45     "//ash:ash_with_content",
46     "//components/drive",
47     "//components/login",
48     "//components/session_manager/core",
49     "//components/user_manager",
50     "//components/wifi_sync",
51     "//chrome/browser/devtools",
52     "//chrome/browser/extensions",
53     "//chrome/browser/net:encrypted_cert_logger_proto",
54     "//chrome/browser/safe_browsing:chunk_proto",
55     "//chrome/browser/safe_browsing:metadata_proto",
56     "//chrome/browser/safe_browsing:report_proto",
57     "//chrome/browser/ssl:cert_logger_proto",
58     "//chrome/common",
59     "//chrome/common/extensions/api",
60     "//chrome/common/extensions/api:api_registration",
61     "//chrome/common/net",
62     "//chrome/installer/util",
63     "//chromeos",
64     "//chromeos/ime:gencode",
65     "//chromeos:cryptohome_proto",
66     "//chromeos:cryptohome_signkey_proto",
67     "//chromeos:power_manager_proto",
68     "//components/onc",
69     "//components/ownership",
70     "//components/pairing",
71     "//components/policy",
73     # This depends directly on the variations target, rather than just
74     # transitively via the common target because the proto sources need to
75     # be generated before code in this target can start building.
76     "//components/strings",
77     "//components/variations",
78     "//content/public/browser",
79     "//content/public/common",
80     "//crypto",
81     "//dbus",
82     "//device/bluetooth",
83     "//device/hid",
84     "//media",
85     "//media/mojo/interfaces",
86     "//net",
87     "//ppapi/proxy:ipc",  # For PpapiMsg_LoadPlugin
89     # TODO: care about enable_basic_printing and enable_print_preview.
90     "//printing",
91     "//skia",
92     "//storage/browser",
93     "//storage/common",
94     "//sync",
95     "//third_party/adobe/flash:flapper_version_h",
96     "//third_party/cacheinvalidation",
97     "//third_party/icu",
98     "//third_party/leveldatabase",
99     "//third_party/libevent",
100     "//third_party/libjingle",
101     "//third_party/libusb",
102     "//third_party/protobuf:protobuf_lite",
103     "//third_party/protobuf:protoc($host_toolchain)",
104     "//third_party/re2",
105     "//third_party/zlib",
106     "//ui/app_list",
107     "//ui/aura",
108     "//ui/base",
109     "//ui/chromeos:ui_chromeos",
110     "//ui/compositor",
111     "//ui/display",
112     "//ui/events/devices",
113     "//ui/events/platform",
114     "//ui/events:dom_keycode_converter",
115     "//ui/file_manager",
116     "//ui/message_center",
117     "//ui/surface",
118     "//ui/views",
119     "//ui/views/controls/webview",
120     "//ui/web_dialogs",
121     "//url",
122     "//v8",
123   ]
125   defines = []
127   sources = rebase_path(gypi_values.browser_chromeos_sources, ".", "//chrome") +
128             rebase_path(gypi_values.browser_chromeos_extension_sources,
129                         ".",
130                         "//chrome")
131   if (use_x11) {
132     configs += [ "//build/config/linux:x11" ]
133     deps += [ "//ui/events/devices" ]
134     sources -= [
135       "system/input_device_settings_impl_ozone.cc",
136       "system_logs/touch_log_source_ozone.cc",
137     ]
138   } else {
139     assert(use_ozone, "Either use_x11 or use_ozone has to be specified.")
140     deps += [ "//ui/ozone" ]
141     sources -= [
142       "device_uma.cc",
143       "device_uma.h",
144       "events/system_key_event_listener.cc",
145       "events/system_key_event_listener.h",
146       "events/xinput_hierarchy_changed_event_listener.cc",
147       "events/xinput_hierarchy_changed_event_listener.h",
148       "system/input_device_settings_impl_x11.cc",
149       "system_logs/touch_log_source_x11.cc",
150     ]
151   }
153   if (use_cras) {
154     defines += [ "USE_CRAS" ]
155   }
157   if (ui_compositor_image_transport) {
158     deps += [ "//ui/gl" ]
159   }
162 source_set("unit_tests") {
163   testonly = true
165   sources = rebase_path(
166           chrome_tests_unit_gypi_values.chrome_unit_tests_chromeos_sources,
167           ".",
168           "//chrome")
170   public_deps = [
171     ":chromeos",
172   ]
173   deps = [
174     ":attestation_proto",
175     ":device_policy_proto",
176     "//ash/resources",
177     "//components/drive",
178     "//components/policy",
179     "//components/invalidation/public",
180     "//components/resources",
181     "//crypto:platform",
182     "//dbus",
183     "//skia",
184     "//sync",
185     "//testing/gmock",
186     "//testing/gtest",
187     "//third_party/leveldatabase",
188     "//third_party/mojo/src/mojo/public/cpp/system:system",
189     "//ui/chromeos/resources",
190   ]
193 proto_library("device_policy_proto") {
194   sources = [
195     "policy/proto/chrome_device_policy.proto",
196     "policy/proto/install_attributes.proto",
197   ]
200 proto_library("attestation_proto") {
201   sources = [
202     "attestation/attestation_key_payload.proto",
203     "attestation/attestation_signed_data.proto",
204   ]