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

Side by Side Diff: third_party/boringssl/update_gypi_and_asm.py

Issue 401153002: Switch to BoringSSL. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase across DEPS change Created 6 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 | Annotate | Revision Log
OLDNEW
1 # Copyright 2014 The Chromium Authors. All rights reserved. 1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can b 2 # Use of this source code is governed by a BSD-style license that can b
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 """Enumerates the BoringSSL source in src/ and generates two gypi files: 5 """Enumerates the BoringSSL source in src/ and generates two gypi files:
6 boringssl.gypi and boringssl_tests.gypi.""" 6 boringssl.gypi and boringssl_tests.gypi."""
7 7
8 import os 8 import os
9 import subprocess 9 import subprocess
10 import sys 10 import sys
11 11
12 12
13 # OS_ARCH_COMBOS maps from OS and platform to the OpenSSL assembly "style" for 13 # OS_ARCH_COMBOS maps from OS and platform to the OpenSSL assembly "style" for
14 # that platform and the extension used by asm files. 14 # that platform and the extension used by asm files.
15 OS_ARCH_COMBOS = [ 15 OS_ARCH_COMBOS = [
16 ('linux', 'arm', 'elf', 'S'), 16 ('linux', 'arm', 'elf', [''], 'S'),
17 ('linux', 'x86', 'elf', 'S'), 17 ('linux', 'x86', 'elf', ['-fPIC'], 'S'),
18 ('linux', 'x86_64', 'elf', 'S'), 18 ('linux', 'x86_64', 'elf', [''], 'S'),
19 ('mac', 'x86', 'macosx', 'S'), 19 ('mac', 'x86', 'macosx', ['-fPIC'], 'S'),
20 ('mac', 'x86_64', 'macosx', 'S'), 20 ('mac', 'x86_64', 'macosx', [''], 'S'),
21 ('win', 'x86_64', 'masm', 'asm'), 21 ('win', 'x86_64', 'masm', [''], 'asm'),
22 ] 22 ]
23 23
24 # NON_PERL_FILES enumerates assembly files that are not processed by the 24 # NON_PERL_FILES enumerates assembly files that are not processed by the
25 # perlasm system. 25 # perlasm system.
26 NON_PERL_FILES = { 26 NON_PERL_FILES = {
27 ('linux', 'arm'): [ 27 ('linux', 'arm'): [
28 'src/crypto/poly1305/poly1305_arm_asm.S', 28 'src/crypto/poly1305/poly1305_arm_asm.S',
29 'src/crypto/chacha/chacha_vec_arm.S', 29 'src/crypto/chacha/chacha_vec_arm.S',
30 ], 30 ],
31 } 31 }
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
145 else: 145 else:
146 raise ValueError('Unknown arch for asm filename: ' + filename) 146 raise ValueError('Unknown arch for asm filename: ' + filename)
147 147
148 148
149 def WriteAsmFiles(perlasms): 149 def WriteAsmFiles(perlasms):
150 """Generates asm files from perlasm directives for each supported OS x 150 """Generates asm files from perlasm directives for each supported OS x
151 platform combination.""" 151 platform combination."""
152 asmfiles = {} 152 asmfiles = {}
153 153
154 for osarch in OS_ARCH_COMBOS: 154 for osarch in OS_ARCH_COMBOS:
155 (osname, arch, perlasm_style, asm_ext) = osarch 155 (osname, arch, perlasm_style, extra_args, asm_ext) = osarch
156 key = (osname, arch) 156 key = (osname, arch)
157 outDir = '%s-%s' % key 157 outDir = '%s-%s' % key
158 158
159 for perlasm in perlasms: 159 for perlasm in perlasms:
160 filename = os.path.basename(perlasm['input']) 160 filename = os.path.basename(perlasm['input'])
161 output = perlasm['output'] 161 output = perlasm['output']
162 if not output.startswith('src'): 162 if not output.startswith('src'):
163 raise ValueError('output missing src: %s' % output) 163 raise ValueError('output missing src: %s' % output)
164 output = os.path.join(outDir, output[4:]) 164 output = os.path.join(outDir, output[4:])
165 output = output.replace('${ASM_EXT}', asm_ext) 165 output = output.replace('${ASM_EXT}', asm_ext)
166 166
167 if arch == ArchForAsmFilename(filename): 167 if arch == ArchForAsmFilename(filename):
168 PerlAsm(output, perlasm['input'], perlasm_style, perlasm['extra_args']) 168 PerlAsm(output, perlasm['input'], perlasm_style,
169 perlasm['extra_args'] + extra_args)
169 asmfiles.setdefault(key, []).append(output) 170 asmfiles.setdefault(key, []).append(output)
170 171
171 for (key, non_perl_asm_files) in NON_PERL_FILES.iteritems(): 172 for (key, non_perl_asm_files) in NON_PERL_FILES.iteritems():
172 asmfiles.setdefault(key, []).extend(non_perl_asm_files) 173 asmfiles.setdefault(key, []).extend(non_perl_asm_files)
173 174
174 return asmfiles 175 return asmfiles
175 176
176 177
177 def PrintVariableSection(out, name, files): 178 def PrintVariableSection(out, name, files):
178 out.write(' \'%s\': [\n' % name) 179 out.write(' \'%s\': [\n' % name)
(...skipping 20 matching lines...) Expand all
199 (osname, arch), asm_files) 200 (osname, arch), asm_files)
200 201
201 gypi.write(' }\n}\n') 202 gypi.write(' }\n}\n')
202 203
203 test_c_files = FindCFiles(os.path.join('src', 'crypto'), OnlyTests) 204 test_c_files = FindCFiles(os.path.join('src', 'crypto'), OnlyTests)
204 205
205 with open('boringssl_tests.gypi', 'w+') as test_gypi: 206 with open('boringssl_tests.gypi', 'w+') as test_gypi:
206 test_gypi.write(FILE_HEADER + '{\n \'targets\': [\n') 207 test_gypi.write(FILE_HEADER + '{\n \'targets\': [\n')
207 208
208 test_names = [] 209 test_names = []
209 for test in test_c_files: 210 for test in sorted(test_c_files):
210 test_name = 'boringssl_%s' % os.path.splitext(os.path.basename(test))[0] 211 test_name = 'boringssl_%s' % os.path.splitext(os.path.basename(test))[0]
211 test_gypi.write(""" { 212 test_gypi.write(""" {
212 'target_name': '%s', 213 'target_name': '%s',
213 'type': 'executable', 214 'type': 'executable',
214 'dependencies': [ 215 'dependencies': [
215 'boringssl', 216 'boringssl',
216 ], 217 ],
217 'sources': [ 218 'sources': [
218 '%s', 219 '%s',
219 ], 220 ],
220 },\n""" % (test_name, test)) 221 },\n""" % (test_name, test))
221 test_names.append(test_name) 222 test_names.append(test_name)
222 223
223 test_names.sort() 224 test_names.sort()
224 225
225 test_gypi.write(""" ], 226 test_gypi.write(""" ],
226 'variables': { 227 'variables': {
227 'boringssl_test_targets': [\n""") 228 'boringssl_test_targets': [\n""")
228 229
229 for test in test_names: 230 for test in test_names:
230 test_gypi.write(""" '%s',\n""" % test) 231 test_gypi.write(""" '%s',\n""" % test)
231 232
232 test_gypi.write(' ],\n }\n}\n') 233 test_gypi.write(' ],\n }\n}\n')
233 234
234 return 0 235 return 0
235 236
236 237
237 if __name__ == '__main__': 238 if __name__ == '__main__':
238 sys.exit(main()) 239 sys.exit(main())
OLDNEW
« no previous file with comments | « third_party/boringssl/mac-x86/crypto/sha/sha512-586.S ('k') | third_party/libjingle/libjingle.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698