From 290ea863c512c5d418d9cd5aacf76b3a838af37e Mon Sep 17 00:00:00 2001 From: Jocelyn Turcotte Date: Wed, 30 Oct 2013 14:27:28 +0100 Subject: Fix the build with a GL ES2 configured Qt. GLES/gl2.h is included through Qt public headers and the copy of Chromium is used since its include path comes before /usr/include. The problem is that this header is incompatible for some reasons, one of them being that it converts all GL function symbols from gl* to GLES2*. Qt layer code should always need to go through GL directly, so make sure that only GYP targets that depend directly on gpu.gyp, khronos.gyp or webkit_gpu.gyp will have an include path pointing to those headers. Replace all_dependent_settings with direct_dependent_settings and control which target inherits this include_dirs from its dependencies by using export_dependent_settings. Change-Id: I82ae8a5a62f7d968375b971757b2126670a02461 Reviewed-by: Zeno Albisser --- chromium/content/content_browser.gypi | 1 + chromium/gpu/command_buffer_client.gypi | 3 +++ chromium/gpu/command_buffer_common.gypi | 3 +++ chromium/gpu/gpu.gyp | 18 ++++++++++++++++++ chromium/third_party/khronos/khronos.gyp | 2 +- chromium/webkit/common/gpu/webkit_gpu.gyp | 3 +++ 6 files changed, 29 insertions(+), 1 deletion(-) diff --git a/chromium/content/content_browser.gypi b/chromium/content/content_browser.gypi index b0f963c4bb0..28878f77e47 100644 --- a/chromium/content/content_browser.gypi +++ b/chromium/content/content_browser.gypi @@ -1323,6 +1323,7 @@ 'dependencies': [ 'browser/devtools/devtools_resources.gyp:devtools_resources', '../cc/cc.gyp:cc', + '../gpu/gpu.gyp:gpu_ipc', '../net/net.gyp:http_server', '../third_party/leveldatabase/leveldatabase.gyp:leveldatabase', '../ui/surface/surface.gyp:surface', diff --git a/chromium/gpu/command_buffer_client.gypi b/chromium/gpu/command_buffer_client.gypi index cb52ee75fb3..827474cfda0 100644 --- a/chromium/gpu/command_buffer_client.gypi +++ b/chromium/gpu/command_buffer_client.gypi @@ -14,6 +14,9 @@ 'dependencies': [ '../third_party/khronos/khronos.gyp:khronos_headers', ], + 'export_dependent_settings': [ + '../third_party/khronos/khronos.gyp:khronos_headers', + ], 'sources': [ 'command_buffer/client/cmd_buffer_helper.cc', 'command_buffer/client/cmd_buffer_helper.h', diff --git a/chromium/gpu/command_buffer_common.gypi b/chromium/gpu/command_buffer_common.gypi index 87eeb5bf9d8..ab9a635a368 100644 --- a/chromium/gpu/command_buffer_common.gypi +++ b/chromium/gpu/command_buffer_common.gypi @@ -6,6 +6,9 @@ 'dependencies': [ '../third_party/khronos/khronos.gyp:khronos_headers', ], + 'export_dependent_settings': [ + '../third_party/khronos/khronos.gyp:khronos_headers', + ], 'sources': [ 'command_buffer/common/bitfield_helpers.h', 'command_buffer/common/buffer.h', diff --git a/chromium/gpu/gpu.gyp b/chromium/gpu/gpu.gyp index 46831eef47a..c3c9502c724 100644 --- a/chromium/gpu/gpu.gyp +++ b/chromium/gpu/gpu.gyp @@ -23,6 +23,9 @@ 'command_buffer/command_buffer.gyp:gles2_utils', 'gles2_cmd_helper', ], + 'export_dependent_settings': [ + '../third_party/khronos/khronos.gyp:khronos_headers', + ], 'defines': [ 'GLES2_IMPL_IMPLEMENTATION', ], @@ -90,6 +93,9 @@ 'command_buffer_client', 'gles2_implementation', ], + 'export_dependent_settings': [ + 'command_buffer_client', + ], 'defines': [ 'GLES2_C_LIB_IMPLEMENTATION', ], @@ -115,6 +121,9 @@ 'command_buffer_client', 'gles2_implementation_client_side_arrays_no_check', ], + 'export_dependent_settings': [ + 'command_buffer_client', + ], 'sources': [ '<@(gles2_c_lib_source_files)', ], @@ -378,6 +387,9 @@ 'gpu_config', 'gpu_ipc', ], + 'export_dependent_settings': [ + 'command_buffer_common', + ], 'sources': [ 'gpu_export.h', ], @@ -420,6 +432,9 @@ 'dependencies': [ 'command_buffer_common', ], + 'export_dependent_settings': [ + 'command_buffer_common', + ], # TODO(jschuh): crbug.com/167187 fix size_t to int truncations. 'msvs_disabled_warnings': [4267, ], }, @@ -445,6 +460,9 @@ 'dependencies': [ 'command_buffer_common', ], + 'export_dependent_settings': [ + 'command_buffer_common', + ], }, { 'target_name': 'gpu_config', diff --git a/chromium/third_party/khronos/khronos.gyp b/chromium/third_party/khronos/khronos.gyp index 8a855728d52..88130d26b9d 100644 --- a/chromium/third_party/khronos/khronos.gyp +++ b/chromium/third_party/khronos/khronos.gyp @@ -7,7 +7,7 @@ { 'target_name': 'khronos_headers', 'type': 'none', - 'all_dependent_settings': { + 'direct_dependent_settings': { 'include_dirs': [ '.', '../../gpu', # Contains GLES2/gl2chromium.h diff --git a/chromium/webkit/common/gpu/webkit_gpu.gyp b/chromium/webkit/common/gpu/webkit_gpu.gyp index a28e4e851a4..1a0190ccdaa 100644 --- a/chromium/webkit/common/gpu/webkit_gpu.gyp +++ b/chromium/webkit/common/gpu/webkit_gpu.gyp @@ -28,6 +28,9 @@ '<(DEPTH)/ui/gl/gl.gyp:gl', '<(DEPTH)/ui/gfx/gfx.gyp:gfx', ], + 'export_dependent_settings': [ + '<(DEPTH)/gpu/gpu.gyp:gles2_implementation', + ], 'sources': [ # This list contains all .h and .cc in gpu except for test code. 'context_provider_in_process.cc', -- cgit v1.2.1