
    -Ph                        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j                  ZdZ G d de          ZddZdS )    )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<   dS )CheckKwr   compilerr   mmxssesse2sse3ssse3sse41sse42avxavx2neonN)__name__
__module____qualname____annotations__     W/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/mesonbuild/modules/simd.pyr   r      s                 !!!!!!!!!!!!          r(   r   )
r   r   r   r   r   r   r   r    r!   r"   c            	          e Zd Z eddd          Zd fdZ ede           ed e	d	e
d
          gd eD             d eD             R ddi ed	heej                  dd                                    Z xZS )
SimdModuleSIMDz0.42.0T)unstableinterpreterr   c                    t                                          |           | j                            d| j        i           d S )Ncheck)super__init__methodsupdater0   )selfr.   	__class__s     r)   r2   zSimdModule.__init__7   sK    %%%TZ
 	 	 	 	 	r(   z
simd.checkr   )requiredc                :    g | ]}t          j        |d           S )N)namedefault)r	   evolve).0isets     r)   
<listcomp>zSimdModule.<listcomp>@   s(    TTTdM(dDAAATTTr(   c                (    g | ]}|j         d k    |S )sources)r9   )r<   as     r)   r>   zSimdModule.<listcomp>A   s$    EEE!91D1DA1D1D1Dr(   allow_unknownstater   argsT.Tuple[str]r   r   returnET.List[T.Union[T.List[build.StaticLibrary], build.ConfigurationData]]c                @   g }d|v rt          j        d          t          g t          dR           t	          j        dfd|                                D                       }|d         }|d         }t          j                    }t          D ]}	||	         }
|
|	                    |	          }|,t          j        d|	 dt          j        d	                     Q|                    ||j                  d         s,t          j        d|	 dt          j        d	                     t          j        d|	 dt          j        d
                     dd|	 df|j        d|	                                z   <   |dz   |	z   }|                                }|
|d<   |                                dz   }t          j        ||          }||z   }|||<   | j                            |j        |g f|t          j                  }|                    |           ||gS )Nr@   z2SIMD module does not support the "sources" keywordr   zkwtypes.StaticLibraryc                $    i | ]\  }}|v	||S r'   r'   )r<   kvlocal_kwargss      r)   
<dictcomp>z$SimdModule.check.<locals>.<dictcomp>K   s+    <v<v<vda`aiu`u`uQ`u`u`ur(   r   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_listr.   build_targetcurrent_nodeStaticLibraryappend)r5   rC   rD   r   resultstatic_lib_kwargsprefixr   confr=   r@   compile_argslibname
lib_kwargslangarg_keyold_lang_argsall_lang_argslibrL   s                     @r)   r0   zSimdModule.check=   s?    /1)*^___/U/J//00F#:<v<v<v<vfllnn<v<v<vwwa*%&(( 	 	DTlG#<<TBBL#5d555tx~~FFF//e>OPPQRS 5d555tx~~FFFH1$1114:e3D3DEEE368TT8T8T8T2UDK$**,,./slT)G*//11J$+Jy! #//11G;K$4ZMMM)L8M&3J{#"//0BWbMS]_d_rssCMM#~r(   )r.   r   )rC   r   rD   rE   r   r   rF   rG   )r#   r$   r%   r   INFOr2   r   strr   r   r   rX   r
   r   r   known_stlib_kwargsr0   __classcell__)r6   s   @r)   r+   r+   3   s       :fh666D      ^L#&&\,)J4@@@&TTeTTT& FE~EEE& & & !%	& &
 _jD5D5+CDEE+ + + FE& & '&+ + + + +r(   r+   interpr   rF   c                     t          |           S )N)r+   )r{   s    r)   
initializer}   q   s    fr(   )r{   r   rF   r+   ) 
__future__r   typingrY    r   r   r   	compilersr   interpreter.type_checkingr	   r
   interpreterbase.decoratorsr   r   r   r   r   r   TYPE_CHECKINGr   r.   r   r   kwtypesr   rj   r   rX   r+   r}   r'   r(   r)   <module>r      sx   # " " " " "                               E E E E E E E E a a a a a a a a a a a a ) ) ) ) ) ) ) )? !<<<<<<<<>>>>>>! ! ! ! !'' ! ! ! 	< < < < < < < <|     r(   