OLD | NEW |
1 # Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 import("//build/config/ui.gni") | 5 import("//build/config/ui.gni") |
6 if (is_android) { | 6 if (is_android) { |
7 import("//build/config/android/config.gni") | 7 import("//build/config/android/config.gni") |
8 import("//build/config/android/rules.gni") | 8 import("//build/config/android/rules.gni") |
9 } | 9 } |
10 | 10 |
11 gl_binding_output_dir = target_gen_dir | |
12 | |
13 config("gl_config") { | 11 config("gl_config") { |
14 if (use_x11) { | 12 if (use_x11) { |
15 defines = [ "GL_GLEXT_PROTOTYPES" ] | 13 defines = [ "GL_GLEXT_PROTOTYPES" ] |
16 } | 14 } |
17 | |
18 # TODO(brettw) this should be removed and the the files using the generated | |
19 # GL bindings should use the path inside the gen directory. | |
20 include_dirs = [ gl_binding_output_dir ] | |
21 } | 15 } |
22 | 16 |
23 component("gl") { | 17 component("gl") { |
24 output_name = "gl_wrapper" # Avoid colliding with OS X"s libGL.dylib. | 18 output_name = "gl_wrapper" # Avoid colliding with OS X"s libGL.dylib. |
25 | 19 |
26 sources = [ | 20 sources = [ |
27 "android/gl_jni_registrar.cc", | 21 "android/gl_jni_registrar.cc", |
28 "android/gl_jni_registrar.h", | 22 "android/gl_jni_registrar.h", |
29 "android/scoped_java_surface.cc", | 23 "android/scoped_java_surface.cc", |
30 "android/scoped_java_surface.h", | 24 "android/scoped_java_surface.h", |
31 "android/surface_texture.cc", | 25 "android/surface_texture.cc", |
32 "android/surface_texture.h", | 26 "android/surface_texture.h", |
33 "android/surface_texture_listener.cc", | 27 "android/surface_texture_listener.cc", |
34 "android/surface_texture_listener.h", | 28 "android/surface_texture_listener.h", |
35 "gl_bindings.h", | 29 "gl_bindings.h", |
| 30 "gl_bindings_autogen_gl.cc", |
| 31 "gl_bindings_autogen_gl.h", |
| 32 "gl_bindings_autogen_osmesa.cc", |
| 33 "gl_bindings_autogen_osmesa.h", |
36 "gl_bindings_skia_in_process.cc", | 34 "gl_bindings_skia_in_process.cc", |
37 "gl_bindings_skia_in_process.h", | 35 "gl_bindings_skia_in_process.h", |
38 "gl_context.cc", | 36 "gl_context.cc", |
39 "gl_context.h", | 37 "gl_context.h", |
40 "gl_context_android.cc", | 38 "gl_context_android.cc", |
41 "gl_context_mac.mm", | 39 "gl_context_mac.mm", |
42 "gl_context_osmesa.cc", | 40 "gl_context_osmesa.cc", |
43 "gl_context_osmesa.h", | 41 "gl_context_osmesa.h", |
44 "gl_context_stub.cc", | 42 "gl_context_stub.cc", |
45 "gl_context_stub.h", | 43 "gl_context_stub.h", |
46 "gl_context_stub_with_extensions.cc", | 44 "gl_context_stub_with_extensions.cc", |
47 "gl_context_stub_with_extensions.h", | 45 "gl_context_stub_with_extensions.h", |
48 "gl_context_win.cc", | 46 "gl_context_win.cc", |
| 47 "gl_enums.cc", |
| 48 "gl_enums.h", |
| 49 "gl_enums_implementation_autogen.h", |
49 "gl_export.h", | 50 "gl_export.h", |
50 "gl_fence.cc", | 51 "gl_fence.cc", |
51 "gl_fence.h", | 52 "gl_fence.h", |
52 "gl_fence_arb.cc", | 53 "gl_fence_arb.cc", |
53 "gl_fence_arb.h", | 54 "gl_fence_arb.h", |
54 "gl_fence_nv.cc", | 55 "gl_fence_nv.cc", |
55 "gl_fence_nv.h", | 56 "gl_fence_nv.h", |
56 "gl_gl_api_implementation.cc", | 57 "gl_gl_api_implementation.cc", |
57 "gl_gl_api_implementation.h", | 58 "gl_gl_api_implementation.h", |
58 "gl_image.h", | 59 "gl_image.h", |
(...skipping 30 matching lines...) Expand all Loading... |
89 "gl_version_info.cc", | 90 "gl_version_info.cc", |
90 "gl_version_info.h", | 91 "gl_version_info.h", |
91 "gpu_switching_manager.cc", | 92 "gpu_switching_manager.cc", |
92 "gpu_switching_manager.h", | 93 "gpu_switching_manager.h", |
93 "scoped_binders.cc", | 94 "scoped_binders.cc", |
94 "scoped_binders.h", | 95 "scoped_binders.h", |
95 "scoped_make_current.cc", | 96 "scoped_make_current.cc", |
96 "scoped_make_current.h", | 97 "scoped_make_current.h", |
97 "sync_control_vsync_provider.cc", | 98 "sync_control_vsync_provider.cc", |
98 "sync_control_vsync_provider.h", | 99 "sync_control_vsync_provider.h", |
99 "$gl_binding_output_dir/gl_bindings_autogen_gl.cc", | |
100 "$gl_binding_output_dir/gl_bindings_autogen_gl.h", | |
101 "$gl_binding_output_dir/gl_bindings_autogen_osmesa.cc", | |
102 "$gl_binding_output_dir/gl_bindings_autogen_osmesa.h", | |
103 ] | 100 ] |
104 | 101 |
105 defines = [ "GL_IMPLEMENTATION" ] | 102 defines = [ "GL_IMPLEMENTATION" ] |
106 | 103 |
107 include_dirs = [ | 104 include_dirs = [ |
108 "//third_party/switfshader/include", | 105 "//third_party/switfshader/include", |
109 "//third_party/khronos", | 106 "//third_party/khronos", |
110 "//third_party/mesa/src/include", | 107 "//third_party/mesa/src/include", |
111 gl_binding_output_dir, | |
112 ] | 108 ] |
113 | 109 |
114 all_dependent_configs = [ ":gl_config" ] | 110 all_dependent_configs = [ ":gl_config" ] |
115 | 111 |
116 deps = [ | 112 deps = [ |
117 ":generate_gl_bindings", | |
118 "//base/third_party/dynamic_annotations", | 113 "//base/third_party/dynamic_annotations", |
119 "//gpu/command_buffer/common", | 114 "//gpu/command_buffer/common", |
120 "//skia", | 115 "//skia", |
121 ] | 116 ] |
122 public_deps = [ | 117 public_deps = [ |
123 "//base", | 118 "//base", |
124 "//third_party/mesa:mesa_headers", | 119 "//third_party/mesa:mesa_headers", |
125 "//ui/events/platform", | 120 "//ui/events/platform", |
126 "//ui/gfx", | 121 "//ui/gfx", |
127 "//ui/gfx/geometry", | 122 "//ui/gfx/geometry", |
128 ] | 123 ] |
129 | 124 |
130 if (is_win || is_android || is_linux) { | 125 if (is_win || is_android || is_linux) { |
131 sources += [ | 126 sources += [ |
132 "egl_util.cc", | 127 "egl_util.cc", |
133 "egl_util.h", | 128 "egl_util.h", |
| 129 "gl_bindings_autogen_egl.cc", |
| 130 "gl_bindings_autogen_egl.h", |
134 "gl_context_egl.cc", | 131 "gl_context_egl.cc", |
135 "gl_context_egl.h", | 132 "gl_context_egl.h", |
136 "gl_fence_egl.cc", | 133 "gl_fence_egl.cc", |
137 "gl_fence_egl.h", | 134 "gl_fence_egl.h", |
138 "gl_image_egl.cc", | 135 "gl_image_egl.cc", |
139 "gl_image_egl.h", | 136 "gl_image_egl.h", |
140 "gl_surface_egl.cc", | 137 "gl_surface_egl.cc", |
141 "gl_surface_egl.h", | 138 "gl_surface_egl.h", |
142 "$gl_binding_output_dir/gl_bindings_autogen_egl.cc", | |
143 "$gl_binding_output_dir/gl_bindings_autogen_egl.h", | |
144 ] | 139 ] |
145 } | 140 } |
146 if (is_android || is_linux) { | 141 if (is_android || is_linux) { |
147 sources += [ | 142 sources += [ |
148 "gl_implementation_osmesa.cc", | 143 "gl_implementation_osmesa.cc", |
149 "gl_implementation_osmesa.h", | 144 "gl_implementation_osmesa.h", |
150 ] | 145 ] |
151 } | 146 } |
152 if (is_linux) { | 147 if (is_linux) { |
153 deps += [ "//third_party/libevent" ] | 148 deps += [ "//third_party/libevent" ] |
154 sources += [ | 149 sources += [ |
155 "gl_image_linux_dma_buffer.cc", | 150 "gl_image_linux_dma_buffer.cc", |
156 "gl_image_linux_dma_buffer.h", | 151 "gl_image_linux_dma_buffer.h", |
157 ] | 152 ] |
158 } | 153 } |
159 if (use_x11) { | 154 if (use_x11) { |
160 sources += [ | 155 sources += [ |
| 156 "gl_bindings_autogen_glx.cc", |
| 157 "gl_bindings_autogen_glx.h", |
161 "gl_context_glx.cc", | 158 "gl_context_glx.cc", |
162 "gl_context_glx.h", | 159 "gl_context_glx.h", |
163 "gl_context_x11.cc", | 160 "gl_context_x11.cc", |
164 "gl_glx_api_implementation.cc", | 161 "gl_glx_api_implementation.cc", |
165 "gl_glx_api_implementation.h", | 162 "gl_glx_api_implementation.h", |
166 "gl_image_glx.cc", | 163 "gl_image_glx.cc", |
167 "gl_image_glx.h", | 164 "gl_image_glx.h", |
168 "gl_implementation_x11.cc", | 165 "gl_implementation_x11.cc", |
169 "gl_surface_glx.cc", | 166 "gl_surface_glx.cc", |
170 "gl_surface_glx.h", | 167 "gl_surface_glx.h", |
171 "gl_surface_x11.cc", | 168 "gl_surface_x11.cc", |
172 "gl_egl_api_implementation.cc", | 169 "gl_egl_api_implementation.cc", |
173 "gl_egl_api_implementation.h", | 170 "gl_egl_api_implementation.h", |
174 "$gl_binding_output_dir/gl_bindings_autogen_glx.cc", | |
175 "$gl_binding_output_dir/gl_bindings_autogen_glx.h", | |
176 ] | 171 ] |
177 | 172 |
178 configs += [ | 173 configs += [ |
179 "//build/config/linux:x11", | 174 "//build/config/linux:x11", |
180 "//build/config/linux:xcomposite", | 175 "//build/config/linux:xcomposite", |
181 "//build/config/linux:xext", | 176 "//build/config/linux:xext", |
182 ] | 177 ] |
183 | 178 |
184 deps += [ "//ui/gfx/x" ] | 179 deps += [ "//ui/gfx/x" ] |
185 } | 180 } |
186 if (is_win) { | 181 if (is_win) { |
187 sources += [ | 182 sources += [ |
| 183 "gl_bindings_autogen_wgl.cc", |
| 184 "gl_bindings_autogen_wgl.h", |
188 "gl_context_wgl.cc", | 185 "gl_context_wgl.cc", |
189 "gl_context_wgl.h", | 186 "gl_context_wgl.h", |
190 "gl_egl_api_implementation.cc", | 187 "gl_egl_api_implementation.cc", |
191 "gl_egl_api_implementation.h", | 188 "gl_egl_api_implementation.h", |
192 "gl_surface_wgl.cc", | 189 "gl_surface_wgl.cc", |
193 "gl_surface_wgl.h", | 190 "gl_surface_wgl.h", |
194 "gl_wgl_api_implementation.cc", | 191 "gl_wgl_api_implementation.cc", |
195 "gl_wgl_api_implementation.h", | 192 "gl_wgl_api_implementation.h", |
196 "$gl_binding_output_dir/gl_bindings_autogen_wgl.cc", | |
197 "$gl_binding_output_dir/gl_bindings_autogen_wgl.h", | |
198 ] | 193 ] |
199 | 194 |
200 libs = [ "dwmapi.lib" ] | 195 libs = [ "dwmapi.lib" ] |
201 ldflags = [ "/DELAYLOAD:dwmapi.dll" ] | 196 ldflags = [ "/DELAYLOAD:dwmapi.dll" ] |
202 } | 197 } |
203 if (is_mac) { | 198 if (is_mac) { |
204 sources += [ | 199 sources += [ |
205 "gl_context_cgl.cc", | 200 "gl_context_cgl.cc", |
206 "gl_context_cgl.h", | 201 "gl_context_cgl.h", |
207 "gl_fence_apple.cc", | 202 "gl_fence_apple.cc", |
(...skipping 19 matching lines...) Expand all Loading... |
227 | 222 |
228 defines += [ | 223 defines += [ |
229 "GL_GLEXT_PROTOTYPES", | 224 "GL_GLEXT_PROTOTYPES", |
230 "EGL_EGLEXT_PROTOTYPES", | 225 "EGL_EGLEXT_PROTOTYPES", |
231 ] | 226 ] |
232 | 227 |
233 libs = [ "android" ] | 228 libs = [ "android" ] |
234 | 229 |
235 deps += [ ":gl_jni_headers" ] | 230 deps += [ ":gl_jni_headers" ] |
236 } | 231 } |
| 232 if (use_ozone) { |
| 233 sources += [ |
| 234 "gl_context_ozone.cc", |
| 235 "gl_egl_api_implementation.cc", |
| 236 "gl_egl_api_implementation.h", |
| 237 "gl_implementation_ozone.cc", |
| 238 "gl_surface_ozone.cc", |
| 239 ] |
| 240 deps += [ |
| 241 "//ui/ozone", |
| 242 "//ui/ozone:ozone_base", |
| 243 ] |
| 244 } |
237 | 245 |
238 if (is_android && !is_android_webview_build) { | 246 if (is_android && !is_android_webview_build) { |
239 deps += [ "//ui/android:ui_java" ] | 247 deps += [ "//ui/android:ui_java" ] |
240 } | 248 } |
241 } | 249 } |
242 | 250 |
243 action("generate_gl_bindings") { | |
244 visibility = [ ":*" ] # Only targets in this file can see this. | |
245 | |
246 script = "generate_bindings.py" | |
247 | |
248 # TODO(brettw) make this dynamic. The GYP version calls "generate_bindings.py | |
249 # --inputs" to get the list here. What should happen is that the script | |
250 # should generate a .d file, which we should declare here. That will | |
251 # eliminate the need bot both hardcoding the list here or calling the script | |
252 # during GN-time. | |
253 inputs = [ | |
254 "EGL/eglextchromium.h", | |
255 "GL/glextchromium.h", | |
256 "//third_party/mesa/src/include/GL/glext.h", | |
257 "//third_party/khronos/GLES2/gl2ext.h", | |
258 "//gpu/GLES2/gl2chromium.h", | |
259 "//gpu/GLES2/gl2extchromium.h", | |
260 "//third_party/khronos/EGL/eglext.h", | |
261 "//third_party/mesa/src/include/GL/wglext.h", | |
262 "//third_party/mesa/src/include/GL/glx.h", | |
263 "//third_party/mesa/src/include/GL/glxext.h", | |
264 ] | |
265 | |
266 outputs = [ | |
267 "$gl_binding_output_dir/gl_bindings_autogen_egl.cc", | |
268 "$gl_binding_output_dir/gl_bindings_autogen_egl.h", | |
269 "$gl_binding_output_dir/gl_bindings_api_autogen_egl.h", | |
270 "$gl_binding_output_dir/gl_bindings_autogen_gl.cc", | |
271 "$gl_binding_output_dir/gl_bindings_autogen_gl.h", | |
272 "$gl_binding_output_dir/gl_bindings_api_autogen_gl.h", | |
273 "$gl_binding_output_dir/gl_bindings_autogen_glx.cc", | |
274 "$gl_binding_output_dir/gl_bindings_autogen_glx.h", | |
275 "$gl_binding_output_dir/gl_bindings_api_autogen_glx.h", | |
276 "$gl_binding_output_dir/gl_bindings_autogen_mock.cc", | |
277 "$gl_binding_output_dir/gl_bindings_autogen_mock.h", | |
278 "$gl_binding_output_dir/gl_bindings_autogen_osmesa.cc", | |
279 "$gl_binding_output_dir/gl_bindings_autogen_osmesa.h", | |
280 "$gl_binding_output_dir/gl_bindings_api_autogen_osmesa.h", | |
281 "$gl_binding_output_dir/gl_bindings_autogen_wgl.cc", | |
282 "$gl_binding_output_dir/gl_bindings_autogen_wgl.h", | |
283 "$gl_binding_output_dir/gl_bindings_api_autogen_wgl.h", | |
284 "$gl_binding_output_dir/gl_mock_autogen_gl.h", | |
285 ] | |
286 | |
287 args = [ | |
288 "--header-paths=" + rebase_path("//third_party/khronos", root_build_dir) + | |
289 ":" + rebase_path("//third_party/mesa/src/include", root_build_dir) + | |
290 ":" + rebase_path("//ui/gl", root_build_dir) + ":" + | |
291 rebase_path("//gpu", root_build_dir), | |
292 rebase_path(gl_binding_output_dir, root_build_dir), | |
293 ] | |
294 } | |
295 | |
296 config("gl_unittest_utils_config") { | |
297 include_dirs = [ gl_binding_output_dir ] | |
298 } | |
299 | |
300 source_set("gl_unittest_utils") { | 251 source_set("gl_unittest_utils") { |
301 testonly = true | 252 testonly = true |
302 sources = [ | 253 sources = [ |
| 254 "gl_bindings_autogen_mock.cc", |
| 255 "gl_bindings_autogen_mock.h", |
| 256 "gl_mock_autogen_gl.h", |
303 "gl_mock.h", | 257 "gl_mock.h", |
304 "gl_mock.cc", | 258 "gl_mock.cc", |
305 "$gl_binding_output_dir/gl_bindings_autogen_mock.cc", | |
306 "$gl_binding_output_dir/gl_bindings_autogen_mock.h", | |
307 "$gl_binding_output_dir/gl_mock_autogen_gl.h", | |
308 ] | 259 ] |
309 | 260 |
310 configs += [ "//third_party/khronos:khronos_headers" ] | 261 configs += [ "//third_party/khronos:khronos_headers" ] |
311 public_configs = [ ":gl_unittest_utils_config" ] | |
312 | 262 |
313 deps = [ | 263 deps = [ |
314 ":gl", | 264 ":gl", |
315 "//testing/gmock", | 265 "//testing/gmock", |
316 ] | 266 ] |
317 } | 267 } |
318 | 268 |
319 if (is_android) { | 269 if (is_android) { |
320 generate_jar_jni("surface_jni_headers") { | 270 generate_jar_jni("surface_jni_headers") { |
321 jni_package = "ui/gl" | 271 jni_package = "ui/gl" |
322 classes = [ "android/view/Surface.class" ] | 272 classes = [ "android/view/Surface.class" ] |
323 } | 273 } |
324 | 274 |
325 generate_jni("gl_jni_headers") { | 275 generate_jni("gl_jni_headers") { |
326 deps = [ | 276 deps = [ |
327 ":surface_jni_headers", | 277 ":surface_jni_headers", |
328 ] | 278 ] |
329 sources = [ | 279 sources = [ |
330 "../android/java/src/org/chromium/ui/gl/SurfaceTextureListener.java", | 280 "../android/java/src/org/chromium/ui/gl/SurfaceTextureListener.java", |
331 "../android/java/src/org/chromium/ui/gl/SurfaceTexturePlatformWrapper.java
", | 281 "../android/java/src/org/chromium/ui/gl/SurfaceTexturePlatformWrapper.java
", |
332 ] | 282 ] |
333 jni_package = "ui/gl" | 283 jni_package = "ui/gl" |
334 } | 284 } |
335 } | 285 } |
OLD | NEW |