| Index: ui/gl/BUILD.gn
|
| diff --git a/ui/gl/BUILD.gn b/ui/gl/BUILD.gn
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..70c5ad4e2a7d08f28227efc3e81f1d97e2b33751
|
| --- /dev/null
|
| +++ b/ui/gl/BUILD.gn
|
| @@ -0,0 +1,289 @@
|
| +# Copyright 2014 The Chromium Authors. All rights reserved.
|
| +# Use of this source code is governed by a BSD-style license that can be
|
| +# found in the LICENSE file.
|
| +
|
| +import("//build/config/ui.gni")
|
| +
|
| +gl_binding_output_dir = target_gen_dir
|
| +
|
| +config("gl_config") {
|
| + if (use_x11) {
|
| + defines = [ "GL_GLEXT_PROTOTYPES" ]
|
| + }
|
| +}
|
| +
|
| +component("gl") {
|
| + output_name = "gl_wrapper" # Avoid colliding with OS X"s libGL.dylib.
|
| +
|
| + sources = [
|
| + "android/gl_jni_registrar.cc",
|
| + "android/gl_jni_registrar.h",
|
| + "android/scoped_java_surface.cc",
|
| + "android/scoped_java_surface.h",
|
| + "android/surface_texture.cc",
|
| + "android/surface_texture.h",
|
| + "android/surface_texture_listener.cc",
|
| + "android/surface_texture_listener.h",
|
| + "android/surface_texture_tracker.cc",
|
| + "android/surface_texture_tracker.h",
|
| + "gl_bindings.h",
|
| + "gl_bindings_skia_in_process.cc",
|
| + "gl_bindings_skia_in_process.h",
|
| + "gl_context.cc",
|
| + "gl_context.h",
|
| + "gl_context_android.cc",
|
| + "gl_context_mac.mm",
|
| + "gl_context_osmesa.cc",
|
| + "gl_context_osmesa.h",
|
| + "gl_context_stub.cc",
|
| + "gl_context_stub.h",
|
| + "gl_context_stub_with_extensions.cc",
|
| + "gl_context_stub_with_extensions.h",
|
| + "gl_context_win.cc",
|
| + "gl_context_x11.cc",
|
| + "gl_export.h",
|
| + "gl_fence.cc",
|
| + "gl_fence.h",
|
| + "gl_gl_api_implementation.cc",
|
| + "gl_gl_api_implementation.h",
|
| + "gl_image.cc",
|
| + "gl_image.h",
|
| + "gl_image_android.cc",
|
| + "gl_image_mac.cc",
|
| + "gl_image_shm.cc",
|
| + "gl_image_shm.h",
|
| + "gl_image_stub.cc",
|
| + "gl_image_stub.h",
|
| + "gl_image_win.cc",
|
| + "gl_image_x11.cc",
|
| + "gl_implementation.cc",
|
| + "gl_implementation.h",
|
| + "gl_implementation_android.cc",
|
| + "gl_implementation_mac.cc",
|
| + "gl_implementation_win.cc",
|
| + "gl_implementation_x11.cc",
|
| + "gl_osmesa_api_implementation.cc",
|
| + "gl_osmesa_api_implementation.h",
|
| + "gl_share_group.cc",
|
| + "gl_share_group.h",
|
| + "gl_state_restorer.cc",
|
| + "gl_state_restorer.h",
|
| + "gl_surface.cc",
|
| + "gl_surface.h",
|
| + "gl_surface_android.cc",
|
| + "gl_surface_mac.cc",
|
| + "gl_surface_stub.cc",
|
| + "gl_surface_stub.h",
|
| + "gl_surface_win.cc",
|
| + "gl_surface_x11.cc",
|
| + "gl_surface_osmesa.cc",
|
| + "gl_surface_osmesa.h",
|
| + "gl_switches.cc",
|
| + "gl_switches.h",
|
| + "gl_version_info.cc",
|
| + "gl_version_info.h",
|
| + "gpu_switching_manager.cc",
|
| + "gpu_switching_manager.h",
|
| + "io_surface_support_mac.cc",
|
| + "io_surface_support_mac.h",
|
| + "scoped_binders.cc",
|
| + "scoped_binders.h",
|
| + "scoped_make_current.cc",
|
| + "scoped_make_current.h",
|
| + "sync_control_vsync_provider.cc",
|
| + "sync_control_vsync_provider.h",
|
| + "$gl_binding_output_dir/gl_bindings_autogen_gl.cc",
|
| + "$gl_binding_output_dir/gl_bindings_autogen_gl.h",
|
| + "$gl_binding_output_dir/gl_bindings_autogen_osmesa.cc",
|
| + "$gl_binding_output_dir/gl_bindings_autogen_osmesa.h",
|
| + ]
|
| +
|
| + defines = [ "GL_IMPLEMENTATION" ]
|
| +
|
| + include_dirs = [
|
| + "//third_party/switfshader/include",
|
| + "//third_party/khronos",
|
| + "//third_party/mesa/src/include",
|
| + gl_binding_output_dir,
|
| + ]
|
| +
|
| + all_dependent_configs = [ ":gl_config" ]
|
| +
|
| + deps = [
|
| + ":generate_gl_bindings",
|
| + "//base",
|
| + "//base/third_party/dynamic_annotations",
|
| + "//gpu/command_buffer:gles2_utils",
|
| + "//skia",
|
| + # TODO(GYP) hook up once this is converted.
|
| + # Also uncomment forward statement below.
|
| + #"//third_party/mesa:mesa_headers",
|
| + "//ui/gfx",
|
| + "//ui/gfx/geometry",
|
| + ]
|
| +
|
| + # TODO(GYP) hook up once this is converted.
|
| + #forward_dependent_configs_from = [ "//third_party/mesa:mesa_headers" ]
|
| +
|
| + if (is_win || is_android || is_linux) {
|
| + sources += [
|
| + "egl_util.cc",
|
| + "egl_util.h",
|
| + "gl_context_egl.cc",
|
| + "gl_context_egl.h",
|
| + "gl_image_egl.cc",
|
| + "gl_image_egl.h",
|
| + "gl_surface_egl.cc",
|
| + "gl_surface_egl.h",
|
| + "$gl_binding_output_dir/gl_bindings_autogen_egl.cc",
|
| + "$gl_binding_output_dir/gl_bindings_autogen_egl.h",
|
| + ]
|
| + }
|
| + if (is_android || is_linux) {
|
| + sources += [
|
| + "gl_implementation_osmesa.cc",
|
| + "gl_implementation_osmesa.h",
|
| + ]
|
| + }
|
| + if (use_x11) {
|
| + sources += [
|
| + "gl_context_glx.cc",
|
| + "gl_context_glx.h",
|
| + "gl_glx_api_implementation.cc",
|
| + "gl_glx_api_implementation.h",
|
| + "gl_image_glx.cc",
|
| + "gl_image_glx.h",
|
| + "gl_surface_glx.cc",
|
| + "gl_surface_glx.h",
|
| + "gl_egl_api_implementation.cc",
|
| + "gl_egl_api_implementation.h",
|
| + "$gl_binding_output_dir/gl_bindings_autogen_glx.cc",
|
| + "$gl_binding_output_dir/gl_bindings_autogen_glx.h",
|
| + ]
|
| +
|
| + configs += [
|
| + "//build/config/linux:x11",
|
| + "//build/config/linux:xcomposite",
|
| + "//build/config/linux:xext",
|
| + ]
|
| +
|
| + deps += [
|
| + "//ui/gfx/x",
|
| + ]
|
| + }
|
| + if (is_win) {
|
| + sources += [
|
| + "gl_context_wgl.cc",
|
| + "gl_context_wgl.h",
|
| + "gl_egl_api_implementation.cc",
|
| + "gl_egl_api_implementation.h",
|
| + "gl_surface_wgl.cc",
|
| + "gl_surface_wgl.h",
|
| + "gl_wgl_api_implementation.cc",
|
| + "gl_wgl_api_implementation.h",
|
| + "$gl_binding_output_dir/gl_bindings_autogen_wgl.cc",
|
| + "$gl_binding_output_dir/gl_bindings_autogen_wgl.h",
|
| + ]
|
| +
|
| + libs = [ "dwmapi.lib" ]
|
| + ldflags = [ "/DELAYLOAD:dwmapi.dll" ]
|
| + }
|
| + if (is_mac) {
|
| + sources += [
|
| + "gl_context_cgl.cc",
|
| + "gl_context_cgl.h",
|
| + "gl_image_io_surface.cc",
|
| + "gl_image_io_surface.h",
|
| + "gl_surface_cgl.cc",
|
| + "gl_surface_cgl.h",
|
| + "scoped_cgl.cc",
|
| + "scoped_cgl.h",
|
| + ]
|
| +
|
| + libs = [ "OpenGL.framework" ]
|
| + }
|
| + if (is_android) {
|
| + sources += [
|
| + "gl_egl_api_implementation.cc",
|
| + "gl_egl_api_implementation.h",
|
| + "gl_image_android_native_buffer.cc",
|
| + "gl_image_android_native_buffer.h",
|
| + "gl_image_surface_texture.cc",
|
| + "gl_image_surface_texture.h",
|
| + ]
|
| +
|
| + defines += [
|
| + "GL_GLEXT_PROTOTYPES",
|
| + "EGL_EGLEXT_PROTOTYPES",
|
| + ]
|
| +
|
| + libs = [ "android" ]
|
| + }
|
| + if (use_ozone) {
|
| + sources += [
|
| + "gl_context_ozone.cc",
|
| + "gl_image_ozone.cc",
|
| + "gl_implementation_ozone.cc",
|
| + "gl_surface_ozone.cc",
|
| + ]
|
| + deps += [
|
| + "//ui/gfx/ozone",
|
| + "//ui/ozone",
|
| + ]
|
| + }
|
| +
|
| + # TODO(GYP) enable this dependency once its written.
|
| + #if (is_android && !android_webview_build) {
|
| + # deps += [ "//ui/android:ui_java" ]
|
| + #}
|
| +}
|
| +
|
| +action("generate_gl_bindings") {
|
| + script = "generate_bindings.py"
|
| +
|
| + # TODO(brettw) make this dynamic. The GYP version calls "generate_bindings.py
|
| + # --inputs" to get the list here. What should happen is that the script
|
| + # should generate a .d file, which we should declare here. That will
|
| + # eliminate the need bot both hardcoding the list here or calling the script
|
| + # during GN-time.
|
| + source_prereqs = [
|
| + "EGL/eglextchromium.h",
|
| + "GL/glextchromium.h",
|
| + "//third_party/mesa/src/include/GL/glext.h",
|
| + "//third_party/khronos/GLES2/gl2ext.h",
|
| + "//gpu/GLES2/gl2chromium.h",
|
| + "//gpu/GLES2/gl2extchromium.h",
|
| + "//third_party/khronos/EGL/eglext.h",
|
| + "//third_party/mesa/src/include/GL/wglext.h",
|
| + "//third_party/mesa/src/include/GL/glx.h",
|
| + "//third_party/mesa/src/include/GL/glxext.h",
|
| + ]
|
| +
|
| + outputs = [
|
| + "$gl_binding_output_dir/gl_bindings_autogen_egl.cc",
|
| + "$gl_binding_output_dir/gl_bindings_autogen_egl.h",
|
| + "$gl_binding_output_dir/gl_bindings_api_autogen_egl.h",
|
| + "$gl_binding_output_dir/gl_bindings_autogen_gl.cc",
|
| + "$gl_binding_output_dir/gl_bindings_autogen_gl.h",
|
| + "$gl_binding_output_dir/gl_bindings_api_autogen_gl.h",
|
| + "$gl_binding_output_dir/gl_bindings_autogen_glx.cc",
|
| + "$gl_binding_output_dir/gl_bindings_autogen_glx.h",
|
| + "$gl_binding_output_dir/gl_bindings_api_autogen_glx.h",
|
| + "$gl_binding_output_dir/gl_bindings_autogen_mock.cc",
|
| + "$gl_binding_output_dir/gl_bindings_autogen_mock.h",
|
| + "$gl_binding_output_dir/gl_bindings_autogen_osmesa.cc",
|
| + "$gl_binding_output_dir/gl_bindings_autogen_osmesa.h",
|
| + "$gl_binding_output_dir/gl_bindings_api_autogen_osmesa.h",
|
| + "$gl_binding_output_dir/gl_bindings_autogen_wgl.cc",
|
| + "$gl_binding_output_dir/gl_bindings_autogen_wgl.h",
|
| + "$gl_binding_output_dir/gl_bindings_api_autogen_wgl.h",
|
| + "$gl_binding_output_dir/gl_mock_autogen_gl.h",
|
| + ]
|
| +
|
| + args = [
|
| + "--header-paths=" +
|
| + rebase_path("//third_party/khronos", root_build_dir) + ":" +
|
| + rebase_path("//third_party/mesa/src/include", root_build_dir),
|
| + rebase_path(gl_binding_output_dir, root_build_dir),
|
| + ]
|
| +}
|
|
|