| Index: build/linux/rewrite_dirs.py
|
| diff --git a/build/linux/rewrite_dirs.py b/build/linux/rewrite_dirs.py
|
| index 5c41cf9474cbce9f962b1f428d0a05cb90fe2b75..9e166d0efd1b3d889ae689b3a2f7777c05e88613 100755
|
| --- a/build/linux/rewrite_dirs.py
|
| +++ b/build/linux/rewrite_dirs.py
|
| @@ -7,6 +7,7 @@
|
|
|
| import sys
|
| import os
|
| +import optparse
|
|
|
| REWRITE_PREFIX = ['-I',
|
| '-idirafter',
|
| @@ -18,15 +19,19 @@ REWRITE_PREFIX = ['-I',
|
| '-isystem',
|
| '-L']
|
|
|
| -def RewritePath(path, sysroot):
|
| - """Rewrites a path by prefixing it with the sysroot if it is absolute."""
|
| +def RewritePath(path, opts):
|
| + """Rewrites a path by stripping the prefix and prepending the sysroot."""
|
| + sysroot = opts.sysroot
|
| + prefix = opts.strip_prefix
|
| if os.path.isabs(path) and not path.startswith(sysroot):
|
| + if path.startswith(prefix):
|
| + path = path[len(prefix):]
|
| path = path.lstrip('/')
|
| return os.path.join(sysroot, path)
|
| else:
|
| return path
|
|
|
| -def RewriteLine(line, sysroot):
|
| +def RewriteLine(line, opts):
|
| """Rewrites all the paths in recognized options."""
|
| args = line.split()
|
| count = len(args)
|
| @@ -38,25 +43,24 @@ def RewriteLine(line, sysroot):
|
| if args[i] == prefix:
|
| i += 1
|
| try:
|
| - args[i] = RewritePath(args[i], sysroot)
|
| + args[i] = RewritePath(args[i], opts)
|
| except IndexError:
|
| sys.stderr.write('Missing argument following %s\n' % prefix)
|
| break
|
| elif args[i].startswith(prefix):
|
| - args[i] = prefix + RewritePath(args[i][len(prefix):], sysroot)
|
| + args[i] = prefix + RewritePath(args[i][len(prefix):], opts)
|
| i += 1
|
|
|
| return ' '.join(args)
|
|
|
| def main(argv):
|
| - try:
|
| - sysroot = argv[1]
|
| - except IndexError:
|
| - sys.stderr.write('usage: %s /path/to/sysroot\n' % argv[0])
|
| - return 1
|
| + parser = optparse.OptionParser()
|
| + parser.add_option('-s', '--sysroot', default='/', help='sysroot to prepend')
|
| + parser.add_option('-p', '--strip-prefix', default='', help='prefix to strip')
|
| + opts, args = parser.parse_args(argv[1:])
|
|
|
| for line in sys.stdin.readlines():
|
| - line = RewriteLine(line.strip(), sysroot)
|
| + line = RewriteLine(line.strip(), opts)
|
| print line
|
| return 0
|
|
|
|
|