diff --git a/script/bootstrap.py b/script/bootstrap.py index 2aba23ba82f2..cbc3b9921a4c 100755 --- a/script/bootstrap.py +++ b/script/bootstrap.py @@ -41,14 +41,15 @@ def main(): # Redirect to use local libchromiumcontent build. if args.build_libchromiumcontent: - build_libchromiumcontent(args.verbose, args.target_arch) + build_libchromiumcontent(args.verbose, args.target_arch, args.disable_clang, + args.clang_dir) dist_dir = os.path.join(SOURCE_ROOT, 'vendor', 'brightray', 'vendor', 'libchromiumcontent', 'dist', 'main') libcc_source_path = os.path.join(dist_dir, 'src') libcc_shared_library_path = os.path.join(dist_dir, 'shared_library') libcc_static_library_path = os.path.join(dist_dir, 'static_library') - if PLATFORM != 'win32': + if PLATFORM != 'win32' and not args.disable_clang and args.clang_dir != '': update_clang() setup_python_libs() @@ -85,6 +86,9 @@ def parse_args(): 'prompts.') parser.add_argument('--target_arch', default=get_target_arch(), help='Manually specify the arch to build for') + parser.add_argument('--clang_dir', default='', help='Path to clang binaries') + parser.add_argument('--disable_clang', action='store_true', + help='Use compilers other than clang for building') parser.add_argument('--build_libchromiumcontent', action='store_true', help='Build local version of libchromiumcontent') parser.add_argument('--libcc_source_path', required=False, @@ -175,10 +179,14 @@ def update_win32_python(): execute_stdout(['git', 'clone', PYTHON_26_URL]) -def build_libchromiumcontent(verbose, target_arch): +def build_libchromiumcontent(verbose, target_arch, disable_clang, clang_dir): args = [os.path.join(SOURCE_ROOT, 'script', 'build-libchromiumcontent.py')] if verbose: args += ['-v'] + if disable_clang: + args += ['--disable_clang'] + if clang_dir: + args += ['--clang_dir', clang_dir] execute_stdout(args + ['--target_arch', target_arch]) diff --git a/script/build-libchromiumcontent.py b/script/build-libchromiumcontent.py index 2409d0125c3f..a6662e8295e3 100755 --- a/script/build-libchromiumcontent.py +++ b/script/build-libchromiumcontent.py @@ -18,6 +18,12 @@ def main(): if args.verbose: enable_verbose_mode() + extra_update_args = [] + if args.disable_clang: + extra_update_args += ['--disable_clang'] + if args.clang_dir: + extra_update_args += ['--clang_dir', args.clang_dir] + # ./script/bootstrap # ./script/update -t x64 # ./script/build --no_shared_library -t x64 @@ -29,7 +35,8 @@ def main(): build = os.path.join(script_dir, 'build') create_dist = os.path.join(script_dir, 'create-dist') execute_stdout([sys.executable, bootstrap]) - execute_stdout([sys.executable, update, '-t', args.target_arch]) + execute_stdout([sys.executable, update, '-t', args.target_arch] + + extra_update_args) execute_stdout([sys.executable, build, '-R', '-t', args.target_arch]) execute_stdout([sys.executable, create_dist, '-c', 'static_library', '--no_zip', '-t', args.target_arch]) @@ -39,6 +46,9 @@ def parse_args(): parser = argparse.ArgumentParser(description='Build libchromiumcontent') parser.add_argument('--target_arch', help='Specify the arch to build for') + parser.add_argument('--clang_dir', default='', help='Path to clang binaries') + parser.add_argument('--disable_clang', action='store_true', + help='Use compilers other than clang for building') parser.add_argument('-v', '--verbose', action='store_true', help='Prints the output of the subprocesses') return parser.parse_args()