1*6777b538SAndroid Build Coastguard Worker#!/usr/bin/env python3 2*6777b538SAndroid Build Coastguard Worker# Copyright 2012 The Chromium Authors 3*6777b538SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be 4*6777b538SAndroid Build Coastguard Worker# found in the LICENSE file. 5*6777b538SAndroid Build Coastguard Worker 6*6777b538SAndroid Build Coastguard Worker"""Shim to run nacl toolchain download script only if there is a nacl dir.""" 7*6777b538SAndroid Build Coastguard Worker 8*6777b538SAndroid Build Coastguard Worker 9*6777b538SAndroid Build Coastguard Workerimport os 10*6777b538SAndroid Build Coastguard Workerimport shutil 11*6777b538SAndroid Build Coastguard Workerimport sys 12*6777b538SAndroid Build Coastguard Worker 13*6777b538SAndroid Build Coastguard Worker 14*6777b538SAndroid Build Coastguard Workerdef Main(args): 15*6777b538SAndroid Build Coastguard Worker script_dir = os.path.dirname(os.path.abspath(__file__)) 16*6777b538SAndroid Build Coastguard Worker src_dir = os.path.dirname(script_dir) 17*6777b538SAndroid Build Coastguard Worker nacl_dir = os.path.join(src_dir, 'native_client') 18*6777b538SAndroid Build Coastguard Worker nacl_build_dir = os.path.join(nacl_dir, 'build') 19*6777b538SAndroid Build Coastguard Worker package_version_dir = os.path.join(nacl_build_dir, 'package_version') 20*6777b538SAndroid Build Coastguard Worker package_version = os.path.join(package_version_dir, 'package_version.py') 21*6777b538SAndroid Build Coastguard Worker if not os.path.exists(package_version): 22*6777b538SAndroid Build Coastguard Worker print("Can't find '%s'" % package_version) 23*6777b538SAndroid Build Coastguard Worker print('Presumably you are intentionally building without NativeClient.') 24*6777b538SAndroid Build Coastguard Worker print('Skipping NativeClient toolchain download.') 25*6777b538SAndroid Build Coastguard Worker sys.exit(0) 26*6777b538SAndroid Build Coastguard Worker sys.path.insert(0, package_version_dir) 27*6777b538SAndroid Build Coastguard Worker import package_version 28*6777b538SAndroid Build Coastguard Worker 29*6777b538SAndroid Build Coastguard Worker # BUG: 30*6777b538SAndroid Build Coastguard Worker # We remove this --optional-pnacl argument, and instead replace it with 31*6777b538SAndroid Build Coastguard Worker # --no-pnacl for most cases. However, if the bot name is an sdk 32*6777b538SAndroid Build Coastguard Worker # bot then we will go ahead and download it. This prevents increasing the 33*6777b538SAndroid Build Coastguard Worker # gclient sync time for developers, or standard Chrome bots. 34*6777b538SAndroid Build Coastguard Worker if '--optional-pnacl' in args: 35*6777b538SAndroid Build Coastguard Worker args.remove('--optional-pnacl') 36*6777b538SAndroid Build Coastguard Worker use_pnacl = False 37*6777b538SAndroid Build Coastguard Worker buildbot_name = os.environ.get('BUILDBOT_BUILDERNAME', '') 38*6777b538SAndroid Build Coastguard Worker if 'pnacl' in buildbot_name and 'sdk' in buildbot_name: 39*6777b538SAndroid Build Coastguard Worker use_pnacl = True 40*6777b538SAndroid Build Coastguard Worker if use_pnacl: 41*6777b538SAndroid Build Coastguard Worker print('\n*** DOWNLOADING PNACL TOOLCHAIN ***\n') 42*6777b538SAndroid Build Coastguard Worker else: 43*6777b538SAndroid Build Coastguard Worker args = ['--exclude', 'pnacl_newlib'] + args 44*6777b538SAndroid Build Coastguard Worker 45*6777b538SAndroid Build Coastguard Worker # Only download the ARM gcc toolchain if we are building for ARM 46*6777b538SAndroid Build Coastguard Worker # TODO(olonho): we need to invent more reliable way to get build 47*6777b538SAndroid Build Coastguard Worker # configuration info, to know if we're building for ARM. 48*6777b538SAndroid Build Coastguard Worker if 'target_arch=arm' not in os.environ.get('GYP_DEFINES', ''): 49*6777b538SAndroid Build Coastguard Worker args = ['--exclude', 'nacl_arm_newlib'] + args 50*6777b538SAndroid Build Coastguard Worker 51*6777b538SAndroid Build Coastguard Worker return package_version.main(args) 52*6777b538SAndroid Build Coastguard Worker 53*6777b538SAndroid Build Coastguard Worker 54*6777b538SAndroid Build Coastguard Workerif __name__ == '__main__': 55*6777b538SAndroid Build Coastguard Worker sys.exit(Main(sys.argv[1:])) 56