def __init__(self, name, subdir, subproject, is_cross, sources, objects, environment, kwargs):
    self.typename = 'shared library'
    self.soversion = None
    self.ltversion = None
    self.darwin_versions = []
    self.vs_module_defs = None
    self.import_filename = None
    self.vs_import_filename = None
    self.gcc_import_filename = None
    super().__init__(name, subdir, subproject, is_cross, sources, objects, environment, kwargs)
    if ('rust' in self.compilers):
        if ((not hasattr(self, 'rust_crate_type')) or (self.rust_crate_type == 'lib')):
            mlog.debug('Defaulting Rust dynamic library target crate type to "dylib"')
            self.rust_crate_type = 'dylib'
        elif (self.rust_crate_type not in ['dylib', 'cdylib']):
            raise InvalidArguments('Crate type "{0}" invalid for dynamic libraries; must be "dylib" or "cdylib"'.format(self.rust_crate_type))
    if (not hasattr(self, 'prefix')):
        self.prefix = None
    if (not hasattr(self, 'suffix')):
        self.suffix = None
    self.basic_filename_tpl = '{0.prefix}{0.name}.{0.suffix}'
    self.determine_filenames(is_cross, environment)
def __init__(self, name, subdir, subproject, is_cross, sources, objects, environment, kwargs):
    self.typename = 'shared library'
    self.soversion = None
    self.ltversion = None
    self.darwin_versions = []
    self.vs_module_defs = None
    self.import_filename = None
    self.vs_import_filename = None
    self.gcc_import_filename = None
    super().__init__(name, subdir, subproject, is_cross, sources, objects, environment, kwargs)
    if ('rust' in self.compilers):
        if ((not hasattr(self, 'rust_crate_type')) or (self.rust_crate_type == 'lib')):
            mlog.debug('Defaulting Rust dynamic library target crate type to "dylib"')
            self.rust_crate_type = 'dylib'
        elif (self.rust_crate_type not in ['dylib', 'cdylib']):
            raise InvalidArguments('Crate type "{0}" invalid for dynamic libraries; must be "dylib" or "cdylib"'.format(self.rust_crate_type))
    if (not hasattr(self, 'prefix')):
        self.prefix = None
    if (not hasattr(self, 'suffix')):
        self.suffix = None
    self.basic_filename_tpl = '{0.prefix}{0.name}.{0.suffix}'
    self.determine_filenames(is_cross, environment)