§
    ƒnóc  ã                  óî   — 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 ej        rddlmZ d	d
lmZmZ  eej        ej        ej        h¦  «        dd„¦   «         Z G d„ de¦  «        ZdS )é    )ÚannotationsNé   )ÚDependencyMethodsÚdetect_compilerÚSystemDependency)ÚCMakeDependency)Ú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          úB/usr/lib/python3/dist-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àÐó    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)Úselfr1   r   ÚcidÚ	__class__s       €r-   r9   zCoarrayDependency.__init__A   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ð ˆ_r/   )r1   r   r   r   r   r2   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r9   Ú__classcell__)rA   s   @r-   r)   r)   8   sG   ø€ € € € € ðð ð!ð !ð !ð !ð !ð !ð !ð !ð !ð !r/   r)   )
r   r   r   r   r   r   r   r   r   r   )Ú
__future__r   r%   ÚtypingÚTÚbaser   r   r   Úcmaker   Ú	pkgconfigr	   Úfactoryr
   ÚTYPE_CHECKINGr   r1   r   r   r#   r'   r(   r.   r)   © r/   r-   ú<module>rP      s-  ðð #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø Ð Ð Ð à FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FØ "Ð "Ð "Ð "Ð "Ð "Ø *Ð *Ð *Ð *Ð *Ð *Ø $Ð $Ð $Ð $Ð $Ð $à„?ð 9Ø-Ð-Ð-Ð-Ð-Ð-Ø8Ð8Ð8Ð8Ð8Ð8Ð8Ð8ð €Ð#Ô-Ð/@Ô/FÐHYÔH`ÐaÑbÔbðð ð ñ cÔbðð4!ð !ð !ð !ð !Ð(ñ !ô !ð !ð !ð !r/   