BUILD.gn 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299
  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. import("//build/config/chromeos/ui_mode.gni")
  5. import("//build/config/ui.gni")
  6. import("//testing/test.gni")
  7. component("display") {
  8. sources = [
  9. "display.cc",
  10. "display.h",
  11. "display_change_notifier.cc",
  12. "display_change_notifier.h",
  13. "display_export.h",
  14. "display_features.cc",
  15. "display_features.h",
  16. "display_finder.cc",
  17. "display_finder.h",
  18. "display_layout.cc",
  19. "display_layout.h",
  20. "display_layout_builder.cc",
  21. "display_layout_builder.h",
  22. "display_list.cc",
  23. "display_list.h",
  24. "display_observer.cc",
  25. "display_observer.h",
  26. "display_switches.cc",
  27. "display_switches.h",
  28. "display_transform.cc",
  29. "display_transform.h",
  30. "display_util.cc",
  31. "display_util.h",
  32. "scoped_display_for_new_windows.cc",
  33. "scoped_display_for_new_windows.h",
  34. "screen.cc",
  35. "screen.h",
  36. "screen_base.cc",
  37. "screen_base.h",
  38. "screen_info.cc",
  39. "screen_info.h",
  40. "screen_infos.cc",
  41. "screen_infos.h",
  42. "tablet_state.h",
  43. "unified_desktop_utils.cc",
  44. "unified_desktop_utils.h",
  45. ]
  46. if (is_android) {
  47. sources += [ "screen_android.cc" ]
  48. }
  49. if (is_mac) {
  50. sources += [
  51. "mac/display_link_mac.cc",
  52. "mac/display_link_mac.h",
  53. "mac/screen_mac.mm",
  54. ]
  55. }
  56. if (is_win) {
  57. sources += [
  58. "win/base_window_finder_win.cc",
  59. "win/base_window_finder_win.h",
  60. "win/color_profile_reader.cc",
  61. "win/color_profile_reader.h",
  62. "win/display_info.cc",
  63. "win/display_info.h",
  64. "win/dpi.cc",
  65. "win/dpi.h",
  66. "win/local_process_window_finder_win.cc",
  67. "win/local_process_window_finder_win.h",
  68. "win/scaling_util.cc",
  69. "win/scaling_util.h",
  70. "win/screen_win.cc",
  71. "win/screen_win.h",
  72. "win/screen_win_display.cc",
  73. "win/screen_win_display.h",
  74. "win/topmost_window_finder_win.cc",
  75. "win/topmost_window_finder_win.h",
  76. "win/uwp_text_scale_factor.cc",
  77. "win/uwp_text_scale_factor.h",
  78. ]
  79. }
  80. if (is_ios) {
  81. sources += [ "ios/screen_ios.mm" ]
  82. }
  83. defines = [ "DISPLAY_IMPLEMENTATION" ]
  84. public_deps = [
  85. "//ui/display/types",
  86. "//ui/gfx:color_space",
  87. "//ui/gfx:gfx",
  88. ]
  89. deps = [
  90. "//base",
  91. "//base:i18n",
  92. "//build:chromeos_buildflags",
  93. "//mojo/public/cpp/bindings:struct_traits",
  94. "//ui/display/mojom:mojom_shared_cpp_sources",
  95. "//ui/display/util",
  96. "//ui/gfx",
  97. "//ui/gfx/geometry",
  98. ]
  99. if (is_win) {
  100. # Don't conflict with Windows' "display.dll".
  101. output_name = "ui_display"
  102. deps += [ "//ui/gfx/mojom:dxgi_info" ]
  103. }
  104. if (use_aura) {
  105. sources += [ "screen_aura.cc" ]
  106. }
  107. if (is_mac) {
  108. frameworks = [
  109. "AppKit.framework",
  110. "CoreGraphics.framework",
  111. "QuartzCore.framework",
  112. "IOKit.framework",
  113. ]
  114. }
  115. }
  116. if (is_chromeos_ash) {
  117. component("display_manager_test_api") {
  118. testonly = true
  119. sources = [
  120. "test/display_manager_test_api.cc",
  121. "test/display_manager_test_api.h",
  122. ]
  123. defines = [ "DISPLAY_IMPLEMENTATION" ]
  124. public_deps = [ "//ui/display/manager" ]
  125. deps = [
  126. "//base",
  127. "//build:chromeos_buildflags",
  128. "//ui/display",
  129. "//ui/display/types",
  130. "//ui/display/util",
  131. ]
  132. }
  133. }
  134. static_library("test_support") {
  135. testonly = true
  136. sources = [
  137. "test/display_matchers.cc",
  138. "test/display_matchers.h",
  139. "test/display_test_util.h",
  140. "test/scoped_screen_override.cc",
  141. "test/scoped_screen_override.h",
  142. "test/test_screen.cc",
  143. "test/test_screen.h",
  144. ]
  145. public_deps = [ ":display" ]
  146. deps = [
  147. "//base",
  148. "//testing/gmock",
  149. "//ui/display/types",
  150. "//ui/display/util",
  151. "//ui/events/devices",
  152. "//ui/gfx",
  153. "//ui/gfx:test_support",
  154. "//ui/gfx/geometry",
  155. ]
  156. if (is_win) {
  157. sources += [
  158. "win/test/scoped_screen_win.cc",
  159. "win/test/scoped_screen_win.h",
  160. "win/test/screen_util_win.cc",
  161. "win/test/screen_util_win.h",
  162. ]
  163. }
  164. if (is_mac) {
  165. sources += [
  166. "mac/test/test_screen_mac.h",
  167. "mac/test/test_screen_mac.mm",
  168. "mac/test/virtual_display_mac_util.h",
  169. "mac/test/virtual_display_mac_util.mm",
  170. ]
  171. }
  172. if (is_chromeos_ash) {
  173. sources += [
  174. "manager/test/action_logger.cc",
  175. "manager/test/action_logger.h",
  176. "manager/test/action_logger_util.cc",
  177. "manager/test/action_logger_util.h",
  178. "manager/test/test_display_layout_manager.cc",
  179. "manager/test/test_display_layout_manager.h",
  180. "manager/test/test_native_display_delegate.cc",
  181. "manager/test/test_native_display_delegate.h",
  182. "manager/test/touch_device_manager_test_api.cc",
  183. "manager/test/touch_device_manager_test_api.h",
  184. "manager/test/touch_transform_controller_test_api.cc",
  185. "manager/test/touch_transform_controller_test_api.h",
  186. ]
  187. public_deps += [ "//ui/display/manager" ]
  188. }
  189. }
  190. # This test covers all testable components in display.
  191. test("display_unittests") {
  192. sources = [
  193. "display_layout_builder_unittest.cc",
  194. "display_layout_unittest.cc",
  195. "display_list_unittest.cc",
  196. "display_unittest.cc",
  197. "mojom/display_mojom_traits_unittest.cc",
  198. "mojom/screen_infos_mojom_traits_unittest.cc",
  199. "screen_unittest.cc",
  200. "unified_desktop_utils_unittests.cc",
  201. "util/display_util_unittest.cc",
  202. "util/edid_parser_unittest.cc",
  203. ]
  204. if (is_win) {
  205. sources += [
  206. "win/scaling_util_unittest.cc",
  207. "win/screen_win_unittest.cc",
  208. ]
  209. }
  210. deps = [
  211. ":display",
  212. ":test_support",
  213. "//base",
  214. "//base/test:test_support",
  215. "//build:chromeos_buildflags",
  216. "//cc/base",
  217. "//mojo/core/test:run_all_unittests",
  218. "//mojo/public/cpp/test_support:test_utils",
  219. "//testing/gmock",
  220. "//testing/gtest",
  221. "//ui/display/fake",
  222. "//ui/display/mojom",
  223. "//ui/display/types",
  224. "//ui/display/util",
  225. "//ui/events:test_support",
  226. "//ui/events/devices",
  227. "//ui/gfx:test_support",
  228. "//ui/gfx/geometry",
  229. ]
  230. if (!is_android) {
  231. # Do not run display_change_notifier_unittest.cc on Android because it
  232. # does not compile display_observer.cc
  233. sources += [ "display_change_notifier_unittest.cc" ]
  234. }
  235. if (is_chromeos_ash) {
  236. sources += [
  237. "fake/fake_display_snapshot_unittest.cc",
  238. "manager/apply_content_protection_task_unittest.cc",
  239. "manager/configure_displays_task_unittest.cc",
  240. "manager/content_protection_manager_unittest.cc",
  241. "manager/display_change_observer_unittest.cc",
  242. "manager/display_configurator_unittest.cc",
  243. "manager/display_manager_util_unittest.cc",
  244. "manager/display_manager_utilities_unittest.cc",
  245. "manager/json_converter_unittest.cc",
  246. "manager/managed_display_info_unittest.cc",
  247. "manager/query_content_protection_task_unittest.cc",
  248. "manager/touch_device_manager_unittest.cc",
  249. "manager/touch_transform_controller_unittest.cc",
  250. "manager/update_display_configuration_task_unittest.cc",
  251. ]
  252. deps += [
  253. ":display_manager_test_api",
  254. "//ash/constants",
  255. "//ui/display/manager",
  256. ]
  257. }
  258. }
  259. # This target is added as a dependency of browser interactive_ui_tests. It must
  260. # be source_set, otherwise the linker will drop the tests as dead code.
  261. source_set("display_interactive_ui_tests") {
  262. testonly = true
  263. if (is_mac) {
  264. sources = [ "mac/test/virtual_display_mac_util_interactive_uitest.mm" ]
  265. deps = [
  266. ":display",
  267. ":test_support",
  268. "//base/test:test_support",
  269. "//testing/gtest",
  270. ]
  271. }
  272. }