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