|
|
|
@ -43,6 +43,12 @@ class SimdModule(ExtensionModule): |
|
|
|
|
raise mesonlib.MesonException('Argument must be a string.') |
|
|
|
|
if 'compiler' not in kwargs: |
|
|
|
|
raise mesonlib.MesonException('Must specify compiler keyword') |
|
|
|
|
if 'sources' in kwargs: |
|
|
|
|
raise mesonlib.MesonException('SIMD module does not support the "sources" keyword') |
|
|
|
|
basic_kwargs = {} |
|
|
|
|
for key, value in kwargs.items(): |
|
|
|
|
if key not in self.isets and key != 'compiler': |
|
|
|
|
basic_kwargs[key] = value |
|
|
|
|
compiler = kwargs['compiler'].compiler |
|
|
|
|
if not isinstance(compiler, compilers.compilers.Compiler): |
|
|
|
|
raise mesonlib.MesonException('Compiler argument must be a compiler object.') |
|
|
|
@ -64,7 +70,14 @@ class SimdModule(ExtensionModule): |
|
|
|
|
conf.values['HAVE_' + iset.upper()] = ('1', 'Compiler supports %s.' % iset) |
|
|
|
|
libname = prefix + '_' + iset |
|
|
|
|
lib_kwargs = {'sources': iset_fname, |
|
|
|
|
compiler.get_language() + '_args': args} |
|
|
|
|
} |
|
|
|
|
lib_kwargs.update(basic_kwargs) |
|
|
|
|
langarg_key = compiler.get_language() + '_args' |
|
|
|
|
old_lang_args = lib_kwargs.get(langarg_key, []) |
|
|
|
|
if not isinstance(old_lang_args, list): |
|
|
|
|
old_lang_args = [old_lang_args] |
|
|
|
|
all_lang_args = old_lang_args + args |
|
|
|
|
lib_kwargs[langarg_key] = all_lang_args |
|
|
|
|
result.append(interpreter.func_static_lib(None, [libname], lib_kwargs)) |
|
|
|
|
return [result, cdata] |
|
|
|
|
|
|
|
|
|