OLD | NEW |
1 #!/usr/bin/python | 1 #!/usr/bin/python |
2 | 2 |
3 # Copyright 2016 The WebRTC project authors. All Rights Reserved. | 3 # Copyright 2016 The WebRTC project authors. All Rights Reserved. |
4 # | 4 # |
5 # Use of this source code is governed by a BSD-style license | 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 | 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 | 7 # tree. An additional intellectual property rights grant can be found |
8 # in the file PATENTS. All contributing project authors may | 8 # in the file PATENTS. All contributing project authors may |
9 # be found in the AUTHORS file in the root of the source tree. | 9 # be found in the AUTHORS file in the root of the source tree. |
10 | 10 |
(...skipping 19 matching lines...) Expand all Loading... |
30 'usrsctp': ['third_party/usrsctp/LICENSE'], | 30 'usrsctp': ['third_party/usrsctp/LICENSE'], |
31 'webrtc': ['webrtc/LICENSE', 'webrtc/LICENSE_THIRD_PARTY'], | 31 'webrtc': ['webrtc/LICENSE', 'webrtc/LICENSE_THIRD_PARTY'], |
32 'libvpx': ['third_party/libvpx/source/libvpx/LICENSE'], | 32 'libvpx': ['third_party/libvpx/source/libvpx/LICENSE'], |
33 'libyuv': ['third_party/libyuv/LICENSE'], | 33 'libyuv': ['third_party/libyuv/LICENSE'], |
34 } | 34 } |
35 | 35 |
36 SCRIPT_DIR = os.path.dirname(os.path.realpath(sys.argv[0])) | 36 SCRIPT_DIR = os.path.dirname(os.path.realpath(sys.argv[0])) |
37 CHECKOUT_ROOT = os.path.abspath(os.path.join(SCRIPT_DIR, os.pardir, os.pardir)) | 37 CHECKOUT_ROOT = os.path.abspath(os.path.join(SCRIPT_DIR, os.pardir, os.pardir)) |
38 WEBRTC_ROOT = os.path.join(CHECKOUT_ROOT, 'webrtc') | 38 WEBRTC_ROOT = os.path.join(CHECKOUT_ROOT, 'webrtc') |
39 | 39 |
| 40 |
40 def GetThirdPartyLibraries(buildfile_dir, target_name): | 41 def GetThirdPartyLibraries(buildfile_dir, target_name): |
41 def extractLibName(s): | 42 def ExtractLibName(string_list): |
42 # Sample input: | 43 # Sample input: |
43 # [" //third_party/usrsctp:usrsctp", " //webrtc:webrtc_common"] | 44 # [" //third_party/usrsctp:usrsctp", " //webrtc:webrtc_common"] |
44 # Sample output: | 45 # Sample output: |
45 # ["usrsctp"] | 46 # ["usrsctp"] |
46 return re.sub(r'\(.*\)', '', s).strip().split(os.path.sep)[-1].split(':')[0] | 47 return re.sub(r'\(.*\)', '', string_list).strip().split( |
| 48 os.path.sep)[-1].split(':')[0] |
47 output = subprocess.check_output( | 49 output = subprocess.check_output( |
48 ["gn", "desc", buildfile_dir, target_name, '--all']) .split(os.linesep) | 50 ["gn", "desc", buildfile_dir, target_name, '--all']) .split(os.linesep) |
49 return [extractLibName(x) for x in output if re.search(r'third_party', x)] | 51 return [ExtractLibName(x) for x in output if re.search(r'third_party', x)] |
50 | 52 |
51 | 53 |
52 class LicenseBuilder(object): | 54 class LicenseBuilder(object): |
53 | 55 |
54 def __init__(self, buildfile_dirs, target_name): | 56 def __init__(self, buildfile_dirs, target_name): |
55 self.buildfile_dirs = buildfile_dirs | 57 self.buildfile_dirs = buildfile_dirs |
56 self.target_name = target_name | 58 self.target_name = target_name |
57 | 59 |
58 def GenerateLicenseText(self, output_dir): | 60 def GenerateLicenseText(self, output_dir): |
59 # Get a list of third_party libs from gn. For fat libraries we must consider | 61 # Get a list of third_party libs from gn. For fat libraries we must consider |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
105 output_license_file.write(license_text) | 107 output_license_file.write(license_text) |
106 output_license_file.write('\n') | 108 output_license_file.write('\n') |
107 output_license_file.write('</pre>\n') | 109 output_license_file.write('</pre>\n') |
108 | 110 |
109 output_license_file.write('</body>\n') | 111 output_license_file.write('</body>\n') |
110 output_license_file.write('</html>') | 112 output_license_file.write('</html>') |
111 output_license_file.close() | 113 output_license_file.close() |
112 return 0 | 114 return 0 |
113 | 115 |
114 | 116 |
115 if __name__ == '__main__': | 117 def main(): |
116 parser = argparse.ArgumentParser(description='Generate WebRTC LICENSE.html') | 118 parser = argparse.ArgumentParser(description='Generate WebRTC LICENSE.html') |
117 parser.add_argument('target_name', | 119 parser.add_argument('target_name', |
118 help='Name of the GN target to generate a license for') | 120 help='Name of the GN target to generate a license for') |
119 parser.add_argument('output_dir', | 121 parser.add_argument('output_dir', |
120 help='Directory to output LICENSE.html to.') | 122 help='Directory to output LICENSE.html to.') |
121 parser.add_argument('buildfile_dirs', nargs="+", | 123 parser.add_argument('buildfile_dirs', nargs="+", |
122 help='Directories containing gn generated ninja files') | 124 help='Directories containing gn generated ninja files') |
123 args = parser.parse_args() | 125 args = parser.parse_args() |
124 builder = LicenseBuilder(args.buildfile_dirs, args.target_name) | 126 builder = LicenseBuilder(args.buildfile_dirs, args.target_name) |
125 sys.exit(builder.GenerateLicenseText(args.output_dir)) | 127 sys.exit(builder.GenerateLicenseText(args.output_dir)) |
| 128 |
| 129 |
| 130 if __name__ == '__main__': |
| 131 main() |
OLD | NEW |