
    e                       d dl mZ d dlZddlmZmZ ddlmZ ddlm	Z	 ddl
mZmZ ddlmZmZmZmZ d	d
lmZmZ ej(                  r)d	dlmZ ddlmZmZ ddl
mZ  G d dej6                        ZdZ G d de      ZddZy)    )annotationsN   )mesonlibmlog)build)Compiler)BT_SOURCES_KWSTATIC_LIB_KWS)	KwargInfopermittedKwargstyped_pos_argstyped_kwargs   )ExtensionModule
ModuleInfo)ModuleState)Interpreterkwargs)SourcesVarargsTypec                  |    e Zd ZU ded<   ded<   ded<   ded<   ded<   ded<   ded	<   ded
<   ded<   ded<   ded<   y)CheckKwr   compilerr   mmxssesse2sse3ssse3sse41sse42avxavx2neonN)__name__
__module____qualname____annotations__     9/usr/lib/python3/dist-packages/mesonbuild/modules/simd.pyr   r      sD        !!!!!!    r(   r   )
r   r   r   r   r   r   r   r    r!   r"   c                  h   e Zd Z eddd      ZdfdZ ede       ed e	de
d      geD  cg c]  }t        j                  |d	
       c}}} eD  cg c]  }|j                  dk7  s| c}} ddi edheej$                        dd                     ZxZS c c}}} w c c}} w )
SimdModuleSIMDz0.42.0T)unstablec                r    t         |   |       | j                  j                  d| j                  i       y )Ncheck)super__init__methodsupdater/   )selfinterpreter	__class__s     r)   r1   zSimdModule.__init__A   s0    %TZZ
 	r(   z
simd.checkr   )requiredN)namedefaultsourcesallow_unknownc           	     H   g }d|v rt        j                  d      t        g t        d      }t	        j
                  d|j                         D ci c]  \  }}||vs|| c}}      }|d   }	|d   }
t        j                         }t        D ]  }||   }||
j                  |      }|.t        j                  d| dt        j                  d             M|
j                  ||j                        d   s.t        j                  d| dt        j                  d             t        j                  d| dt        j                  d	             d
d| df|j                   d|j#                         z   <   |	dz   |z   }|j%                         }||d<   |
j'                         dz   }t        j(                  ||      }||z   }|||<   | j*                  j-                  |j.                  |g f|t        j0                        }|j3                  |        ||gS c c}}w )Nr:   z2SIMD module does not support the "sources" keywordr   zkwtypes.StaticLibraryr   zCompiler supports :NOYES1.HAVE___args)r   MesonExceptionsetISETSTcastitemsr   ConfigurationDataget_instruction_set_argsr   logredhas_multi_argumentsenvironmentgreenvaluesuppercopyget_languageextract_as_listr5   build_targetcurrent_nodeStaticLibraryappend)r4   stateargsr   resultlocal_kwargskvstatic_lib_kwargsprefixr   confisetr:   compile_argslibname
lib_kwargslangarg_keyold_lang_argsall_lang_argslibs                        r)   r/   zSimdModule.checkG   s    /1))*^__/U/J/0FF#:flln<vda`aiu`uQT<vwa*%&&( 	DTlG#<<TBL#-dV15txx~F//e>O>OPQRS-dV15txx~FHH)$q14::e3DE36:LTFRS8T2UDKK$**,./slT)G*//1J$+Jy! #//1G;K$44ZMM)L8M&3J{#""//0B0BWbMS]_d_r_rsCMM#9	< ~I =ws   H H)r5   r   )r[   r   r\   zT.Tuple[str]r   r   returnzET.List[T.Union[T.List[build.StaticLibrary], build.ConfigurationData]])r#   r$   r%   r   INFOr1   r   strr   r   r   rG   r	   evolver
   r8   r   r   known_stlib_kwargsr/   __classcell__).0rd   r	   ar6   s   0000@r)   r+   r+   =   s    fh6D L#&,J4@&NSTTdM((dDAT&  .E!91DAE& !%	&
 jD5D5+C+CDE+ F& '+	 UEs   B'B.0B.r+   c                    t        |       S )N)r+   )interps    r)   
initializerv   {   s    fr(   )ru   r   rl   r+   ) 
__future__r   typingrH    r   r   r   	compilersr   interpreter.type_checkingr	   r
   interpreterbase.decoratorsr   r   r   r   r   r   TYPE_CHECKINGr   r5   r   r   kwtypesr   rY   r   rG   r+   rv   r'   r(   r)   <module>r      s]    #      E a a )??<>!''' ! 	< <|r(   