diff options
author | Dan Albert <danalbert@google.com> | 2018-11-14 13:22:08 -0800 |
---|---|---|
committer | Dan Albert <danalbert@google.com> | 2018-11-14 13:22:08 -0800 |
commit | f236b449daeff96112b586ed4f06980e88012d39 (patch) | |
tree | c0832b14ba4e70a6daffc04c19dc680caeedfcf8 | |
parent | ef58803bb1c5f70d34705a4698b9a97851d430b1 (diff) | |
download | gcc-ndk-release-r20.tar.gz |
Bootstrap build with Python 3.ndk-r20bndk-r20-beta3ndk-r20-beta2ndk-r20-beta1ndk-r20ndk-release-r20
Test: ./build.py --toolchain aarch64-linux-android
Bug: None
Change-Id: I11ae974ca43590b4801d67077cf2d4f8838dbe30
-rwxr-xr-x | build.py | 55 | ||||
-rwxr-xr-x | do_build.py | 64 |
2 files changed, 83 insertions, 36 deletions
@@ -1,6 +1,6 @@ #!/usr/bin/env python # -# Copyright (C) 2015 The Android Open Source Project +# Copyright (C) 2018 The Android Open Source Project # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -14,51 +14,34 @@ # See the License for the specific language governing permissions and # limitations under the License. # -"""Builds GCC for Android.""" -from __future__ import print_function - +"""Bootstrapper for do_build.py.""" +import logging import os import site +import subprocess +import sys -site.addsitedir(os.path.join(os.path.dirname(__file__), '../../ndk/build/lib')) - -import build_support - - -class ArgParser(build_support.ArgParser): - def __init__(self): - super(ArgParser, self).__init__() - self.add_argument( - '--toolchain', choices=build_support.ALL_TOOLCHAINS, - help='Toolchain to build. Builds all if not present.') +THIS_DIR = os.path.realpath(os.path.dirname(__file__)) +ANDROID_TOP = os.path.join(THIS_DIR, '../..') -def main(args): - GCC_VERSION = '4.9' +site.addsitedir(os.path.join(ANDROID_TOP, 'ndk')) +import bootstrap # pylint: disable=import-error,wrong-import-position - toolchains = build_support.ALL_TOOLCHAINS - if args.toolchain is not None: - toolchains = [args.toolchain] - print('Building {} toolchains: {}'.format(args.host, ' '.join(toolchains))) - for toolchain in toolchains: - toolchain_name = '-'.join([toolchain, GCC_VERSION]) - sysroot_arg = '--sysroot={}'.format( - build_support.sysroot_path(toolchain)) - build_cmd = [ - 'bash', 'build-gcc.sh', build_support.toolchain_path(), - build_support.ndk_path(), toolchain_name, build_support.jobs_arg(), - sysroot_arg, - ] +def main(): + """Program entry point. - if args.host in ('windows', 'windows64'): - build_cmd.append('--mingw') + Bootstraps do_build.py with Python 3. + """ + logging.basicConfig(level=logging.INFO) - if args.host != 'windows': - build_cmd.append('--try-64') + bootstrap.bootstrap() + subprocess.check_call( + ['python3', os.path.join(THIS_DIR, 'do_build.py')] + + sys.argv[1:]) - build_support.build(build_cmd, args) if __name__ == '__main__': - build_support.run(main, ArgParser) + main() diff --git a/do_build.py b/do_build.py new file mode 100755 index 000000000..908f7fd57 --- /dev/null +++ b/do_build.py @@ -0,0 +1,64 @@ +#!/usr/bin/env python +# +# Copyright (C) 2015 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +"""Builds GCC for Android.""" +from __future__ import print_function + +import os +import site + +site.addsitedir(os.path.join(os.path.dirname(__file__), '../../ndk/build/lib')) + +import build_support + + +class ArgParser(build_support.ArgParser): + def __init__(self): + super(ArgParser, self).__init__() + + self.add_argument( + '--toolchain', choices=build_support.ALL_TOOLCHAINS, + help='Toolchain to build. Builds all if not present.') + + +def main(args): + GCC_VERSION = '4.9' + + toolchains = build_support.ALL_TOOLCHAINS + if args.toolchain is not None: + toolchains = [args.toolchain] + + print('Building {} toolchains: {}'.format(args.host, ' '.join(toolchains))) + for toolchain in toolchains: + toolchain_name = '-'.join([toolchain, GCC_VERSION]) + sysroot_arg = '--sysroot={}'.format( + build_support.sysroot_path(toolchain)) + build_cmd = [ + 'bash', 'build-gcc.sh', build_support.toolchain_path(), + build_support.ndk_path(), toolchain_name, build_support.jobs_arg(), + sysroot_arg, + ] + + if args.host in ('windows', 'windows64'): + build_cmd.append('--mingw') + + if args.host != 'windows': + build_cmd.append('--try-64') + + build_support.build(build_cmd, args) + +if __name__ == '__main__': + build_support.run(main, ArgParser) |