| OLD | NEW | 
|---|
| (Empty) |  | 
|  | 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 | 
|  | 3 # found in the LICENSE file. | 
|  | 4 | 
|  | 5 | 
|  | 6 # pylint: disable=W0201 | 
|  | 7 | 
|  | 8 | 
|  | 9 from recipe_engine import recipe_api | 
|  | 10 | 
|  | 11 from . import android_flavor | 
|  | 12 from . import cmake_flavor | 
|  | 13 from . import coverage_flavor | 
|  | 14 from . import default_flavor | 
|  | 15 from . import gn_flavor | 
|  | 16 from . import ios_flavor | 
|  | 17 from . import pdfium_flavor | 
|  | 18 from . import valgrind_flavor | 
|  | 19 from . import xsan_flavor | 
|  | 20 | 
|  | 21 | 
|  | 22 def is_android(builder_cfg): | 
|  | 23   """Determine whether the given builder is an Android builder.""" | 
|  | 24   return ('Android' in builder_cfg.get('extra_config', '') or | 
|  | 25           builder_cfg.get('os') == 'Android') | 
|  | 26 | 
|  | 27 | 
|  | 28 def is_cmake(builder_cfg): | 
|  | 29   return 'CMake' in builder_cfg.get('extra_config', '') | 
|  | 30 | 
|  | 31 | 
|  | 32 def is_gn(builder_cfg): | 
|  | 33   return 'GN' == builder_cfg.get('extra_config', '') | 
|  | 34 | 
|  | 35 | 
|  | 36 def is_ios(builder_cfg): | 
|  | 37   return ('iOS' in builder_cfg.get('extra_config', '') or | 
|  | 38           builder_cfg.get('os') == 'iOS') | 
|  | 39 | 
|  | 40 | 
|  | 41 def is_pdfium(builder_cfg): | 
|  | 42   return 'PDFium' in builder_cfg.get('extra_config', '') | 
|  | 43 | 
|  | 44 | 
|  | 45 def is_valgrind(builder_cfg): | 
|  | 46   return 'Valgrind' in builder_cfg.get('extra_config', '') | 
|  | 47 | 
|  | 48 | 
|  | 49 def is_xsan(builder_cfg): | 
|  | 50   return ('ASAN' in builder_cfg.get('extra_config', '') or | 
|  | 51           'MSAN' in builder_cfg.get('extra_config', '') or | 
|  | 52           'TSAN' in builder_cfg.get('extra_config', '')) | 
|  | 53 | 
|  | 54 | 
|  | 55 class SkiaFlavorApi(recipe_api.RecipeApi): | 
|  | 56   def get_flavor(self, builder_cfg): | 
|  | 57     """Return a flavor utils object specific to the given builder.""" | 
|  | 58     if is_android(builder_cfg): | 
|  | 59       return android_flavor.AndroidFlavorUtils(self.m) | 
|  | 60     elif is_cmake(builder_cfg): | 
|  | 61       return cmake_flavor.CMakeFlavorUtils(self.m) | 
|  | 62     elif is_gn(builder_cfg): | 
|  | 63       return gn_flavor.GNFlavorUtils(self.m) | 
|  | 64     elif is_ios(builder_cfg): | 
|  | 65       return ios_flavor.iOSFlavorUtils(self.m) | 
|  | 66     elif is_pdfium(builder_cfg): | 
|  | 67       return pdfium_flavor.PDFiumFlavorUtils(self.m) | 
|  | 68     elif is_valgrind(builder_cfg): | 
|  | 69       return valgrind_flavor.ValgrindFlavorUtils(self.m) | 
|  | 70     elif is_xsan(builder_cfg): | 
|  | 71       return xsan_flavor.XSanFlavorUtils(self.m) | 
|  | 72     elif builder_cfg.get('configuration') == 'Coverage': | 
|  | 73       return coverage_flavor.CoverageFlavorUtils(self.m) | 
|  | 74     else: | 
|  | 75       return default_flavor.DefaultFlavorUtils(self.m) | 
|  | 76 | 
|  | 77   def setup(self): | 
|  | 78     self._f = self.get_flavor(self.m.vars.builder_cfg) | 
|  | 79 | 
|  | 80   def step(self, name, cmd, **kwargs): | 
|  | 81     return self._f.step(name, cmd, **kwargs) | 
|  | 82 | 
|  | 83   def compile(self, target): | 
|  | 84     return self._f.compile(target) | 
|  | 85 | 
|  | 86   def copy_extra_build_products(self, swarming_out_dir): | 
|  | 87     return self._f.copy_extra_build_products(swarming_out_dir) | 
|  | 88 | 
|  | 89   @property | 
|  | 90   def out_dir(self): | 
|  | 91     return self._f.out_dir | 
|  | 92 | 
|  | 93   def device_path_join(self, *args): | 
|  | 94     return self._f.device_path_join(*args) | 
|  | 95 | 
|  | 96   def device_path_exists(self, path): | 
|  | 97     return self._f.device_path_exists(path)  # pragma: no cover | 
|  | 98 | 
|  | 99   def copy_directory_contents_to_device(self, host_dir, device_dir): | 
|  | 100     return self._f.copy_directory_contents_to_device(host_dir, device_dir) | 
|  | 101 | 
|  | 102   def copy_directory_contents_to_host(self, device_dir, host_dir): | 
|  | 103     return self._f.copy_directory_contents_to_host(device_dir, host_dir) | 
|  | 104 | 
|  | 105   def copy_file_to_device(self, host_path, device_path): | 
|  | 106     return self._f.copy_file_to_device(host_path, device_path) | 
|  | 107 | 
|  | 108   def create_clean_host_dir(self, path): | 
|  | 109     return self._f.create_clean_host_dir(path) | 
|  | 110 | 
|  | 111   def create_clean_device_dir(self, path): | 
|  | 112     return self._f.create_clean_device_dir(path) | 
|  | 113 | 
|  | 114   def read_file_on_device(self, path): | 
|  | 115     return self._f.read_file_on_device(path) | 
|  | 116 | 
|  | 117   def remove_file_on_device(self, path): | 
|  | 118     return self._f.remove_file_on_device(path) | 
|  | 119 | 
|  | 120   def install(self): | 
|  | 121     rv = self._f.install() | 
|  | 122     self.device_dirs = self._f.device_dirs | 
|  | 123     return rv | 
|  | 124 | 
|  | 125   def cleanup_steps(self): | 
|  | 126     return self._f.cleanup_steps() | 
| OLD | NEW | 
|---|