@typed_pos_args('install_subdir', str)
@typed_kwargs('install_subdir', KwargInfo('install_dir', str, required=True), KwargInfo('strip_directory', bool, default=False), KwargInfo('exclude_files', ContainerTypeInfo(list, str), default=[], listify=True, since='0.42.0', validator=(lambda x: ('cannot be absolute' if any((os.path.isabs(d) for d in x)) else None))), KwargInfo('exclude_directories', ContainerTypeInfo(list, str), default=[], listify=True, since='0.42.0', validator=(lambda x: ('cannot be absolute' if any((os.path.isabs(d) for d in x)) else None))), INSTALL_MODE_KW.evolve(since='0.38.0'), INSTALL_TAG_KW.evolve(since='0.60.0'))
def func_install_subdir(self, node: mparser.BaseNode, args: T.Tuple[str], kwargs: 'kwargs.FuncInstallSubdir') -> build.InstallDir:
    exclude = (set(kwargs['exclude_files']), set(kwargs['exclude_directories']))
    idir = build.InstallDir(self.subdir, args[0], kwargs['install_dir'], kwargs['install_mode'], exclude, kwargs['strip_directory'], self.subproject, install_tag=kwargs['install_tag'])
    self.build.install_dirs.append(idir)
    return idir
@typed_pos_args('install_subdir', str)
@typed_kwargs('install_subdir', KwargInfo('install_dir', str, required=True), KwargInfo('strip_directory', bool, default=False), KwargInfo('exclude_files', ContainerTypeInfo(list, str), default=[], listify=True, since='0.42.0', validator=(lambda x: ('cannot be absolute' if any((os.path.isabs(d) for d in x)) else None))), KwargInfo('exclude_directories', ContainerTypeInfo(list, str), default=[], listify=True, since='0.42.0', validator=(lambda x: ('cannot be absolute' if any((os.path.isabs(d) for d in x)) else None))), INSTALL_MODE_KW.evolve(since='0.38.0'), INSTALL_TAG_KW.evolve(since='0.60.0'))
def func_install_subdir(self, node: mparser.BaseNode, args: T.Tuple[str], kwargs: 'kwargs.FuncInstallSubdir') -> build.InstallDir:
    exclude = (set(kwargs['exclude_files']), set(kwargs['exclude_directories']))
    idir = build.InstallDir(self.subdir, args[0], kwargs['install_dir'], kwargs['install_mode'], exclude, kwargs['strip_directory'], self.subproject, install_tag=kwargs['install_tag'])
    self.build.install_dirs.append(idir)
    return idir