| OLD | NEW |
| 1 #!/usr/bin/python | 1 #!/usr/bin/python |
| 2 # Copyright 2013 The Chromium Authors. All rights reserved. | 2 # Copyright 2013 The Chromium Authors. All rights reserved. |
| 3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
| 4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
| 5 | 5 |
| 6 """Downloads, builds (with instrumentation) and installs shared libraries.""" | 6 """Downloads, builds (with instrumentation) and installs shared libraries.""" |
| 7 | 7 |
| 8 import argparse | 8 import argparse |
| 9 import os | 9 import os |
| 10 import platform | 10 import platform |
| (...skipping 278 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 289 # library dependencies. | 289 # library dependencies. |
| 290 environment['LDFLAGS'] = '%s -L%s/lib %s' % ( | 290 environment['LDFLAGS'] = '%s -L%s/lib %s' % ( |
| 291 sanitizer_params['linker_flags'], | 291 sanitizer_params['linker_flags'], |
| 292 install_prefix, parsed_arguments.extra_ldflags) | 292 install_prefix, parsed_arguments.extra_ldflags) |
| 293 | 293 |
| 294 library_directory = '%s/%s' % (parsed_arguments.intermediate_directory, | 294 library_directory = '%s/%s' % (parsed_arguments.intermediate_directory, |
| 295 parsed_arguments.library) | 295 parsed_arguments.library) |
| 296 | 296 |
| 297 # A failed build might have left a dirty source tree behind. | 297 # A failed build might have left a dirty source tree behind. |
| 298 if os.path.exists(library_directory): | 298 if os.path.exists(library_directory): |
| 299 shutil.rmtree(library_directory) | 299 shell_call('rm -rf %s' % library_directory, parsed_arguments.verbose) |
| 300 os.makedirs(library_directory) | 300 os.makedirs(library_directory) |
| 301 | 301 |
| 302 with ScopedChangeDirectory(library_directory) as cd_library: | 302 with ScopedChangeDirectory(library_directory) as cd_library: |
| 303 shell_call('apt-get source %s' % parsed_arguments.library, | 303 shell_call('apt-get source %s' % parsed_arguments.library, |
| 304 parsed_arguments.verbose) | 304 parsed_arguments.verbose) |
| 305 # There should be exactly one subdirectory after downloading a package. | 305 # There should be exactly one subdirectory after downloading a package. |
| 306 subdirectories = [d for d in os.listdir('.') if os.path.isdir(d)] | 306 subdirectories = [d for d in os.listdir('.') if os.path.isdir(d)] |
| 307 if len(subdirectories) != 1: | 307 if len(subdirectories) != 1: |
| 308 raise (Exception('There was not one directory after downloading ' | 308 raise (Exception('There was not one directory after downloading ' |
| 309 'a package %s' % parsed_arguments.library)) | 309 'a package %s' % parsed_arguments.library)) |
| (...skipping 13 matching lines...) Expand all Loading... |
| 323 print ('Probably, some of its dependencies are not installed: %s' % | 323 print ('Probably, some of its dependencies are not installed: %s' % |
| 324 ' '.join(get_library_build_dependencies(parsed_arguments.library)
)) | 324 ' '.join(get_library_build_dependencies(parsed_arguments.library)
)) |
| 325 sys.exit(1) | 325 sys.exit(1) |
| 326 | 326 |
| 327 # Touch a txt file to indicate library is installed. | 327 # Touch a txt file to indicate library is installed. |
| 328 open('%s/%s.txt' % (install_prefix, parsed_arguments.library), 'w').close() | 328 open('%s/%s.txt' % (install_prefix, parsed_arguments.library), 'w').close() |
| 329 | 329 |
| 330 # Remove downloaded package and generated temporary build files. | 330 # Remove downloaded package and generated temporary build files. |
| 331 # Failed builds intentionally skip this step, in order to aid in tracking down | 331 # Failed builds intentionally skip this step, in order to aid in tracking down |
| 332 # build failures. | 332 # build failures. |
| 333 shutil.rmtree(library_directory) | 333 shell_call('rm -rf %s' % library_directory, parsed_arguments.verbose) |
| 334 | 334 |
| 335 | 335 |
| 336 def main(): | 336 def main(): |
| 337 argument_parser = argparse.ArgumentParser( | 337 argument_parser = argparse.ArgumentParser( |
| 338 description='Download, build and install instrumented library') | 338 description='Download, build and install instrumented library') |
| 339 | 339 |
| 340 argument_parser.add_argument('-j', '--jobs', type=int, default=1) | 340 argument_parser.add_argument('-j', '--jobs', type=int, default=1) |
| 341 argument_parser.add_argument('-l', '--library', required=True) | 341 argument_parser.add_argument('-l', '--library', required=True) |
| 342 argument_parser.add_argument( | 342 argument_parser.add_argument( |
| 343 '-i', '--product-directory', default='.', | 343 '-i', '--product-directory', default='.', |
| (...skipping 26 matching lines...) Expand all Loading... |
| 370 os.chdir(get_script_absolute_path()) | 370 os.chdir(get_script_absolute_path()) |
| 371 # Ensure all build dependencies are installed. | 371 # Ensure all build dependencies are installed. |
| 372 if parsed_arguments.check_build_deps: | 372 if parsed_arguments.check_build_deps: |
| 373 check_library_build_dependencies(parsed_arguments.library) | 373 check_library_build_dependencies(parsed_arguments.library) |
| 374 | 374 |
| 375 download_build_install(parsed_arguments) | 375 download_build_install(parsed_arguments) |
| 376 | 376 |
| 377 | 377 |
| 378 if __name__ == '__main__': | 378 if __name__ == '__main__': |
| 379 main() | 379 main() |
| OLD | NEW |