diff options
-rwxr-xr-x | build/symlink.py | 44 | ||||
-rw-r--r-- | third_party/khronos/khronos.gyp | 56 |
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.', + }, + ], }, ], }], |