123456789101112131415161718192021222324252627282930313233343536 |
- from _common import sort_by_keywords
- SOURCE_ROOT = '${ARCADIA_ROOT}/'
- BUILD_ROOT = '${ARCADIA_BUILD_ROOT}/'
- CURDIR = '${CURDIR}/'
- BINDIR = '${BINDIR}/'
- def on_copy_files_to_build_prefix(unit, *args):
- keywords = {'PREFIX': 1, 'GLOBAL': 0}
- # NB! keyword 'GLOBAL' is a way to skip this word from the list of files
- flat_args, spec_args = sort_by_keywords(keywords, args)
- prefix = spec_args['PREFIX'][0] if 'PREFIX' in spec_args else ''
- if len(prefix) > 0:
- build_prefix = '/'.join([BUILD_ROOT, prefix])
- else:
- build_prefix = BUILD_ROOT
- for arg in flat_args:
- if arg.startswith(build_prefix):
- # nothing to do
- pass
- elif len(prefix) > 0 and arg.startswith(BUILD_ROOT):
- unit.oncopy_file([arg, '{}/{}'.format(build_prefix, arg[len(BUILD_ROOT):])])
- elif arg.startswith(SOURCE_ROOT):
- unit.oncopy_file([arg, '{}/{}'.format(build_prefix, arg[len(SOURCE_ROOT):])])
- else:
- offset = 0
- if arg.startswith(BINDIR):
- offset = len(BINDIR)
- elif arg.startswith(CURDIR):
- offset = len(CURDIR)
- unit.oncopy_file([arg, '{}/{}/{}'.format(build_prefix, unit.get(['MODDIR']), arg[offset:])])
|