§
    -Phr  ã                  ó  — d dl mZ d dlZd dlZddlmZmZmZ ddl	m
Z
 ddlmZ ddlmZ ddlmZ ej        rdd	lmZ d
dlmZ d
dlmZ  eej        ej        ej        h¦  «        dd„¦   «         Zeed<    G d„ de¦  «        ZdS )é    )ÚannotationsNé   )ÚDependencyMethodsÚdetect_compilerÚSystemDependency)ÚCMakeDependency)Úpackages)ÚPkgConfigDependency)Úfactory_methods)ÚDependencyGeneratoré   )ÚEnvironment)ÚMachineChoiceÚenvú'Environment'Úfor_machineú'MachineChoice'ÚkwargsúT.Dict[str, T.Any]ÚmethodsúT.List[DependencyMethods]ÚreturnúT.List['DependencyGenerator']c           
     óî  — t          d| |d¦  «                             ¦   «         }g }|dk    rŒt          j        |v r6dD ]3}|                     t          j        t          || |d¬¦  «        ¦  «         Œ4t          j        |v r:d|vrd|d<   |                     t          j        t          d| |d¬¦  «        ¦  «         t          j
        |v r.|                     t          j        t          | |¦  «        ¦  «         |S )	NÚcoarrayÚfortranÚgcc)zcaf-openmpiÚcaf©ÚlanguageÚmoduleszOpenCoarrays::caf_mpiÚOpenCoarrays)r   Úget_idr   Ú	PKGCONFIGÚappendÚ	functoolsÚpartialr
   ÚCMAKEr   ÚSYSTEMÚCoarrayDependency)r   r   r   r   ÚfcidÚ
candidatesÚpkgs          ú`/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/mesonbuild/dependencies/coarrays.pyÚcoarray_factoryr/      s/  € õ
 ˜9 c¨;¸	ÑBÔB×IÒIÑKÔK€DØ02€Jàˆu‚}€}åÔ&¨'Ð1Ð1Ø-ð Pð PØ×!Ò!¥)Ô"3Ý'¨¨c°6ÀIð#Oñ #Oô #Oñ Pô Pð Pð Põ Ô" gÐ-Ð-Ø Ð&Ð&Ø$;yÑ!Ø×ÒiÔ/Ý °°fÀyðRñ Rô Rñ Sô Sð Sõ Ô 7Ð*Ð*Ø×Ò)Ô+Õ,=¸sÀFÑKÔKÑLÔLÐLàÐó    r   c                  ó$   ‡ — e Zd ZdZd	ˆ fd„Zˆ xZS )
r*   a(  
    Coarrays are a Fortran 2008 feature.

    Coarrays are sometimes implemented via external library (GCC+OpenCoarrays),
    while other compilers just build in support (Cray, IBM, Intel, NAG).
    Coarrays may be thought of as a high-level language abstraction of
    low-level MPI calls.
    Úenvironmentr   r   r   r   ÚNonec                ó€  •— t          ¦   «                              d||d¬¦  «         d|d<   d|d<   |                      ¦   «                              ¦   «         }|dk    rd	g| _        d
| _        d| _        d S |dk    rd| _        dg| _        | j        | _        d S |dk    rd| _        dg| _        d S |dk    r	d| _        d S d S )Nr   r   r   FÚrequiredTÚsilentr   z-fcoarray=singlezsingle image (fallback)Úintelz-coarray=sharedzintel-clz/Qcoarray:sharedÚnagfor)ÚsuperÚ__init__Úget_compilerr#   Úcompile_argsÚversionÚis_foundÚ	link_args)Úselfr2   r   ÚcidÚ	__class__s       €r.   r:   zCoarrayDependency.__init__:   sã   ø€ Ý‰Œ×Ò˜ K°À)ÐÑLÔLÐLØ"ˆˆzÑØˆˆxÑà×ÒÑ!Ô!×(Ò(Ñ*Ô*ˆØ%Š<ˆ<à!3Ð 4ˆDÔØ4ˆDŒLØ ˆDŒMˆMˆMØGŠ^ˆ^à ˆDŒMØ/Ð0ˆDŒNØ $¤ˆDÔÐÐØJÒÐà ˆDŒMØ!3Ð 4ˆDÔÐÐØHŠ_ˆ_à ˆDŒMˆMˆMð ˆ_r0   )r2   r   r   r   r   r3   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r:   Ú__classcell__)rB   s   @r.   r*   r*   1   sG   ø€ € € € € ðð ð!ð !ð !ð !ð !ð !ð !ð !ð !ð !r0   r*   )
r   r   r   r   r   r   r   r   r   r   )Ú
__future__r   r&   ÚtypingÚTÚbaser   r   r   Úcmaker   Údetectr	   Ú	pkgconfigr
   Úfactoryr   ÚTYPE_CHECKINGr   r2   r   Úmesonlibr   r$   r(   r)   r/   r*   © r0   r.   ú<module>rS      sW  ðð #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø Ð Ð Ð à FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FØ "Ð "Ð "Ð "Ð "Ð "Ø Ð Ð Ð Ð Ð Ø *Ð *Ð *Ð *Ð *Ð *Ø $Ð $Ð $Ð $Ð $Ð $à„?ð )Ø-Ð-Ð-Ð-Ð-Ð-Ø)Ð)Ð)Ð)Ð)Ð)Ø(Ð(Ð(Ð(Ð(Ð(ð €Ð#Ô-Ð/@Ô/FÐHYÔH`ÐaÑbÔbðð ð ñ cÔbðð0 &€ˆÑ ð!ð !ð !ð !ð !Ð(ñ !ô !ð !ð !ð !r0   