1 # Copyright (c) 2012 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.
13 'type': '<(component)',
14 'product_name': 'gl_wrapper', # Avoid colliding with OS X's libGL.dylib
16 '<(DEPTH)/base/base.gyp:base',
17 '<(DEPTH)/base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
18 '<(DEPTH)/gpu/command_buffer/command_buffer.gyp:gles2_utils',
19 '<(DEPTH)/skia/skia.gyp:skia',
20 '<(DEPTH)/third_party/mesa/mesa.gyp:mesa_headers',
21 '<(DEPTH)/ui/gfx/gfx.gyp:gfx',
22 '<(DEPTH)/ui/gfx/gfx.gyp:gfx_geometry',
25 'gl_binding_output_dir': '<(SHARED_INTERMEDIATE_DIR)/ui/gl',
31 '<(DEPTH)/third_party/swiftshader/include',
32 '<(DEPTH)/third_party/khronos',
33 '<(DEPTH)/third_party/mesa/src/include',
34 '<(gl_binding_output_dir)',
36 'direct_dependent_settings': {
38 '<(gl_binding_output_dir)',
41 'export_dependent_settings': [
42 '<(DEPTH)/third_party/mesa/mesa.gyp:mesa_headers',
45 'android/gl_jni_registrar.cc',
46 'android/gl_jni_registrar.h',
47 'android/scoped_java_surface.cc',
48 'android/scoped_java_surface.h',
49 'android/surface_texture.cc',
50 'android/surface_texture.h',
51 'android/surface_texture_listener.cc',
52 'android/surface_texture_listener.h',
53 'android/surface_texture_tracker.cc',
54 'android/surface_texture_tracker.h',
56 'gl_bindings_skia_in_process.cc',
57 'gl_bindings_skia_in_process.h',
60 'gl_context_android.cc',
62 'gl_context_ozone.cc',
63 'gl_context_osmesa.cc',
64 'gl_context_osmesa.h',
67 'gl_context_stub_with_extensions.cc',
68 'gl_context_stub_with_extensions.h',
78 'gl_gl_api_implementation.cc',
79 'gl_gl_api_implementation.h',
84 'gl_image_ref_counted_memory.cc',
85 'gl_image_ref_counted_memory.h',
86 'gl_image_shared_memory.cc',
87 'gl_image_shared_memory.h',
90 'gl_implementation.cc',
91 'gl_implementation.h',
92 'gl_implementation_android.cc',
93 'gl_implementation_ozone.cc',
94 'gl_implementation_mac.cc',
95 'gl_implementation_win.cc',
96 'gl_implementation_x11.cc',
97 'gl_osmesa_api_implementation.cc',
98 'gl_osmesa_api_implementation.h',
101 'gl_state_restorer.cc',
102 'gl_state_restorer.h',
105 'gl_surface_android.cc',
107 'gl_surface_stub.cc',
111 'gl_surface_osmesa.cc',
112 'gl_surface_osmesa.h',
113 'gl_surface_ozone.cc',
116 'gl_version_info.cc',
118 'gpu_switching_manager.cc',
119 'gpu_switching_manager.h',
122 'scoped_make_current.cc',
123 'scoped_make_current.h',
124 'sync_control_vsync_provider.cc',
125 'sync_control_vsync_provider.h',
126 '<(gl_binding_output_dir)/gl_bindings_autogen_gl.cc',
127 '<(gl_binding_output_dir)/gl_bindings_autogen_gl.h',
128 '<(gl_binding_output_dir)/gl_bindings_autogen_osmesa.cc',
129 '<(gl_binding_output_dir)/gl_bindings_autogen_osmesa.h',
131 # hard_dependency is necessary for this target because it has actions
132 # that generate header files included by dependent targets. The header
133 # files must be generated before the dependents are compiled. The usual
134 # semantics are to allow the two targets to build concurrently.
135 'hard_dependency': 1,
138 'action_name': 'generate_gl_bindings',
140 'generator_path': 'generate_bindings.py',
141 # Prefer khronos EGL/GLES headers by listing that path first.
142 'header_paths': '../../third_party/khronos:../../third_party/mesa/src/include:.:../../gpu',
146 '<!@(python <(generator_path) --header-paths=<(header_paths) --inputs)',
149 '<(gl_binding_output_dir)/gl_bindings_autogen_egl.cc',
150 '<(gl_binding_output_dir)/gl_bindings_autogen_egl.h',
151 '<(gl_binding_output_dir)/gl_bindings_api_autogen_egl.h',
152 '<(gl_binding_output_dir)/gl_bindings_autogen_gl.cc',
153 '<(gl_binding_output_dir)/gl_bindings_autogen_gl.h',
154 '<(gl_binding_output_dir)/gl_bindings_api_autogen_gl.h',
155 '<(gl_binding_output_dir)/gl_bindings_autogen_glx.cc',
156 '<(gl_binding_output_dir)/gl_bindings_autogen_glx.h',
157 '<(gl_binding_output_dir)/gl_bindings_api_autogen_glx.h',
158 '<(gl_binding_output_dir)/gl_bindings_autogen_mock.cc',
159 '<(gl_binding_output_dir)/gl_bindings_autogen_mock.h',
160 '<(gl_binding_output_dir)/gl_bindings_autogen_osmesa.cc',
161 '<(gl_binding_output_dir)/gl_bindings_autogen_osmesa.h',
162 '<(gl_binding_output_dir)/gl_bindings_api_autogen_osmesa.h',
163 '<(gl_binding_output_dir)/gl_bindings_autogen_wgl.cc',
164 '<(gl_binding_output_dir)/gl_bindings_autogen_wgl.h',
165 '<(gl_binding_output_dir)/gl_bindings_api_autogen_wgl.h',
166 '<(gl_binding_output_dir)/gl_mock_autogen_gl.h',
171 '--header-paths=<(header_paths)',
172 '<(gl_binding_output_dir)',
177 ['OS in ("win", "android", "linux")', {
189 'gl_egl_api_implementation.cc',
190 'gl_egl_api_implementation.h',
191 '<(gl_binding_output_dir)/gl_bindings_autogen_egl.cc',
192 '<(gl_binding_output_dir)/gl_bindings_autogen_egl.h',
195 '<(DEPTH)/third_party/khronos',
198 ['OS in ("android", "linux")', {
200 'gl_implementation_osmesa.cc',
201 'gl_implementation_osmesa.h',
208 'gl_glx_api_implementation.cc',
209 'gl_glx_api_implementation.h',
214 'gl_egl_api_implementation.cc',
215 'gl_egl_api_implementation.h',
216 '<(gl_binding_output_dir)/gl_bindings_autogen_glx.cc',
217 '<(gl_binding_output_dir)/gl_bindings_autogen_glx.h',
219 'all_dependent_settings': {
221 'GL_GLEXT_PROTOTYPES',
225 '<(DEPTH)/build/linux/system.gyp:x11',
226 '<(DEPTH)/build/linux/system.gyp:xcomposite',
227 '<(DEPTH)/build/linux/system.gyp:xext',
228 '<(DEPTH)/ui/events/platform/events_platform.gyp:events_platform',
229 '<(DEPTH)/ui/gfx/x/gfx_x11.gyp:gfx_x11',
236 'gl_egl_api_implementation.cc',
237 'gl_egl_api_implementation.h',
240 'gl_wgl_api_implementation.cc',
241 'gl_wgl_api_implementation.h',
242 '<(gl_binding_output_dir)/gl_bindings_autogen_wgl.cc',
243 '<(gl_binding_output_dir)/gl_bindings_autogen_wgl.h',
250 'AdditionalDependencies': [
265 'gl_image_io_surface.cc',
266 'gl_image_io_surface.h',
272 '$(SDKROOT)/System/Library/Frameworks/IOSurface.framework',
273 '$(SDKROOT)/System/Library/Frameworks/OpenGL.framework',
282 'gl_image_android_native_buffer.cc',
283 'gl_image_android_native_buffer.h',
284 'gl_image_surface_texture.cc',
285 'gl_image_surface_texture.h',
293 'system_monitor_posix.cc',
296 'GL_GLEXT_PROTOTYPES',
297 'EGL_EGLEXT_PROTOTYPES',
301 'sources/': [ ['exclude', '^android/'] ],
305 '../ozone/ozone.gyp:ozone_base',
308 ['OS=="android" and android_webview_build==0', {
310 '../android/ui_android.gyp:ui_java',
316 'target_name': 'gl_unittest_utils',
317 'type': 'static_library',
319 'gl_binding_output_dir': '<(SHARED_INTERMEDIATE_DIR)/ui/gl',
322 '../../testing/gmock.gyp:gmock',
323 '../../third_party/khronos/khronos.gyp:khronos_headers',
327 '<(gl_binding_output_dir)',
330 'direct_dependent_settings': {
332 '<(gl_binding_output_dir)',
338 '<(gl_binding_output_dir)/gl_bindings_autogen_mock.cc',
339 '<(gl_binding_output_dir)/gl_bindings_autogen_mock.h',
340 '<(gl_binding_output_dir)/gl_mock_autogen_gl.h',
348 'target_name': 'surface_jni_headers',
351 'jni_gen_package': 'ui/gl',
352 'input_java_class': 'android/view/Surface.class',
354 'includes': [ '../../build/jar_file_jni_generator.gypi' ],
357 'target_name': 'gl_jni_headers',
360 'surface_jni_headers',
363 '../android/java/src/org/chromium/ui/gl/SurfaceTexturePlatformWrapper.java',
364 '../android/java/src/org/chromium/ui/gl/SurfaceTextureListener.java',
367 'jni_gen_package': 'ui/gl',
369 'includes': [ '../../build/jni_generator.gypi' ],