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 5 import("//build/config/features.gni") 6 import("//build/config/ui.gni") 7 8 gypi_values = exec_script( 9 "//build/gypi_to_gn.py", 10 [ rebase_path("views.gyp") ], 11 "scope", 12 [ "views.gyp" ]) 13 14 component("views") { 15 sources = gypi_values.views_sources 16 17 defines = [ "VIEWS_IMPLEMENTATION" ] 18 19 deps = [ 20 "//base:i18n", 21 "//base/third_party/dynamic_annotations", 22 "//skia", 23 "//third_party/icu", 24 "//ui/accessibility", 25 "//ui/aura", 26 "//ui/native_theme", 27 "//ui/resources", 28 "//ui/strings", 29 "//ui/wm", 30 "//url", 31 ] 32 33 public_deps = [ 34 "//base", 35 "//ui/accessibility:ax_gen", 36 "//ui/base", 37 "//ui/compositor", 38 "//ui/events", 39 "//ui/events:events_base", 40 "//ui/events/platform", 41 "//ui/gfx", 42 "//ui/gfx/geometry", 43 ] 44 45 if (use_x11 && !is_chromeos) { 46 deps += [ "//ui/display/util" ] 47 } 48 if (is_linux && !is_chromeos) { 49 sources -= [ "window/window_button_order_provider.cc" ] 50 deps += [ "//ui/shell_dialogs" ] 51 } else { 52 sources -= [ 53 "linux_ui/linux_ui.h", 54 "linux_ui/linux_ui.cc", 55 "linux_ui/window_button_order_observer.h", 56 "linux_ui/window_button_order_provider.cc", 57 ] 58 } 59 60 if (is_chromeos) { 61 sources -= [ 62 "linux_ui/status_icon_linux.h", 63 "linux_ui/status_icon_linux.cc", 64 ] 65 } 66 67 if (is_win) { 68 sources += gypi_values.views_win_sources 69 cflags = [ "/wd4267" ] # TODO(jschuh): crbug.com/167187 fix size_t to int truncations. 70 libs = [ "/imm32.lib", "oleacc.lib" ] 71 ldflags = [ "/DELAYLOAD:user32.dll" ] 72 deps += [ 73 "//third_party/iaccessible2", 74 "//third_party/wtl", 75 ] 76 } 77 78 if (use_ozone) { 79 deps += [ "//ui/ozone" ] 80 } 81 if (use_x11) { 82 configs += [ 83 "//build/config/linux:x11", 84 "//build/config/linux:xrandr", 85 ] 86 deps += [ 87 "//ui/events/platform/x11", 88 "//ui/gfx/x", 89 ] 90 } 91 92 if (use_aura) { 93 sources += gypi_values.views_aura_sources 94 if (!is_chromeos) { 95 sources += gypi_values.views_desktop_aura_sources 96 if (use_x11) { 97 sources += gypi_values.views_desktop_aura_x11_sources 98 } else if (is_win) { 99 sources += gypi_values.views_desktop_aura_win_sources 100 } else if (use_ozone) { 101 sources += gypi_values.views_desktop_aura_ozone_sources 102 } 103 } 104 } 105 } 106 107 static_library("test_support") { 108 testonly = true 109 sources = gypi_values.views_test_support_sources 110 111 public_deps = [ 112 ":views", 113 ] 114 deps = [ 115 "//base", 116 "//ipc:test_support", 117 "//skia", 118 "//testing/gtest", 119 "//ui/aura", 120 "//ui/base", 121 "//ui/compositor", 122 "//ui/compositor:test_support", 123 "//ui/events", 124 "//ui/events:events_base", 125 "//ui/events:test_support", 126 "//ui/events/platform", 127 "//ui/gfx", 128 "//ui/gfx/geometry", 129 "//ui/wm", 130 ] 131 132 if (is_chromeos) { 133 sources -= [ 134 "test/ui_controls_factory_desktop_aurax11.cc", 135 "test/ui_controls_factory_desktop_aurax11.h", 136 ] 137 } 138 if (use_aura) { 139 sources += gypi_values.views_test_support_aura_sources 140 deps += [ "//ui/aura:test_support" ] 141 } 142 if (use_x11) { 143 deps += [ "//ui/gfx/x" ] 144 } 145 } 146 147 test("views_unittests") { 148 sources = gypi_values.views_unittests_sources 149 150 deps = [ 151 ":test_support", 152 "//base", 153 "//base:i18n", 154 "//base/allocator", 155 "//base/test:test_support", 156 "//skia", 157 "//testing/gtest", 158 "//third_party/icu", 159 "//ui/accessibility", 160 "//ui/aura", 161 "//ui/base", 162 "//ui/base:test_support", 163 "//ui/compositor:test_support", 164 "//ui/events:test_support", 165 "//ui/events:events_base", 166 "//ui/events/platform", 167 "//ui/gfx", 168 "//ui/gfx/geometry", 169 "//ui/gl", 170 "//ui/resources", 171 "//ui/strings", 172 "//ui/wm", 173 "//url", 174 ] 175 176 if (is_chromeos) { 177 sources -= [ 178 "ime/input_method_bridge_unittest.cc", 179 ] 180 } 181 182 if (is_win) { 183 deps += [ 184 "//third_party/iaccessible2", 185 "//third_party/wtl", 186 ] 187 libs = [ 188 "imm32.lib", 189 "oleacc.lib", 190 "comctl32.lib", 191 ] 192 # TOOD(GYP) 193 #'msvs_settings': { 194 # 'VCManifestTool': { 195 # 'AdditionalManifestFiles': [ 196 # '$(ProjectDir)\\test\\views_unittest.manifest', 197 # ], 198 # }, 199 #}, 200 } 201 202 if (use_x11) { 203 configs += [ 204 "//build/config/linux:x11", 205 "//build/config/linux:xext", 206 ] 207 deps += [ 208 "//ui/events/platform/x11", 209 "//ui/gfx/x", 210 ] 211 } 212 213 if (use_aura) { 214 sources += gypi_values.views_unittests_aura_sources 215 deps += [ "//ui/aura:test_support" ] 216 if (!is_chromeos) { 217 sources += gypi_values.views_unittests_desktop_aura_sources 218 } 219 } 220 if (use_x11) { 221 deps += [ 222 "//ui/events/platform/x11", 223 "//ui/gfx/x", 224 ] 225 } 226 227 if (is_mac) { 228 # views_unittests not yet compiling on Mac. http://crbug.com/378134 229 sources -= [ 230 "bubble/bubble_window_targeter_unittest.cc", 231 "controls/button/custom_button_unittest.cc", 232 "controls/button/menu_button_unittest.cc", 233 "controls/native/native_view_host_unittest.cc", 234 "controls/menu/menu_controller_unittest.cc", 235 "ime/input_method_bridge_unittest.cc", 236 "focus/focus_manager_unittest.cc", 237 "widget/window_reorderer_unittest.cc", 238 "widget/widget_unittest.cc", 239 ] 240 } 241 } 242 243 if (is_mac) { 244 test("macviews_interactive_ui_tests") { 245 sources = [ 246 "run_all_unittests.cc", 247 "widget/native_widget_mac_interactive_uitest.mm", 248 ] 249 deps = [ 250 ":test_support", 251 ":views", 252 "//base", 253 "//base/test:test_support", 254 "//skia", 255 "//testing/gtest", 256 "//ui/aura", 257 "//ui/compositor", 258 "//ui/resources", 259 "//ui/resources:ui_test_pak", 260 "//ui/strings", 261 "//ui/wm", 262 ] 263 } 264 } 265