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

Side by Side Diff: third_party/instrumented_libraries/download_build_install.py

Issue 361473002: Instrumented libraries: improve handling of custom patches. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: use -i to pass filename to patch 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
« no previous file with comments | « no previous file | third_party/instrumented_libraries/freetype.sh » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 268 matching lines...) Expand 10 before | Expand all | Expand 10 after
279 with ScopedChangeDirectory(package_directory) as cd_package: 279 with ScopedChangeDirectory(package_directory) as cd_package:
280 shell_call('apt-get source %s' % parsed_arguments.package, 280 shell_call('apt-get source %s' % parsed_arguments.package,
281 parsed_arguments.verbose) 281 parsed_arguments.verbose)
282 # There should be exactly one subdirectory after downloading a package. 282 # There should be exactly one subdirectory after downloading a package.
283 subdirectories = [d for d in os.listdir('.') if os.path.isdir(d)] 283 subdirectories = [d for d in os.listdir('.') if os.path.isdir(d)]
284 if len(subdirectories) != 1: 284 if len(subdirectories) != 1:
285 raise (Exception('There was not one directory after downloading ' 285 raise (Exception('There was not one directory after downloading '
286 'a package %s' % parsed_arguments.package)) 286 'a package %s' % parsed_arguments.package))
287 with ScopedChangeDirectory(subdirectories[0]): 287 with ScopedChangeDirectory(subdirectories[0]):
288 # Here we are in the package directory. 288 # Here we are in the package directory.
289 if parsed_arguments.patch:
290 shell_call(
291 'patch -p1 -i %s/%s' %
292 (os.path.relpath(cd_package.old_path),
293 parsed_arguments.patch),
294 parsed_arguments.verbose)
289 if parsed_arguments.run_before_build: 295 if parsed_arguments.run_before_build:
290 shell_call( 296 shell_call(
291 '%s/%s' % 297 '%s/%s' %
292 (os.path.relpath(cd_package.old_path), 298 (os.path.relpath(cd_package.old_path),
293 parsed_arguments.run_before_build), 299 parsed_arguments.run_before_build),
294 parsed_arguments.verbose) 300 parsed_arguments.verbose)
295 try: 301 try:
296 build_and_install(parsed_arguments, environment, install_prefix) 302 build_and_install(parsed_arguments, environment, install_prefix)
297 except Exception as exception: 303 except Exception as exception:
298 print exception 304 print exception
(...skipping 24 matching lines...) Expand all
323 help='Relative path to the directory for temporary build files') 329 help='Relative path to the directory for temporary build files')
324 argument_parser.add_argument('--extra-configure-flags', default='') 330 argument_parser.add_argument('--extra-configure-flags', default='')
325 argument_parser.add_argument('--cflags', default='') 331 argument_parser.add_argument('--cflags', default='')
326 argument_parser.add_argument('--ldflags', default='') 332 argument_parser.add_argument('--ldflags', default='')
327 argument_parser.add_argument('-s', '--sanitizer-type', required=True, 333 argument_parser.add_argument('-s', '--sanitizer-type', required=True,
328 choices=['asan', 'msan', 'tsan']) 334 choices=['asan', 'msan', 'tsan'])
329 argument_parser.add_argument('-v', '--verbose', action='store_true') 335 argument_parser.add_argument('-v', '--verbose', action='store_true')
330 argument_parser.add_argument('--check-build-deps', action='store_true') 336 argument_parser.add_argument('--check-build-deps', action='store_true')
331 argument_parser.add_argument('--cc') 337 argument_parser.add_argument('--cc')
332 argument_parser.add_argument('--cxx') 338 argument_parser.add_argument('--cxx')
333 # This should be a shell script to run before building specific libraries 339 argument_parser.add_argument('--patch', default='')
334 # e.g. extracting archives with sources, patching makefiles, etc. 340 # This should be a shell script to run before building specific libraries.
341 # This will be run after applying the patch above.
335 argument_parser.add_argument('--run-before-build', default='') 342 argument_parser.add_argument('--run-before-build', default='')
336 argument_parser.add_argument('--build-method', default='destdir') 343 argument_parser.add_argument('--build-method', default='destdir')
337 argument_parser.add_argument('--sanitizer-blacklist', default='') 344 argument_parser.add_argument('--sanitizer-blacklist', default='')
338 345
339 # Ignore all empty arguments because in several cases gyp passes them to the 346 # Ignore all empty arguments because in several cases gyp passes them to the
340 # script, but ArgumentParser treats them as positional arguments instead of 347 # script, but ArgumentParser treats them as positional arguments instead of
341 # ignoring (and doesn't have such options). 348 # ignoring (and doesn't have such options).
342 parsed_arguments = argument_parser.parse_args( 349 parsed_arguments = argument_parser.parse_args(
343 [arg for arg in sys.argv[1:] if len(arg) != 0]) 350 [arg for arg in sys.argv[1:] if len(arg) != 0])
344 # Ensure current working directory is this script directory. 351 # Ensure current working directory is this script directory.
345 os.chdir(get_script_absolute_path()) 352 os.chdir(get_script_absolute_path())
346 # Ensure all build dependencies are installed. 353 # Ensure all build dependencies are installed.
347 if parsed_arguments.check_build_deps: 354 if parsed_arguments.check_build_deps:
348 check_package_build_dependencies(parsed_arguments.package) 355 check_package_build_dependencies(parsed_arguments.package)
349 356
350 download_build_install(parsed_arguments) 357 download_build_install(parsed_arguments)
351 358
352 359
353 if __name__ == '__main__': 360 if __name__ == '__main__':
354 main() 361 main()
OLDNEW
« no previous file with comments | « no previous file | third_party/instrumented_libraries/freetype.sh » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698