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

Side by Side Diff: webrtc/build/merge_libs.py

Issue 2648413003: Removing unused script (Closed)
Patch Set: Created 3 years, 11 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 | « no previous file | no next file » | 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
3 # Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
4 #
5 # Use of this source code is governed by a BSD-style license
6 # that can be found in the LICENSE file in the root of the source
7 # tree. An additional intellectual property rights grant can be found
8 # in the file PATENTS. All contributing project authors may
9 # be found in the AUTHORS file in the root of the source tree.
10
11 # Searches for libraries or object files on the specified path and merges them
12 # them into a single library. Assumes ninja is used on all platforms.
13
14 import fnmatch
15 import os
16 import subprocess
17 import sys
18
19 IGNORE_PATTERNS = ['do_not_use', 'protoc', 'genperf']
20
21 def FindFiles(path, pattern):
22 """Finds files matching |pattern| under |path|.
23
24 Returns a list of file paths matching |pattern|, by walking the directory tree
25 under |path|. Filenames containing the string 'do_not_use' or 'protoc' are
26 excluded.
27
28 Args:
29 path: The root path for the search.
30 pattern: A shell-style wildcard pattern to match filenames against.
31 (e.g. '*.a')
32
33 Returns:
34 A list of file paths, relative to the current working directory.
35 """
36 files = []
37 for root, _, filenames in os.walk(path):
38 for filename in fnmatch.filter(filenames, pattern):
39 if all(pattern not in filename for pattern in IGNORE_PATTERNS):
40 # We use the relative path here to avoid "argument list too
41 # long" errors on Linux. Note: This doesn't always work, so
42 # we use the find command on Linux.
43 files.append(os.path.relpath(os.path.join(root, filename)))
44 return files
45
46
47 def main(argv):
48 if len(argv) != 3:
49 sys.stderr.write('Usage: ' + argv[0] + ' <search_path> <output_lib>\n')
50 return 1
51
52 search_path = os.path.normpath(argv[1])
53 output_lib = os.path.normpath(argv[2])
54
55 if not os.path.exists(search_path):
56 sys.stderr.write('search_path does not exist: %s\n' % search_path)
57 return 1
58
59 if os.path.isfile(output_lib):
60 os.remove(output_lib)
61
62 if sys.platform.startswith('linux'):
63 pattern = '*.o'
64 cmd = 'ar crs'
65 elif sys.platform == 'darwin':
66 pattern = '*.a'
67 cmd = 'libtool -static -v -o '
68 elif sys.platform == 'win32':
69 pattern = '*.lib'
70 cmd = 'lib /OUT:'
71 else:
72 sys.stderr.write('Platform not supported: %r\n\n' % sys.platform)
73 return 1
74
75 if sys.platform.startswith('linux'):
76 cmd = ' '.join(['find', search_path, '-name "' + pattern + '"' +
77 ' -and -not -name ' +
78 ' -and -not -name '.join(IGNORE_PATTERNS) +
79 ' -exec', cmd, output_lib, '{} +'])
80 else:
81 cmd = ' '.join([cmd + output_lib] + FindFiles(search_path, pattern))
82 print cmd
83 subprocess.check_call(cmd, shell=True)
84 return 0
85
86 if __name__ == '__main__':
87 sys.exit(main(sys.argv))
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698