xref: /aosp_15_r20/external/webrtc/tools_webrtc/download_tools.py (revision d9f758449e529ab9291ac668be2861e7a55c2422)
1*d9f75844SAndroid Build Coastguard Worker#!/usr/bin/env vpython3
2*d9f75844SAndroid Build Coastguard Worker
3*d9f75844SAndroid Build Coastguard Worker# Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
4*d9f75844SAndroid Build Coastguard Worker#
5*d9f75844SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license
6*d9f75844SAndroid Build Coastguard Worker# that can be found in the LICENSE file in the root of the source
7*d9f75844SAndroid Build Coastguard Worker# tree. An additional intellectual property rights grant can be found
8*d9f75844SAndroid Build Coastguard Worker# in the file PATENTS.  All contributing project authors may
9*d9f75844SAndroid Build Coastguard Worker# be found in the AUTHORS file in the root of the source tree.
10*d9f75844SAndroid Build Coastguard Worker"""Downloads precompiled tools.
11*d9f75844SAndroid Build Coastguard Worker
12*d9f75844SAndroid Build Coastguard WorkerThese are checked into the repository as SHA-1 hashes (see *.sha1 files in
13*d9f75844SAndroid Build Coastguard Workersubdirectories). Note that chrome-webrtc-resources is a Google-internal bucket,
14*d9f75844SAndroid Build Coastguard Workerso please download and compile these tools manually if this script fails.
15*d9f75844SAndroid Build Coastguard Worker"""
16*d9f75844SAndroid Build Coastguard Worker
17*d9f75844SAndroid Build Coastguard Workerimport os
18*d9f75844SAndroid Build Coastguard Workerimport sys
19*d9f75844SAndroid Build Coastguard Worker
20*d9f75844SAndroid Build Coastguard WorkerSCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
21*d9f75844SAndroid Build Coastguard WorkerSRC_DIR = os.path.abspath(os.path.join(SCRIPT_DIR, os.pardir))
22*d9f75844SAndroid Build Coastguard Workersys.path.append(os.path.join(SRC_DIR, 'build'))
23*d9f75844SAndroid Build Coastguard Worker
24*d9f75844SAndroid Build Coastguard Workerimport find_depot_tools
25*d9f75844SAndroid Build Coastguard Workerfind_depot_tools.add_depot_tools_to_path()
26*d9f75844SAndroid Build Coastguard Workerimport gclient_utils
27*d9f75844SAndroid Build Coastguard Workerimport subprocess2
28*d9f75844SAndroid Build Coastguard Worker
29*d9f75844SAndroid Build Coastguard Worker
30*d9f75844SAndroid Build Coastguard Workerdef main(directories):
31*d9f75844SAndroid Build Coastguard Worker  if not directories:
32*d9f75844SAndroid Build Coastguard Worker    directories = [SCRIPT_DIR]
33*d9f75844SAndroid Build Coastguard Worker
34*d9f75844SAndroid Build Coastguard Worker  for path in directories:
35*d9f75844SAndroid Build Coastguard Worker    cmd = [
36*d9f75844SAndroid Build Coastguard Worker        sys.executable,
37*d9f75844SAndroid Build Coastguard Worker        os.path.join(find_depot_tools.DEPOT_TOOLS_PATH,
38*d9f75844SAndroid Build Coastguard Worker                     'download_from_google_storage.py'),
39*d9f75844SAndroid Build Coastguard Worker        '--directory',
40*d9f75844SAndroid Build Coastguard Worker        '--num_threads=10',
41*d9f75844SAndroid Build Coastguard Worker        '--bucket',
42*d9f75844SAndroid Build Coastguard Worker        'chrome-webrtc-resources',
43*d9f75844SAndroid Build Coastguard Worker        '--auto_platform',
44*d9f75844SAndroid Build Coastguard Worker        '--recursive',
45*d9f75844SAndroid Build Coastguard Worker        path,
46*d9f75844SAndroid Build Coastguard Worker    ]
47*d9f75844SAndroid Build Coastguard Worker    print('Downloading precompiled tools...')
48*d9f75844SAndroid Build Coastguard Worker
49*d9f75844SAndroid Build Coastguard Worker    # Perform download similar to how gclient hooks execute.
50*d9f75844SAndroid Build Coastguard Worker    try:
51*d9f75844SAndroid Build Coastguard Worker      gclient_utils.CheckCallAndFilter(cmd,
52*d9f75844SAndroid Build Coastguard Worker                                       cwd=SRC_DIR,
53*d9f75844SAndroid Build Coastguard Worker                                       always_show_header=True)
54*d9f75844SAndroid Build Coastguard Worker    except (gclient_utils.Error, subprocess2.CalledProcessError) as e:
55*d9f75844SAndroid Build Coastguard Worker      print('Error: %s' % str(e))
56*d9f75844SAndroid Build Coastguard Worker      return 2
57*d9f75844SAndroid Build Coastguard Worker    return 0
58*d9f75844SAndroid Build Coastguard Worker
59*d9f75844SAndroid Build Coastguard Worker
60*d9f75844SAndroid Build Coastguard Workerif __name__ == '__main__':
61*d9f75844SAndroid Build Coastguard Worker  sys.exit(main(sys.argv[1:]))
62