xref: /aosp_15_r20/external/angle/build/toolchain/check_rewrapper_cfg.py (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
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