1*8975f5c5SAndroid Build Coastguard Worker#!/usr/bin/env python3 2*8975f5c5SAndroid Build Coastguard Worker# Copyright 2023 The Chromium Authors 3*8975f5c5SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be 4*8975f5c5SAndroid Build Coastguard Worker# found in the LICENSE file. 5*8975f5c5SAndroid Build Coastguard Worker 6*8975f5c5SAndroid Build Coastguard Workerimport os 7*8975f5c5SAndroid Build Coastguard Workerimport sys 8*8975f5c5SAndroid Build Coastguard Worker 9*8975f5c5SAndroid Build Coastguard Worker 10*8975f5c5SAndroid Build Coastguard Workerdef missing_cfg_error_message(): 11*8975f5c5SAndroid Build Coastguard Worker """This assumes that corp machine has gcert binary in known location.""" 12*8975f5c5SAndroid Build Coastguard Worker import shutil 13*8975f5c5SAndroid Build Coastguard Worker if shutil.which("gcert") is not None: 14*8975f5c5SAndroid Build Coastguard Worker return """ 15*8975f5c5SAndroid Build Coastguard WorkerTo build with gn arg 'use_remoteexec=true' as a googler on a corp machine 16*8975f5c5SAndroid Build Coastguard Workerset "download_remoteexec_cfg" in .gclient like 17*8975f5c5SAndroid Build Coastguard Worker 18*8975f5c5SAndroid Build Coastguard Workersolutions = [ 19*8975f5c5SAndroid Build Coastguard Worker { 20*8975f5c5SAndroid Build Coastguard Worker "name" : "src", 21*8975f5c5SAndroid Build Coastguard Worker # ... 22*8975f5c5SAndroid Build Coastguard Worker "custom_vars" : { 23*8975f5c5SAndroid Build Coastguard Worker "download_remoteexec_cfg": True, 24*8975f5c5SAndroid Build Coastguard Worker }, 25*8975f5c5SAndroid Build Coastguard Worker }, 26*8975f5c5SAndroid Build Coastguard Worker] 27*8975f5c5SAndroid Build Coastguard Worker 28*8975f5c5SAndroid Build Coastguard Workerand re-run `gclient sync`. 29*8975f5c5SAndroid Build Coastguard Worker 30*8975f5c5SAndroid Build Coastguard WorkerSee http://go/chrome-linux-build#setup-remote-execution 31*8975f5c5SAndroid Build Coastguard Workerfor more details.""" 32*8975f5c5SAndroid Build Coastguard Worker elif sys.platform == 'linux': 33*8975f5c5SAndroid Build Coastguard Worker return """ 34*8975f5c5SAndroid Build Coastguard WorkerTo build with gn arg 'use_remoteexec=true' as a googler on a non corp machine 35*8975f5c5SAndroid Build Coastguard Workersee http://go/chrome-linux-build#setup-remote-execution for setup instructions. 36*8975f5c5SAndroid Build Coastguard Worker 37*8975f5c5SAndroid Build Coastguard WorkerTo build with gn arg 'use_remoteexec=true' as a non-googler set the appropriate 38*8975f5c5SAndroid Build Coastguard Worker`reclient_cfg_dir` value in args.gn. 39*8975f5c5SAndroid Build Coastguard WorkerSee 40*8975f5c5SAndroid Build Coastguard Workerhttps://chromium.googlesource.com/chromium/src/+/main/docs/linux/build_instructions.md#use-reclient 41*8975f5c5SAndroid Build Coastguard Workerfor more details.""" 42*8975f5c5SAndroid Build Coastguard Worker else: 43*8975f5c5SAndroid Build Coastguard Worker return """ 44*8975f5c5SAndroid Build Coastguard WorkerTo build with gn arg 'use_remoteexec=true' as a googler on a non corp machine 45*8975f5c5SAndroid Build Coastguard Workersee http://go/chrome-linux-build#setup-remote-execution for setup instructions. 46*8975f5c5SAndroid Build Coastguard Worker 47*8975f5c5SAndroid Build Coastguard WorkerBuilding with gn arg 'use_remoteexec=true' as a non-googler is not currently 48*8975f5c5SAndroid Build Coastguard Workersupported on your os (%s). 49*8975f5c5SAndroid Build Coastguard Worker""" % sys.platform 50*8975f5c5SAndroid Build Coastguard Worker 51*8975f5c5SAndroid Build Coastguard Worker 52*8975f5c5SAndroid Build Coastguard Workerdef main(): 53*8975f5c5SAndroid Build Coastguard Worker if len(sys.argv) != 2: 54*8975f5c5SAndroid Build Coastguard Worker print("This should have a path to reclient config file in its args.", 55*8975f5c5SAndroid Build Coastguard Worker file=sys.stderr) 56*8975f5c5SAndroid Build Coastguard Worker return 1 57*8975f5c5SAndroid Build Coastguard Worker 58*8975f5c5SAndroid Build Coastguard Worker # Check path to reclient_cc_cfg_file. 59*8975f5c5SAndroid Build Coastguard Worker if os.path.isfile(sys.argv[1]): 60*8975f5c5SAndroid Build Coastguard Worker return 0 61*8975f5c5SAndroid Build Coastguard Worker 62*8975f5c5SAndroid Build Coastguard Worker print("reclient config file '%s' doesn't exist" % 63*8975f5c5SAndroid Build Coastguard Worker (os.path.abspath(sys.argv[1])), 64*8975f5c5SAndroid Build Coastguard Worker file=sys.stderr) 65*8975f5c5SAndroid Build Coastguard Worker print(missing_cfg_error_message(), file=sys.stderr) 66*8975f5c5SAndroid Build Coastguard Worker 67*8975f5c5SAndroid Build Coastguard Worker return 1 68*8975f5c5SAndroid Build Coastguard Worker 69*8975f5c5SAndroid Build Coastguard Worker 70*8975f5c5SAndroid Build Coastguard Workerif __name__ == "__main__": 71*8975f5c5SAndroid Build Coastguard Worker sys.exit(main()) 72