media/webrtc/trunk/build/linux/rewrite_dirs.py

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rwxr-xr-x

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 #!/usr/bin/env python
     2 # Copyright (c) 2011 The Chromium Authors. All rights reserved.
     3 # Use of this source code is governed by a BSD-style license that can be
     4 # found in the LICENSE file.
     6 """Rewrites paths in -I, -L and other option to be relative to a sysroot."""
     8 import sys
     9 import os
    10 import optparse
    12 REWRITE_PREFIX = ['-I',
    13                   '-idirafter',
    14                   '-imacros',
    15                   '-imultilib',
    16                   '-include',
    17                   '-iprefix',
    18                   '-iquote',
    19                   '-isystem',
    20                   '-L']
    22 def RewritePath(path, opts):
    23   """Rewrites a path by stripping the prefix and prepending the sysroot."""
    24   sysroot = opts.sysroot
    25   prefix = opts.strip_prefix
    26   if os.path.isabs(path) and not path.startswith(sysroot):
    27     if path.startswith(prefix):
    28       path = path[len(prefix):]
    29     path = path.lstrip('/')
    30     return os.path.join(sysroot, path)
    31   else:
    32     return path
    35 def RewriteLine(line, opts):
    36   """Rewrites all the paths in recognized options."""
    37   args = line.split()
    38   count = len(args)
    39   i = 0
    40   while i < count:
    41     for prefix in REWRITE_PREFIX:
    42       # The option can be either in the form "-I /path/to/dir" or
    43       # "-I/path/to/dir" so handle both.
    44       if args[i] == prefix:
    45         i += 1
    46         try:
    47           args[i] = RewritePath(args[i], opts)
    48         except IndexError:
    49           sys.stderr.write('Missing argument following %s\n' % prefix)
    50           break
    51       elif args[i].startswith(prefix):
    52         args[i] = prefix + RewritePath(args[i][len(prefix):], opts)
    53     i += 1
    55   return ' '.join(args)
    58 def main(argv):
    59   parser = optparse.OptionParser()
    60   parser.add_option('-s', '--sysroot', default='/', help='sysroot to prepend')
    61   parser.add_option('-p', '--strip-prefix', default='', help='prefix to strip')
    62   opts, args = parser.parse_args(argv[1:])
    64   for line in sys.stdin.readlines():
    65     line = RewriteLine(line.strip(), opts)
    66     print line
    67   return 0
    70 if __name__ == '__main__':
    71   sys.exit(main(sys.argv))

mercurial