• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
5import("//ui/ozone/ozone.gni")
6
7# The list of platforms that will be built.
8ozone_platforms = []
9
10# Extra dependencies to pull into ui/ozone for built platforms.
11ozone_platform_deps = []
12
13# Extra dependencies to pull into ozone_unittests for built platforms.
14ozone_platform_test_deps = []
15
16if (ozone_platform_egltest) {
17  ozone_platforms += [ "egltest" ]
18  ozone_platform_deps += [ "platform/egltest" ]
19}
20
21if (ozone_platform_test) {
22  ozone_platforms += [ "test" ]
23  ozone_platform_deps += [ "platform/test" ]
24}
25
26if (ozone_platform_caca) {
27  ozone_platforms += [ "caca" ]
28  ozone_platform_deps += [ "platform/caca" ]
29}
30
31if (ozone_platform_dri) {
32  ozone_platforms += [ "dri" ]
33  ozone_platform_deps += [ "platform/dri" ]
34  ozone_platform_test_deps += [ "platform/dri:dri_unittests" ]
35}
36
37if (ozone_platform_gbm) {
38  ozone_platforms += [ "gbm" ]
39  ozone_platform_deps += [ "platform/dri:gbm" ]
40}
41
42platform_list_cc_file = "$target_gen_dir/platform_list.cc"
43platform_list_h_file = "$target_gen_dir/platform_list.h"
44platform_list_txt_file = "$target_gen_dir/platform_list.txt"
45constructor_list_cc_file = "$target_gen_dir/constructor_list.cc"
46
47# GYP version: ui/ozone/ozone.gyp:ozone_base
48component("ozone_base") {
49  sources = [
50    "public/cursor_factory_ozone.cc",
51    "public/cursor_factory_ozone.h",
52    "public/gpu_platform_support.cc",
53    "public/gpu_platform_support.h",
54    "public/gpu_platform_support_host.cc",
55    "public/gpu_platform_support_host.h",
56    "public/overlay_candidates_ozone.cc",
57    "public/overlay_candidates_ozone.h",
58    "public/surface_factory_ozone.cc",
59    "public/surface_factory_ozone.h",
60    "public/surface_ozone_canvas.h",
61    "public/surface_ozone_egl.h",
62  ]
63
64  defines = [ "OZONE_BASE_IMPLEMENTATION" ]
65
66  deps = [
67    "//base",
68    "//skia",
69    "//ui/gfx/geometry",
70  ]
71}
72
73component("ozone") {
74  sources = [
75    platform_list_cc_file,
76    platform_list_h_file,
77    constructor_list_cc_file,
78
79    # common/chromeos files are excluded automatically when building with
80    # chromeos=0, by exclusion rules in filename_rules.gypi due to the
81    # "chromeos" folder name.
82    "common/chromeos/display_mode_proxy.cc",
83    "common/chromeos/display_mode_proxy.h",
84    "common/chromeos/display_snapshot_proxy.cc",
85    "common/chromeos/display_snapshot_proxy.h",
86    "common/chromeos/display_util.cc",
87    "common/chromeos/display_util.h",
88    "common/chromeos/native_display_delegate_ozone.cc",
89    "common/chromeos/native_display_delegate_ozone.h",
90    "common/gpu/ozone_gpu_message_generator.cc",
91    "common/gpu/ozone_gpu_message_generator.h",
92    "common/gpu/ozone_gpu_message_params.cc",
93    "common/gpu/ozone_gpu_message_params.h",
94    "common/gpu/ozone_gpu_messages.h",
95    "public/ozone_platform.cc",
96    "public/ozone_platform.h",
97    "public/ozone_switches.cc",
98    "public/ozone_switches.h",
99    "public/ui_thread_gpu.cc",
100    "public/ui_thread_gpu.h",
101    "platform_selection.cc",
102    "platform_selection.h",
103  ]
104
105  defines = [ "OZONE_IMPLEMENTATION" ]
106
107  deps = [
108    ":generate_constructor_list",
109    ":generate_ozone_platform_list",
110    ":ozone_base",
111    "//base",
112    "//ipc",
113    "//skia",
114    "//ui/events",
115    "//ui/events/ozone:events_ozone",
116    "//ui/gfx",
117    "//ui/gfx/geometry",
118    "//ui/gfx/ipc",
119    # TODO(GYP) the GYP version has a way to add additional dependencies via
120    # build flags.
121  ] + ozone_platform_deps
122
123  if (is_chromeos) {
124    deps += [ "//ui/display/types" ]
125  }
126}
127
128# GYP version: ui/ozone/ozone.gyp:generate_ozone_platform_list
129action("generate_ozone_platform_list") {
130  script = "generate_ozone_platform_list.py"
131  outputs = [
132    platform_list_cc_file,
133    platform_list_h_file,
134    platform_list_txt_file
135  ]
136
137  args = [
138    "--output_cc=" + rebase_path(platform_list_cc_file, root_build_dir),
139    "--output_h=" + rebase_path(platform_list_h_file, root_build_dir),
140    "--output_txt=" + rebase_path(platform_list_txt_file, root_build_dir),
141    "--default=$ozone_platform",
142  ] + ozone_platforms
143}
144
145# GYP version: ui/ozone/ozone.gyp:generate_constructor_list
146action("generate_constructor_list") {
147  script = "generate_constructor_list.py"
148
149  source_prereqs = [
150    platform_list_txt_file,
151  ]
152  outputs = [
153    constructor_list_cc_file,
154  ]
155
156  args = [
157    "--platform_list=" + rebase_path(platform_list_txt_file, root_build_dir),
158    "--output_cc=" + rebase_path(constructor_list_cc_file, root_build_dir),
159    "--namespace=ui",
160    "--typename=OzonePlatform",
161    "--include=\"ui/ozone/public/ozone_platform.h\"",
162  ]
163
164  deps = [ ":generate_ozone_platform_list" ]
165}
166
167test("ozone_unittests") {
168  sources = [
169    "run_all_unittests.cc",
170  ]
171
172  deps = [
173    "//base/test:test_support",
174    "//testing/gtest",
175  ] + ozone_platform_test_deps
176}
177