| OLD | NEW |
| 1 # Copyright 2016 The Chromium Authors. All rights reserved. | 1 # Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 | 4 |
| 5 import default_flavor | 5 import default_flavor |
| 6 import subprocess | 6 import subprocess |
| 7 | 7 |
| 8 """GN Android flavor utils, used for building Skia for Android with GN.""" | 8 """GN Android flavor utils, used for building Skia for Android with GN.""" |
| 9 class GNAndroidFlavorUtils(default_flavor.DefaultFlavorUtils): | 9 class GNAndroidFlavorUtils(default_flavor.DefaultFlavorUtils): |
| 10 def __init__(self, m): | 10 def __init__(self, m): |
| (...skipping 15 matching lines...) Expand all Loading... |
| 26 | 26 |
| 27 def _run(self, title, *cmd, **kwargs): | 27 def _run(self, title, *cmd, **kwargs): |
| 28 self.m.vars.default_env = {k: v for (k,v) | 28 self.m.vars.default_env = {k: v for (k,v) |
| 29 in self.m.vars.default_env.iteritems() | 29 in self.m.vars.default_env.iteritems() |
| 30 if k in ['PATH']} | 30 if k in ['PATH']} |
| 31 return self.m.run(self.m.step, title, cmd=list(cmd), | 31 return self.m.run(self.m.step, title, cmd=list(cmd), |
| 32 cwd=self.m.vars.skia_dir, env={}, **kwargs) | 32 cwd=self.m.vars.skia_dir, env={}, **kwargs) |
| 33 | 33 |
| 34 def _adb(self, title, *cmd, **kwargs): | 34 def _adb(self, title, *cmd, **kwargs): |
| 35 self._ever_ran_adb = True | 35 self._ever_ran_adb = True |
| 36 # The only non-infra adb call (check rc) happens to not use _adb(). |
| 37 if 'infra_step' not in kwargs: |
| 38 kwargs['infra_step'] = True |
| 36 return self._run(title, 'adb', *cmd, **kwargs) | 39 return self._run(title, 'adb', *cmd, **kwargs) |
| 37 | 40 |
| 38 def compile(self, unused_target, **kwargs): | 41 def compile(self, unused_target, **kwargs): |
| 39 compiler = self.m.vars.builder_cfg.get('compiler') | 42 compiler = self.m.vars.builder_cfg.get('compiler') |
| 40 configuration = self.m.vars.builder_cfg.get('configuration') | 43 configuration = self.m.vars.builder_cfg.get('configuration') |
| 41 os = self.m.vars.builder_cfg.get('os') | 44 os = self.m.vars.builder_cfg.get('os') |
| 42 target_arch = self.m.vars.builder_cfg.get('target_arch') | 45 target_arch = self.m.vars.builder_cfg.get('target_arch') |
| 43 | 46 |
| 44 assert compiler == 'Clang' # At this rate we might not ever support GCC. | 47 assert compiler == 'Clang' # At this rate we might not ever support GCC. |
| 45 | 48 |
| 46 ndk_asset = 'android_ndk_linux' if os == 'Ubuntu' else 'android_ndk_darwin' | 49 ndk_asset = 'android_ndk_linux' if os == 'Ubuntu' else 'android_ndk_darwin' |
| 47 | 50 |
| 48 quote = lambda x: '"%s"' % x | 51 quote = lambda x: '"%s"' % x |
| 49 gn_args = ' '.join('%s=%s' % (k,v) for (k,v) in sorted({ | 52 gn_args = ' '.join('%s=%s' % (k,v) for (k,v) in sorted({ |
| 50 'is_debug': 'true' if configuration == 'Debug' else 'false', | 53 'is_debug': 'true' if configuration == 'Debug' else 'false', |
| 51 'ndk': quote(self.m.vars.slave_dir.join(ndk_asset)), | 54 'ndk': quote(self.m.vars.slave_dir.join(ndk_asset)), |
| 52 'target_cpu': quote(target_arch), | 55 'target_cpu': quote(target_arch), |
| 53 }.iteritems())) | 56 }.iteritems())) |
| 54 | 57 |
| 55 self._run('fetch-gn', self.m.vars.skia_dir.join('bin', 'fetch-gn')) | 58 self._run('fetch-gn', self.m.vars.skia_dir.join('bin', 'fetch-gn'), |
| 59 infra_step=True) |
| 56 self._run('gn gen', 'gn', 'gen', self.out_dir, '--args=' + gn_args) | 60 self._run('gn gen', 'gn', 'gen', self.out_dir, '--args=' + gn_args) |
| 57 self._run('ninja', 'ninja', '-C', self.out_dir) | 61 self._run('ninja', 'ninja', '-C', self.out_dir) |
| 58 | 62 |
| 59 def install(self): | 63 def install(self): |
| 60 self._adb('reboot', 'reboot') | 64 self._adb('reboot', 'reboot') |
| 61 self._adb('wait for device', 'wait-for-usb-device') | 65 self._adb('wait for device', 'wait-for-usb-device') |
| 62 self._adb('TEMPORARY clear /data/local/tmp', | 66 self._adb('TEMPORARY clear /data/local/tmp', |
| 63 'shell', 'rm', '-rf', '/data/local/tmp/*') | 67 'shell', 'rm', '-rf', '/data/local/tmp/*') |
| 64 self._adb('mkdir /data/local/tmp/resources', | 68 self._adb('mkdir /data/local/tmp/resources', |
| 65 'shell', 'mkdir', '-p', '/data/local/tmp/resources') | 69 'shell', 'mkdir', '-p', '/data/local/tmp/resources') |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 122 def read_file_on_device(self, path): | 126 def read_file_on_device(self, path): |
| 123 return self._adb('read %s' % path, | 127 return self._adb('read %s' % path, |
| 124 'shell', 'cat', path, stdout=self.m.raw_io.output()).stdout | 128 'shell', 'cat', path, stdout=self.m.raw_io.output()).stdout |
| 125 | 129 |
| 126 def remove_file_on_device(self, path): | 130 def remove_file_on_device(self, path): |
| 127 self._adb('rm %s' % path, 'shell', 'rm', '-f', path) | 131 self._adb('rm %s' % path, 'shell', 'rm', '-f', path) |
| 128 | 132 |
| 129 def create_clean_device_dir(self, path): | 133 def create_clean_device_dir(self, path): |
| 130 self._adb('rm %s' % path, 'shell', 'rm', '-rf', path) | 134 self._adb('rm %s' % path, 'shell', 'rm', '-rf', path) |
| 131 self._adb('mkdir %s' % path, 'shell', 'mkdir', '-p', path) | 135 self._adb('mkdir %s' % path, 'shell', 'mkdir', '-p', path) |
| OLD | NEW |