1261ea19c4d5aa90e6de3af7b06bb14d634641af0Kevin Lubick#!/usr/bin/env python 2261ea19c4d5aa90e6de3af7b06bb14d634641af0Kevin Lubick# 3261ea19c4d5aa90e6de3af7b06bb14d634641af0Kevin Lubick# Copyright 2016 Google Inc. 4261ea19c4d5aa90e6de3af7b06bb14d634641af0Kevin Lubick# 5261ea19c4d5aa90e6de3af7b06bb14d634641af0Kevin Lubick# Use of this source code is governed by a BSD-style license that can be 6261ea19c4d5aa90e6de3af7b06bb14d634641af0Kevin Lubick# found in the LICENSE file. 7261ea19c4d5aa90e6de3af7b06bb14d634641af0Kevin Lubick 8261ea19c4d5aa90e6de3af7b06bb14d634641af0Kevin Lubick 9261ea19c4d5aa90e6de3af7b06bb14d634641af0Kevin Lubick"""Create the asset.""" 10261ea19c4d5aa90e6de3af7b06bb14d634641af0Kevin Lubick 11261ea19c4d5aa90e6de3af7b06bb14d634641af0Kevin Lubick 12261ea19c4d5aa90e6de3af7b06bb14d634641af0Kevin Lubickimport argparse 13261ea19c4d5aa90e6de3af7b06bb14d634641af0Kevin Lubickimport glob 14261ea19c4d5aa90e6de3af7b06bb14d634641af0Kevin Lubickimport os 15261ea19c4d5aa90e6de3af7b06bb14d634641af0Kevin Lubickimport shutil 16261ea19c4d5aa90e6de3af7b06bb14d634641af0Kevin Lubickimport subprocess 17261ea19c4d5aa90e6de3af7b06bb14d634641af0Kevin Lubickimport sys 18261ea19c4d5aa90e6de3af7b06bb14d634641af0Kevin Lubick 19261ea19c4d5aa90e6de3af7b06bb14d634641af0Kevin Lubick 20261ea19c4d5aa90e6de3af7b06bb14d634641af0Kevin Lubickdef create_asset(target_dir, gl_path): 21261ea19c4d5aa90e6de3af7b06bb14d634641af0Kevin Lubick """Create the asset.""" 22261ea19c4d5aa90e6de3af7b06bb14d634641af0Kevin Lubick 23261ea19c4d5aa90e6de3af7b06bb14d634641af0Kevin Lubick cmd = [ 24261ea19c4d5aa90e6de3af7b06bb14d634641af0Kevin Lubick 'sudo','apt-get','install', 25261ea19c4d5aa90e6de3af7b06bb14d634641af0Kevin Lubick 'libgles2-mesa-dev', 26261ea19c4d5aa90e6de3af7b06bb14d634641af0Kevin Lubick 'libegl1-mesa-dev' 27261ea19c4d5aa90e6de3af7b06bb14d634641af0Kevin Lubick ] 28261ea19c4d5aa90e6de3af7b06bb14d634641af0Kevin Lubick print 'About to run:' 29261ea19c4d5aa90e6de3af7b06bb14d634641af0Kevin Lubick print ' '.join(cmd) 30261ea19c4d5aa90e6de3af7b06bb14d634641af0Kevin Lubick print 'Press Enter to Continue' 31261ea19c4d5aa90e6de3af7b06bb14d634641af0Kevin Lubick raw_input() 32261ea19c4d5aa90e6de3af7b06bb14d634641af0Kevin Lubick subprocess.check_call(cmd) 33261ea19c4d5aa90e6de3af7b06bb14d634641af0Kevin Lubick 34261ea19c4d5aa90e6de3af7b06bb14d634641af0Kevin Lubick 35261ea19c4d5aa90e6de3af7b06bb14d634641af0Kevin Lubick lib_dir = os.path.join(target_dir, 'lib') 36261ea19c4d5aa90e6de3af7b06bb14d634641af0Kevin Lubick os.mkdir(lib_dir) 37261ea19c4d5aa90e6de3af7b06bb14d634641af0Kevin Lubick 3828c2cc47fd2a4fbc3aaa7843f46f4c313d28b835Skia_Android Canary Bot to_copy = glob.glob(os.path.join(gl_path,'libGL*')) 3928c2cc47fd2a4fbc3aaa7843f46f4c313d28b835Skia_Android Canary Bot to_copy.extend(glob.glob(os.path.join(gl_path,'libEGL*'))) 4028c2cc47fd2a4fbc3aaa7843f46f4c313d28b835Skia_Android Canary Bot to_copy.extend(glob.glob(os.path.join(gl_path,'libmali*'))) 4128c2cc47fd2a4fbc3aaa7843f46f4c313d28b835Skia_Android Canary Bot for f in to_copy: 42261ea19c4d5aa90e6de3af7b06bb14d634641af0Kevin Lubick shutil.copy(f, lib_dir) 43261ea19c4d5aa90e6de3af7b06bb14d634641af0Kevin Lubick 44261ea19c4d5aa90e6de3af7b06bb14d634641af0Kevin Lubick include_dir = os.path.join(target_dir, 'include') 45261ea19c4d5aa90e6de3af7b06bb14d634641af0Kevin Lubick os.mkdir(include_dir) 46261ea19c4d5aa90e6de3af7b06bb14d634641af0Kevin Lubick shutil.copytree('/usr/include/EGL', os.path.join(include_dir, 'EGL')) 47261ea19c4d5aa90e6de3af7b06bb14d634641af0Kevin Lubick shutil.copytree('/usr/include/KHR', os.path.join(include_dir, 'KHR')) 48261ea19c4d5aa90e6de3af7b06bb14d634641af0Kevin Lubick shutil.copytree('/usr/include/GLES2', os.path.join(include_dir, 'GLES2')) 49261ea19c4d5aa90e6de3af7b06bb14d634641af0Kevin Lubick shutil.copytree('/usr/include/GLES3', os.path.join(include_dir, 'GLES3')) 50261ea19c4d5aa90e6de3af7b06bb14d634641af0Kevin Lubick 51261ea19c4d5aa90e6de3af7b06bb14d634641af0Kevin Lubick 52261ea19c4d5aa90e6de3af7b06bb14d634641af0Kevin Lubickdef main(): 53261ea19c4d5aa90e6de3af7b06bb14d634641af0Kevin Lubick if 'linux' not in sys.platform: 54261ea19c4d5aa90e6de3af7b06bb14d634641af0Kevin Lubick print >> sys.stderr, 'This script only runs on Linux.' 55261ea19c4d5aa90e6de3af7b06bb14d634641af0Kevin Lubick sys.exit(1) 56261ea19c4d5aa90e6de3af7b06bb14d634641af0Kevin Lubick parser = argparse.ArgumentParser() 57261ea19c4d5aa90e6de3af7b06bb14d634641af0Kevin Lubick parser.add_argument('--target_dir', '-t', required=True) 58261ea19c4d5aa90e6de3af7b06bb14d634641af0Kevin Lubick parser.add_argument('--lib_path', '-l', required=True) 59261ea19c4d5aa90e6de3af7b06bb14d634641af0Kevin Lubick args = parser.parse_args() 60261ea19c4d5aa90e6de3af7b06bb14d634641af0Kevin Lubick create_asset(args.target_dir, args.lib_path) 61261ea19c4d5aa90e6de3af7b06bb14d634641af0Kevin Lubick 62261ea19c4d5aa90e6de3af7b06bb14d634641af0Kevin Lubick 63261ea19c4d5aa90e6de3af7b06bb14d634641af0Kevin Lubickif __name__ == '__main__': 64261ea19c4d5aa90e6de3af7b06bb14d634641af0Kevin Lubick main() 65