def __init__(self, name, subdir, subproject, is_cross, sources, objects, environment, kwargs):
    self.typename = 'static library'
    if (('pic' not in kwargs) and ('b_staticpic' in environment.coredata.base_options)):
        kwargs['pic'] = environment.coredata.base_options['b_staticpic'].value
    super().__init__(name, subdir, subproject, is_cross, sources, objects, environment, kwargs)
    if ('cs' in self.compilers):
        raise InvalidArguments('Static libraries not supported for C#.')
    if ('rust' in self.compilers):
        if ((not hasattr(self, 'rust_crate_type')) or (self.rust_crate_type == 'lib')):
            mlog.debug('Defaulting Rust static library target crate type to rlib')
            self.rust_crate_type = 'rlib'
        elif (self.rust_crate_type not in ['rlib', 'staticlib']):
            raise InvalidArguments('Crate type "{0}" invalid for static libraries; must be "rlib" or "staticlib"'.format(self.rust_crate_type))
    if (not hasattr(self, 'prefix')):
        self.prefix = 'lib'
    if (not hasattr(self, 'suffix')):
        if ('rust' in self.compilers):
            if ((not hasattr(self, 'rust_crate_type')) or (self.rust_crate_type == 'rlib')):
                self.suffix = 'rlib'
            elif (self.rust_crate_type == 'staticlib'):
                self.suffix = 'a'
        else:
            self.suffix = 'a'
    self.filename = (((self.prefix + self.name) + '.') + self.suffix)
    self.outputs = [self.filename]
def __init__(self, name, subdir, subproject, is_cross, sources, objects, environment, kwargs):
    self.typename = 'static library'
    if (('pic' not in kwargs) and ('b_staticpic' in environment.coredata.base_options)):
        kwargs['pic'] = environment.coredata.base_options['b_staticpic'].value
    super().__init__(name, subdir, subproject, is_cross, sources, objects, environment, kwargs)
    if ('cs' in self.compilers):
        raise InvalidArguments('Static libraries not supported for C#.')
    if ('rust' in self.compilers):
        if ((not hasattr(self, 'rust_crate_type')) or (self.rust_crate_type == 'lib')):
            mlog.debug('Defaulting Rust static library target crate type to rlib')
            self.rust_crate_type = 'rlib'
        elif (self.rust_crate_type not in ['rlib', 'staticlib']):
            raise InvalidArguments('Crate type "{0}" invalid for static libraries; must be "rlib" or "staticlib"'.format(self.rust_crate_type))
    if (not hasattr(self, 'prefix')):
        self.prefix = 'lib'
    if (not hasattr(self, 'suffix')):
        if ('rust' in self.compilers):
            if ((not hasattr(self, 'rust_crate_type')) or (self.rust_crate_type == 'rlib')):
                self.suffix = 'rlib'
            elif (self.rust_crate_type == 'staticlib'):
                self.suffix = 'a'
        else:
            self.suffix = 'a'
    self.filename = (((self.prefix + self.name) + '.') + self.suffix)
    self.outputs = [self.filename]