| Index: third_party/instrumented_libraries/download_build_install.py
|
| diff --git a/third_party/instrumented_libraries/download_build_install.py b/third_party/instrumented_libraries/download_build_install.py
|
| index 170bd04c85a94a40cb86fb0ea9ad1832b88f4907..3c95cc560f8a33c088fa2d2c6dcfd53b4628ba87 100755
|
| --- a/third_party/instrumented_libraries/download_build_install.py
|
| +++ b/third_party/instrumented_libraries/download_build_install.py
|
| @@ -98,7 +98,22 @@ def shell_call(command, verbose=False, environment=None):
|
| if child.returncode:
|
| raise Exception("Failed to run: %s" % command)
|
|
|
| -def configure_make_install(parsed_arguments, environment, install_prefix):
|
| +def destdir_configure_make_install(parsed_arguments, environment,
|
| + install_prefix):
|
| + configure_command = './configure %s' % parsed_arguments.custom_configure_flags
|
| + configure_command += ' --libdir=/lib/'
|
| + shell_call(configure_command, parsed_arguments.verbose, environment)
|
| + shell_call('make -j%s' % parsed_arguments.jobs,
|
| + parsed_arguments.verbose, environment)
|
| + shell_call('make -j%s DESTDIR=%s install' % (parsed_arguments.jobs,
|
| + install_prefix),
|
| + parsed_arguments.verbose, environment)
|
| + # Kill the .la files. They contain absolute paths, and will cause build errors
|
| + # in dependent libraries.
|
| + shell_call('rm %s/lib/*.la -f' % install_prefix)
|
| +
|
| +def prefix_configure_make_install(parsed_arguments, environment,
|
| + install_prefix):
|
| configure_command = './configure %s --prefix=%s' % (
|
| parsed_arguments.custom_configure_flags, install_prefix)
|
| shell_call(configure_command, parsed_arguments.verbose, environment)
|
| @@ -159,20 +174,23 @@ def libcap2_make_install(parsed_arguments, environment, install_prefix):
|
| ' '.join(install_args)), parsed_arguments.verbose, environment)
|
|
|
| def build_and_install(parsed_arguments, environment, install_prefix):
|
| - if parsed_arguments.library == 'pango-1.0':
|
| - # This needs an absolute path and thus cannot be in GYP.
|
| + if parsed_arguments.build_method == 'destdir':
|
| + destdir_configure_make_install(parsed_arguments, environment, install_prefix)
|
| + elif parsed_arguments.build_method == 'prefix':
|
| + prefix_configure_make_install(parsed_arguments, environment, install_prefix)
|
| + elif parsed_arguments.build_method == 'custom_nss':
|
| + nss_make_and_copy(parsed_arguments, environment, install_prefix)
|
| + elif parsed_arguments.build_method == 'custom_libcap':
|
| + libcap2_make_install(parsed_arguments, environment, install_prefix)
|
| + elif parsed_arguments.build_method == 'custom_pango':
|
| parsed_arguments.custom_configure_flags += \
|
| ' --x-libraries=%s/lib' % install_prefix
|
| parsed_arguments.custom_configure_flags += \
|
| ' --x-includes=%s/include' % install_prefix
|
| -
|
| - if parsed_arguments.library == 'nss':
|
| - nss_make_and_copy(parsed_arguments, environment, install_prefix)
|
| - elif parsed_arguments.library == 'libcap2':
|
| - libcap2_make_install(parsed_arguments, environment, install_prefix)
|
| + prefix_configure_make_install(parsed_arguments, environment, install_prefix)
|
| else:
|
| - configure_make_install(parsed_arguments, environment, install_prefix)
|
| -
|
| + raise Exception('Unrecognized build method: %s' %
|
| + parsed_arguments.build_method)
|
|
|
| def download_build_install(parsed_arguments):
|
| sanitizer_params = SUPPORTED_SANITIZERS[parsed_arguments.sanitizer_type]
|
| @@ -262,6 +280,7 @@ def main():
|
| # This should be a shell script to run before building specific libraries
|
| # e.g. extracting archives with sources, patching makefiles, etc.
|
| argument_parser.add_argument('--run-before-build', default='')
|
| + argument_parser.add_argument('--build-method', default='destdir')
|
|
|
| # Ignore all empty arguments because in several cases gyp passes them to the
|
| # script, but ArgumentParser treats them as positional arguments instead of
|
|
|