summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xbuild/symlink.py44
-rw-r--r--third_party/khronos/khronos.gyp56
2 files changed, 95 insertions, 5 deletions
diff --git a/build/symlink.py b/build/symlink.py
new file mode 100755
index 0000000..e525731
--- /dev/null
+++ b/build/symlink.py
@@ -0,0 +1,44 @@
+#!/usr/bin/env python
+# Copyright (c) 2013 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.
+
+"""Make a symlink and optionally touch a file (to handle dependencies)."""
+
+
+import errno
+import optparse
+import os.path
+import sys
+
+
+def Main(argv):
+ parser = optparse.OptionParser()
+ parser.add_option('-f', '--force', action='store_true')
+ parser.add_option('--touch')
+
+ options, args = parser.parse_args(argv)
+ if len(args) < 2:
+ parser.error('at least two arguments required.')
+
+ target = args[-1]
+ sources = args[:-1]
+ for s in sources:
+ t = os.path.join(target, os.path.basename(s))
+ try:
+ os.symlink(s, t)
+ except OSError, e:
+ if e.errno == errno.EEXIST and options.force:
+ os.remove(t)
+ os.symlink(s, t)
+ else:
+ raise
+
+
+ if options.touch:
+ with open(options.touch, 'w') as f:
+ pass
+
+
+if __name__ == '__main__':
+ sys.exit(Main(sys.argv))
diff --git a/third_party/khronos/khronos.gyp b/third_party/khronos/khronos.gyp
index 0abcfa3..bac7eb8 100644
--- a/third_party/khronos/khronos.gyp
+++ b/third_party/khronos/khronos.gyp
@@ -3,11 +3,8 @@
# found in the LICENSE file.
{
- 'variables': {
- 'use_system_khronos%': 0,
- },
'conditions': [
- ['use_system_khronos==0', {
+ ['use_system_mesa==0', {
'targets': [
{
'target_name': 'khronos_headers',
@@ -20,7 +17,7 @@
},
},
],
- }, { # use_system_khronos==1
+ }, { # use_system_mesa==1
'targets': [
{
'target_name': 'khronos_headers',
@@ -35,15 +32,64 @@
'--headers-root', '.',
'--use-include-next',
],
+ 'khronos_headers_symlink_source%': '/usr/include',
+ 'khronos_headers_symlink_target': '<(SHARED_INTERMEDIATE_DIR)/khronos_symlinks',
},
'includes': [
'../../build/shim_headers.gypi',
],
'all_dependent_settings': {
'include_dirs': [
+ '<(khronos_headers_symlink_target)',
'../../gpu', # Contains GLES2/gl2chromium.h
],
},
+ 'actions': [
+ # Symlink system headers into include paths so that nacl
+ # untrusted build can use them. Adding system include paths
+ # to nacl untrusted build include path would break the build,
+ # so we only add needed parts.
+ {
+ 'action_name': 'create_khronos_symlinks_gles2',
+ 'variables': {
+ 'dummy_file': '<(khronos_headers_symlink_target)/.dummy_gles2',
+ },
+ 'inputs': [
+ 'khronos.gyp',
+ ],
+ 'outputs': [
+ '<(dummy_file)',
+ ],
+ 'action': [
+ '../../build/symlink.py',
+ '--force',
+ '--touch', '<(dummy_file)',
+ '<(khronos_headers_symlink_source)/GLES2',
+ '<(khronos_headers_symlink_target)',
+ ],
+ 'message': 'Creating GLES2 headers symlinks.',
+ },
+ {
+ 'action_name': 'create_khronos_symlinks_khr',
+ 'variables': {
+ 'dummy_file': '<(khronos_headers_symlink_target)/.dummy_khr',
+ },
+ 'inputs': [
+ 'khronos.gyp',
+ ],
+ 'outputs': [
+ '<(dummy_file)',
+ ],
+ 'action': [
+ '../../build/symlink.py',
+ '--force',
+ '--touch', '<(dummy_file)',
+ '<(khronos_headers_symlink_source)/KHR',
+ '<(khronos_headers_symlink_target)',
+ ],
+ 'message': 'Creating KHR headers symlinks.',
+ },
+ ],
},
],
}],