Home | History | Annotate | Download | only in build
      1 # Copyright 2018 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 """Shared utilities for the build recipe module."""
      7 
      8 
      9 BUILD_PRODUCTS_ISOLATE_WHITELIST = [
     10   'bookmaker',
     11   'dm',
     12   'dm.exe',
     13   'dm.app',
     14   'nanobench.app',
     15   'get_images_from_skps',
     16   'get_images_from_skps.exe',
     17   'hello-opencl',
     18   'hello-opencl.exe',
     19   'nanobench',
     20   'nanobench.exe',
     21   'skpbench',
     22   'skpbench.exe',
     23   '*.so',
     24   '*.dll',
     25   '*.dylib',
     26   'skia_launcher',
     27   'skiaserve',
     28   'lib/*.so',
     29   'run_testlab',
     30   'skqp-universal-debug.apk',
     31   'whitelist_devices.json',
     32 ]
     33 
     34 
     35 def copy_whitelisted_build_products(api, src, dst):
     36   """Copy whitelisted build products from src to dst."""
     37   api.python.inline(
     38       name='copy build products',
     39       program='''import errno
     40 import glob
     41 import os
     42 import shutil
     43 import sys
     44 
     45 src = sys.argv[1]
     46 dst = sys.argv[2]
     47 build_products_whitelist = %s
     48 
     49 try:
     50   os.makedirs(dst)
     51 except OSError as e:
     52   if e.errno != errno.EEXIST:
     53     raise
     54 
     55 for pattern in build_products_whitelist:
     56   path = os.path.join(src, pattern)
     57   for f in glob.glob(path):
     58     dst_path = os.path.join(dst, os.path.relpath(f, src))
     59     if not os.path.isdir(os.path.dirname(dst_path)):
     60       os.makedirs(os.path.dirname(dst_path))
     61     print 'Copying build product %%s to %%s' %% (f, dst_path)
     62     shutil.move(f, dst_path)
     63 ''' % str(BUILD_PRODUCTS_ISOLATE_WHITELIST),
     64       args=[src, dst],
     65       infra_step=True)
     66