1*c8dee2aaSAndroid Build Coastguard Worker#!/usr/bin/env python3 2*c8dee2aaSAndroid Build Coastguard Worker 3*c8dee2aaSAndroid Build Coastguard Worker# Copyright 2022 Google LLC 4*c8dee2aaSAndroid Build Coastguard Worker# 5*c8dee2aaSAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be 6*c8dee2aaSAndroid Build Coastguard Worker# found in the LICENSE file. 7*c8dee2aaSAndroid Build Coastguard Worker 8*c8dee2aaSAndroid Build Coastguard Workerimport os 9*c8dee2aaSAndroid Build Coastguard Workerimport subprocess 10*c8dee2aaSAndroid Build Coastguard Workerimport sys 11*c8dee2aaSAndroid Build Coastguard Workerimport sysconfig 12*c8dee2aaSAndroid Build Coastguard Worker 13*c8dee2aaSAndroid Build Coastguard WorkerEMSDK_ROOT = os.path.join('third_party', 'externals', 'emsdk') 14*c8dee2aaSAndroid Build Coastguard Worker 15*c8dee2aaSAndroid Build Coastguard WorkerEMSDK_PATH = os.path.join(EMSDK_ROOT, 'emsdk.py') 16*c8dee2aaSAndroid Build Coastguard Worker 17*c8dee2aaSAndroid Build Coastguard WorkerEMSDK_VERSION = '3.1.44' 18*c8dee2aaSAndroid Build Coastguard Worker 19*c8dee2aaSAndroid Build Coastguard Workerdef main(): 20*c8dee2aaSAndroid Build Coastguard Worker if sysconfig.get_platform() in ['linux-aarch64', 'linux-arm64']: 21*c8dee2aaSAndroid Build Coastguard Worker # This platform cannot install emsdk at the provided version. See 22*c8dee2aaSAndroid Build Coastguard Worker # https://github.com/emscripten-core/emsdk/blob/main/emscripten-releases-tags.json#L5 23*c8dee2aaSAndroid Build Coastguard Worker # for the latest version 24*c8dee2aaSAndroid Build Coastguard Worker return 25*c8dee2aaSAndroid Build Coastguard Worker try: 26*c8dee2aaSAndroid Build Coastguard Worker subprocess.check_call([sys.executable, EMSDK_PATH, 'install', "--permanent", EMSDK_VERSION]) 27*c8dee2aaSAndroid Build Coastguard Worker except subprocess.CalledProcessError: 28*c8dee2aaSAndroid Build Coastguard Worker print ('Failed to install emsdk') 29*c8dee2aaSAndroid Build Coastguard Worker return 1 30*c8dee2aaSAndroid Build Coastguard Worker try: 31*c8dee2aaSAndroid Build Coastguard Worker subprocess.check_call([sys.executable, EMSDK_PATH, 'activate', "--permanent", EMSDK_VERSION]) 32*c8dee2aaSAndroid Build Coastguard Worker except subprocess.CalledProcessError: 33*c8dee2aaSAndroid Build Coastguard Worker print ('Failed to activate emsdk') 34*c8dee2aaSAndroid Build Coastguard Worker return 1 35*c8dee2aaSAndroid Build Coastguard Worker 36*c8dee2aaSAndroid Build Coastguard Worker 37*c8dee2aaSAndroid Build Coastguard Workerif __name__ == '__main__': 38*c8dee2aaSAndroid Build Coastguard Worker sys.exit(main()) 39