Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(535)

Side by Side Diff: build/linux/rewrite_dirs.py

Issue 2101243005: Add a snapshot of flutter/engine/src/build to our sdk (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: add README.dart Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « build/linux/pkg-config-wrapper ('k') | build/linux/sysroot_ld_path.sh » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
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.
5
6 """Rewrites paths in -I, -L and other option to be relative to a sysroot."""
7
8 import sys
9 import os
10 import optparse
11
12 REWRITE_PREFIX = ['-I',
13 '-idirafter',
14 '-imacros',
15 '-imultilib',
16 '-include',
17 '-iprefix',
18 '-iquote',
19 '-isystem',
20 '-L']
21
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
33
34
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
54
55 return ' '.join(args)
56
57
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:])
63
64 for line in sys.stdin.readlines():
65 line = RewriteLine(line.strip(), opts)
66 print line
67 return 0
68
69
70 if __name__ == '__main__':
71 sys.exit(main(sys.argv))
OLDNEW
« no previous file with comments | « build/linux/pkg-config-wrapper ('k') | build/linux/sysroot_ld_path.sh » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698