§
    ûµ”c­\  ã                  óì  — d dl mZ d dlZd dlZddlmZ ddlmZm	Z	 ddl
mZ ddlmZmZmZ dd	lmZmZ dd
lmZ ddlmZ ddlmZ d dlmZmZmZmZ ej        r2ddlmZm Z  ddl!m"Z" ddl#m$Z$ ddl%m&Z& ddl'm(Z( ddl)m*Z* ddl+m,Z, ddlm-Z-  G d„ dee	¦  «        Z. G d„ dee.¦  «        Z/ G d„ dee.¦  «        Z0 G d„ de.¦  «        Z1 G d„ de.¦  «        Z2 G d „ d!ee.¦  «        Z3 G d"„ d#e3¦  «        Z4 G d$„ d%ee.¦  «        Z5 G d&„ d'e5¦  «        Z6 G d(„ d)e.¦  «        Z7 G d*„ d+ee.¦  «        Z8 G d,„ d-ee.¦  «        Z9 G d.„ d/ee.¦  «        Z: G d0„ d1e:¦  «        Z; G d2„ d3e.¦  «        Z< G d4„ d5e.¦  «        Z=dS )6é    )ÚannotationsNé   )Úcoredataé   )Úclike_debug_argsÚCompiler)ÚCLikeCompiler)ÚGnuCompilerÚgnulike_buildtype_argsÚgnu_optimization_args)ÚIntelGnuLikeCompilerÚIntelVisualStudioLikeCompiler)ÚClangCompiler)ÚElbrusCompiler)ÚPGICompiler)Úversion_compareÚMesonExceptionÚLibTypeÚ	OptionKey)ÚMutableKeyedOptionDictTypeÚKeyedOptionDictType)Ú
Dependency)ÚMachineInfo)ÚEnvironment)ÚDynamicLinker)ÚMachineChoice)ÚExternalProgram)ÚCompileCheckModec                  ó¾   ‡ — e Zd ZdZ	 	 	 dBdCd„ZdddœdDd„ZdEd#„ZdFd'„ZdGd)„ZdHd+„Z	dId-„Z
dJˆ fd.„ZdKd0„ZdLd2„ZdMd5„ZdNd7„Zej        fdOd<„ZdPd>„ZdPd?„ZdQˆ fdA„Zˆ xZS )RÚFortranCompilerÚfortranNÚexelistúT.List[str]ÚversionÚstrÚfor_machiner   Úis_crossÚboolÚinfoú'MachineInfo'Úexe_wrapperúT.Optional['ExternalProgram']ÚlinkerúT.Optional['DynamicLinker']Úfull_versionúT.Optional[str]c	                ój   — t          j        | g |||||||¬¦	  «	         t          j        | |¦  «         d S )N)r'   r/   r-   )r   Ú__init__r	   ©	Úselfr"   r$   r&   r'   r)   r+   r-   r/   s	            ú>/usr/lib/python3/dist-packages/mesonbuild/compilers/fortran.pyr2   zFortranCompiler.__init__5   sN   € õ 	Ô˜$  G¨W°kÀ4Ø#+¸,Èvð	Wñ 	Wô 	Wð 	WåÔ˜t [Ñ1Ô1Ð1Ð1Ð1ó    )Ú
extra_argsÚdependenciesÚfuncnameÚprefixÚenvú'Environment'r7   úT.Optional[T.List[str]]r8   ú T.Optional[T.List['Dependency']]ÚreturnúT.Tuple[bool, bool]c               ó    — t          d¦  «        ‚)NzüFortran does not have "has_function" capability.
It is better to test if a Fortran capability is working like:

meson.get_compiler('fortran').links('block; end block; end program')

that example is to see if the compiler has Fortran 2008 Block element.)r   )r4   r9   r:   r;   r7   r8   s         r5   Úhas_functionzFortranCompiler.has_function=   s   € õ ð fñ gô gð 	gr6   Úmoder   ú!T.Tuple[T.List[str], T.List[str]]c                óž   — |j                              | j        | j        ¦  «        }|j                              | j        | j        ¦  «        }||fS ©N)r   Úget_external_argsr&   ÚlanguageÚget_external_link_args)r4   r;   rC   ÚcargsÚlargss        r5   Ú_get_basic_compiler_argsz(FortranCompiler._get_basic_compiler_argsE   sD   € Ø”×.Ò.¨tÔ/?ÀÄÑOÔOˆØ”×3Ò3°DÔ4DÀdÄmÑTÔTˆØ�eˆ|Ðr6   Úwork_dirÚenvironmentÚNonec                ó:   — d}d}|                       ||||¦  «        S )Nzsanitycheckf.f90zFprogram main; print *, "Fortran compilation is working."; end program
)Ú_sanity_check_impl)r4   rM   rN   Úsource_nameÚcodes        r5   Úsanity_checkzFortranCompiler.sanity_checkJ   s&   € Ø(ˆØXˆØ×&Ò& x°¸kÈ4ÑPÔPÐPr6   Ú	buildtypec                ó   — t           |         S rF   )r   )r4   rU   s     r5   Úget_buildtype_argsz"FortranCompiler.get_buildtype_argsO   s   € Ý% iÔ0Ð0r6   Úoptimization_levelc                ó   — t           |         S rF   )r   )r4   rX   s     r5   Úget_optimization_argsz%FortranCompiler.get_optimization_argsR   s   € Ý$Ð%7Ô8Ð8r6   Úis_debugc                ó   — t           |         S rF   )r   )r4   r[   s     r5   Úget_debug_argszFortranCompiler.get_debug_argsU   s   € Ý Ô)Ð)r6   c                óL   •— dgt          ¦   «                              ¦   «         z   S )Nú-cpp)ÚsuperÚget_preprocess_only_args)r4   Ú	__class__s    €r5   ra   z(FortranCompiler.get_preprocess_only_argsX   s    ø€ Øˆx�%™'œ'×:Ò:Ñ<Ô<Ñ<Ð<r6   úT.Tuple[str, ...]c                ó   — dS )N)ú-I© ©r4   s    r5   Úget_module_incdir_argsz&FortranCompiler.get_module_incdir_args[   ó   € Øˆxr6   Úpathc                ó
   — d|gS )Nz-modulerf   ©r4   rj   s     r5   Úget_module_outdir_argsz&FortranCompiler.get_module_outdir_args^   s   € Ø˜4Ð Ð r6   Úparameter_listÚ	build_dirc           
     ó  — t          |¦  «        D ]t\  }}|d d…         dk    s|d d…         dk    rS|d d…         t          j                             t          j                             ||dd …         ¦  «        ¦  «        z   ||<   Œu|S )Nr   re   ú-L)Ú	enumerateÚosrj   ÚnormpathÚjoin)r4   rn   ro   ÚidxÚis        r5   Ú&compute_parameters_with_absolute_pathsz6FortranCompiler.compute_parameters_with_absolute_pathsa   s‹   € å Ñ/Ô/ð 	_ð 	_‰FˆC�Ø��!�Œu˜Š}ˆ}  " 1 "¤¨¢ Ø&'¨¨¨¤e­b¬g×.>Ò.>½r¼w¿|º|ÈIÐWXÐYZÐY[ÐY[ÔW\Ñ?]Ô?]Ñ.^Ô.^Ñ&^�˜sÑ#øàÐr6   Úmodule_namec                óü   — d|v r`|                      ¦   «         }| j        dv r|                     dd¦  «        dz   }n@| j        dv r|                     dd¦  «        dz   }n|dz   }n|                      ¦   «         dz   }|S )NÚ_>   úintel-clÚgccÚintelú@z.smod>   ÚpgiÚflangú-z.mod)ÚlowerÚidÚreplace)r4   ry   ÚsÚfilenames       r5   Úmodule_name_to_filenamez'FortranCompiler.module_name_to_filenamei   s”   € Ø�+ÐÐØ×!Ò!Ñ#Ô#ˆAØŒwÐ6Ð6Ð6ØŸ9š9 S¨#Ñ.Ô.°Ñ8��Ø”Ð,Ð,Ð,ØŸ9š9 S¨#Ñ.Ô.°Ñ7��à˜v™:��à"×(Ò(Ñ*Ô*¨VÑ3ˆHàˆr6   ÚlibnameÚ
extra_dirsÚlibtyper   c                ó8   — d}|                       |||||¦  «        S ©Nzstop; end program)Ú_find_library_impl)r4   r‰   r;   rŠ   r‹   rS   s         r5   Úfind_libraryzFortranCompiler.find_libraryw   s#   € à"ˆØ×&Ò& w°°ZÀÀwÑOÔOÐOr6   Úargsc                ó0   — |                       ||d¦  «        S r�   )Ú_has_multi_arguments©r4   r�   r;   s      r5   Úhas_multi_argumentsz#FortranCompiler.has_multi_arguments|   s   € Ø×(Ò(¨¨sÐ4GÑHÔHÐHr6   c                ó0   — |                       ||d¦  «        S r�   )Ú_has_multi_link_argumentsr“   s      r5   Úhas_multi_link_argumentsz(FortranCompiler.has_multi_link_arguments   s   € Ø×-Ò-¨d°CÐ9LÑMÔMÐMr6   ú'MutableKeyedOptionDictType'c                óØ   •— t          ¦   «                              ¦   «         }t          d| j        | j        ¬¦  «        }|                     |t          j        ddgd¦  «        i¦  «         |S )NÚstd©ÚmachineÚlangz Fortran language standard to useÚnone)r`   Úget_optionsr   r&   rH   Úupdater   ÚUserComboOption)r4   ÚoptsÚkeyrb   s      €r5   rŸ   zFortranCompiler.get_options‚   sp   ø€ Ý‰wŒw×"Ò"Ñ$Ô$ˆÝ˜ tÔ'7¸d¼mÐLÑLÔLˆØ�ŠØ•Ô)Ø2Ø�Øñô ð
ñ 	ô 	ð 	ð ˆr6   ©NNN©r"   r#   r$   r%   r&   r   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   )r9   r%   r:   r%   r;   r<   r7   r=   r8   r>   r?   r@   )r;   r<   rC   r   r?   rD   )rM   r%   rN   r<   r?   rO   )rU   r%   r?   r#   )rX   r%   r?   r#   )r[   r(   r?   r#   ©r?   r#   ©r?   rc   ©rj   r%   r?   r#   )rn   r#   ro   r%   r?   r#   )ry   r%   r?   r%   )
r‰   r%   r;   r<   rŠ   r#   r‹   r   r?   r=   )r�   r#   r;   r<   r?   r@   ©r?   r˜   )Ú__name__Ú
__module__Ú__qualname__rH   r2   rB   rL   rT   rW   rZ   r]   ra   rh   rm   rx   rˆ   r   ÚPREFER_SHAREDr�   r”   r—   rŸ   Ú__classcell__)rb   s   @r5   r    r    1   sÁ  ø€ € € € € à€Hð TXØ7;Ø15ð2ð 2ð 2ð 2ð 2ð <@ØFJðgð gð gð gð gð gðð ð ð ð
Qð Qð Qð Qð
1ð 1ð 1ð 1ð9ð 9ð 9ð 9ð*ð *ð *ð *ð=ð =ð =ð =ð =ð =ðð ð ð ð!ð !ð !ð !ðð ð ð ðð ð ð ð )0Ô(=ðPð Pð Pð Pð Pð
Ið Ið Ið IðNð Nð Nð Nð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
r6   r    c                  óZ   — e Zd Z	 	 	 	 d.d/d„Zd0d„Zd1d„Zd2d„Zd3d„Zd4d"„Zddd#d$œd5d-„Z	dS )6ÚGnuFortranCompilerNr"   r#   r$   r%   r&   r   r'   r(   r)   r*   r+   r,   ÚdefinesúT.Optional[T.Dict[str, str]]r-   r.   r/   r0   c
                ó²   — t                                | ||||||||	¬¦	  «	         t          j        | |¦  «         dg}
g |
|
dgz   |
g d¢z   |
g d¢z   dœ| _        d S )N©r-   r/   ú-Wallú-Wextra)r¶   z
-Wpedanticz-fimplicit-none©Ú0Ú1Ú2Ú3Ú
everything)r    r2   r
   Ú	warn_args)r4   r"   r$   r&   r'   r)   r+   r±   r-   r/   Údefault_warn_argss              r5   r2   zGnuFortranCompiler.__init__‘   s”   € õ
 	× Ò   w°¸Ø!)¨4°ÀVØ.:ð 	!ñ 	<ô 	<ð 	<õ 	Ô˜T 7Ñ+Ô+Ð+Ø$˜IÐØ!Ø0Ø0°I°;Ñ>Ø0Ð3_Ð3_Ð3_Ñ_Ø(9Ð<hÐ<hÐ<hÑ(hð	jð jˆŒˆˆr6   r?   r˜   c                ó  — t                                | ¦  «        }g d¢}t          | j        d¦  «        r|dgz  }t          | j        d¦  «        r|dgz  }t	          d| j        | j        ¬¦  «        }dg|z   ||         _        |S )	N)ÚlegacyÚf95Úf2003z>=4.4.0Úf2008z>=8.0.0Úf2018rš   r›   rž   )r    rŸ   r   r$   r   r&   rH   Úchoices©r4   r¢   Úfortran_stdsr£   s       r5   rŸ   zGnuFortranCompiler.get_options¡   s‘   € Ý×*Ò*¨4Ñ0Ô0ˆØ1Ð1Ð1ˆÝ˜4œ<¨Ñ3Ô3ð 	&Ø˜W˜IÑ%ˆLÝ˜4œ<¨Ñ3Ô3ð 	&Ø˜W˜IÑ%ˆLÝ˜ tÔ'7¸d¼mÐLÑLÔLˆØ#˜H |Ñ3ˆˆSŒ	ÔØˆr6   Úoptionsú'KeyedOptionDictType'c                ó¢   — g }t          d| j        | j        ¬¦  «        }||         }|j        dk    r|                     d|j        z   ¦  «         |S )Nrš   r›   rž   z-std=©r   r&   rH   ÚvalueÚappend)r4   rÈ   r�   r£   rš   s        r5   Úget_option_compile_argsz*GnuFortranCompiler.get_option_compile_args¬   sT   € ØˆÝ˜ tÔ'7¸d¼mÐLÑLÔLˆØ�cŒlˆØŒ9˜ÒÐØ�KŠK˜ #¤)Ñ+Ñ,Ô,Ð,Øˆr6   Ú	outtargetÚoutfilec                ó   — g S rF   rf   ©r4   rÏ   rÐ   s      r5   Úget_dependency_gen_argsz*GnuFortranCompiler.get_dependency_gen_args´   s	   € ð ˆ	r6   rj   c                ó   — d|z   gS ©Nz-Jrf   rl   s     r5   rm   z)GnuFortranCompiler.get_module_outdir_argsº   ó   € Ø�t‘ˆ}Ðr6   r;   r<   c                óv   — g }|                       |d¦  «        D ]}|                     d|› �¦  «         Œ|ddgz   S )NÚ	librariesrq   z
-lgfortranz-lm©Úget_compiler_dirsrÍ   ©r4   r;   Úsearch_dirsÚds       r5   Úlanguage_stdlib_only_link_flagsz2GnuFortranCompiler.language_stdlib_only_link_flags½   sU   € ð
 $&ˆØ×'Ò'¨¨[Ñ9Ô9ð 	)ð 	)ˆAØ×Ò˜x A˜x˜xÑ(Ô(Ð(Ð(Ø˜l¨EÐ2Ñ2Ð2r6   F)r7   r8   Údisable_cacheÚhnamer:   r7   úIT.Union[None, T.List[str], T.Callable[['CompileCheckMode'], T.List[str]]]r8   r>   rß   r@   c               óH   — |› d|› d�}|                       ||||d|¬¦  «        S )zÇ
        Derived from mixins/clike.py:has_header, but without C-style usage of
        __has_include which breaks with GCC-Fortran 10:
        https://github.com/mesonbuild/meson/issues/7017
        z
#include <ú>Ú
preprocess)r7   r8   rC   rß   )Úcompiles)r4   rà   r:   r;   r7   r8   rß   rS   s           r5   Ú
has_headerzGnuFortranCompiler.has_headerÇ   sF   € ð Ð.Ð. eÐ.Ð.Ð.ˆØ�}Š}˜T 3°:Ø*6¸\ÐYfð ñ hô hð 	hr6   ©NNNN©r"   r#   r$   r%   r&   r   r'   r(   r)   r*   r+   r,   r±   r²   r-   r.   r/   r0   r©   ©rÈ   rÉ   r?   r#   ©rÏ   r%   rÐ   r%   r?   r#   r¨   ©r;   r<   r?   r#   )rà   r%   r:   r%   r;   r<   r7   rá   r8   r>   rß   r(   r?   r@   )
rª   r«   r¬   r2   rŸ   rÎ   rÓ   rm   rÞ   ræ   rf   r6   r5   r°   r°   �   sÙ   € € € € € ð TXØ9=Ø7;Ø15ð	jð jð jð jð jð 	ð 	ð 	ð 	ðð ð ð ðð ð ð ðð ð ð ð3ð 3ð 3ð 3ð lpØDHØ).ðhð hð hð hð hð hð hð hr6   r°   c                  ó0   — e Zd Z	 	 	 	 ddd„Zdd„Zdd„ZdS )ÚElbrusFortranCompilerNr"   r#   r$   r%   r&   r   r'   r(   r)   r*   r+   r,   r±   r²   r-   r.   r/   r0   c
                ót   — t                                | ||||||||	¬¦	  «	         t          j        | ¦  «         d S )Nr´   )r    r2   r   )
r4   r"   r$   r&   r'   r)   r+   r±   r-   r/   s
             r5   r2   zElbrusFortranCompiler.__init__Ö   sO   € õ
 	× Ò   w°¸ÀhØ!% {¸6ÐP\ð 	!ñ 	^ô 	^ð 	^åÔ Ñ%Ô%Ð%Ð%Ð%r6   r?   r˜   c                óœ   — t                                | ¦  «        }g d¢}t          d| j        | j        ¬¦  «        }dg|z   ||         _        |S )N)rÁ   rÂ   rÃ   ÚgnurÀ   Úf2008tsrš   r›   rž   ©r    rŸ   r   r&   rH   rÅ   rÆ   s       r5   rŸ   z!ElbrusFortranCompiler.get_optionsß   sQ   € Ý×*Ò*¨4Ñ0Ô0ˆØLÐLÐLˆÝ˜ tÔ'7¸d¼mÐLÑLÔLˆØ#˜H |Ñ3ˆˆSŒ	ÔØˆr6   rj   c                ó   — d|z   gS rÕ   rf   rl   s     r5   rm   z,ElbrusFortranCompiler.get_module_outdir_argsæ   rÖ   r6   rç   rè   r©   r¨   )rª   r«   r¬   r2   rŸ   rm   rf   r6   r5   rí   rí   Õ   sa   € € € € € àSWØ9=Ø7;Ø15ð	&ð &ð &ð &ð &ðð ð ð ðð ð ð ð ð r6   rí   c                  ó6   — e Zd ZdZdZ	 	 	 ddd„Zdd„Zdd„ZdS )ÚG95FortranCompilerú-Wl,Úg95Nr"   r#   r$   r%   r&   r   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   c	                óˆ   — t                                | ||||||||¬¦	  «	         dg}	g |	|	dgz   |	ddgz   |	ddgz   dœ| _        d S )Nr´   rµ   r¶   z	-pedanticr·   ©r    r2   r½   ©
r4   r"   r$   r&   r'   r)   r+   r-   r/   r¾   s
             r5   r2   zG95FortranCompiler.__init__ï   s}   € õ 	× Ò   w°¸Ø!)¨4°ÀVØ.:ð 	!ñ 	<ô 	<ð 	<ð %˜IÐØ!Ø0Ø0°I°;Ñ>Ø0°I¸{Ð3KÑKØ(9¸YÈÐ<TÑ(Tð	Vð VˆŒˆˆr6   rj   r?   c                ó   — d|z   gS )Nz-fmod=rf   rl   s     r5   rm   z)G95FortranCompiler.get_module_outdir_argsý   s   € Ø˜4‘Ð Ð r6   c                ó   — g S rF   rf   rg   s    r5   Úget_no_warn_argsz#G95FortranCompiler.get_no_warn_args   s   € àˆ	r6   r¤   r¥   r¨   r¦   )rª   r«   r¬   ÚLINKER_PREFIXr„   r2   rm   rý   rf   r6   r5   rõ   rõ   ê   sq   € € € € € à€MØ	€Bð TXØ7;Ø15ðVð Vð Vð Vð Vð!ð !ð !ð !ðð ð ð ð ð r6   rõ   c                  óF   — e Zd ZdZdZdd„Zdd	„Zdd„Zdd„Zdd„Z	dd„Z
dS )ÚSunFortranCompilerrö   ÚsunrÏ   r%   rÐ   r?   r#   c                ó   — dgS ©Nz-fpprf   rÒ   s      r5   rÓ   z*SunFortranCompiler.get_dependency_gen_args
  ó	   € Øˆxˆr6   c                ó   — g S rF   rf   rg   s    r5   Úget_always_argsz"SunFortranCompiler.get_always_args  ó   € Øˆ	r6   Úlevelc                ó   — g S rF   rf   )r4   r  s     r5   Úget_warn_argsz SunFortranCompiler.get_warn_args  r  r6   rc   c                ó   — dS )N)z-Mrf   rg   s    r5   rh   z)SunFortranCompiler.get_module_incdir_args  ri   r6   rj   c                ó   — d|z   gS )Nz-moddir=rf   rl   s     r5   rm   z)SunFortranCompiler.get_module_outdir_args  ó   € Ø˜TÑ!Ð"Ð"r6   c                ó   — dgS )Nz-xopenmprf   rg   s    r5   Úopenmp_flagszSunFortranCompiler.openmp_flags  s
   € Øˆ|Ðr6   Nrê   r¦   )r  r%   r?   r#   r§   r¨   )rª   r«   r¬   rþ   r„   rÓ   r  r
  rh   rm   r  rf   r6   r5   r   r     s–   € € € € € à€MØ	€Bðð ð ð ðð ð ð ðð ð ð ðð ð ð ð#ð #ð #ð #ðð ð ð ð ð r6   r   c                  óN   — e Zd ZdZdZ	 	 	 d"d#d„Zd$d„Zd%d„Zd&d„Zd'd„Z	d(d!„Z
dS ))ÚIntelFortranCompiler©Úf90ÚfÚforÚftnÚfppr~   Nr"   r#   r$   r%   r&   r   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   c	                ó¨   — t                                | ||||||||¬¦	  «	         t          j        | ¦  «         g d¢}	g |	|	ddgz   ddgddgdœ| _        d S )Nr´   )ú-warnÚgeneralr  Útruncated_sourcer  ÚunusedÚallr·   )r    r2   r   r½   rú   s
             r5   r2   zIntelFortranCompiler.__init__"  s‰   € õ 	× Ò   w°¸Ø!)¨4°ÀVØ.:ð 	!ñ 	<ô 	<ð 	<õ
 	Ô% dÑ+Ô+Ð+ØMÐMÐMÐØ!Ø0Ø0°G¸XÐ3FÑFØ '¨Ð/Ø)0°%Ð(8ð	:ð :ˆŒˆˆr6   r?   r˜   c                ó�   — t                                | ¦  «        }t          d| j        | j        ¬¦  «        }g d¢||         _        |S ©Nrš   r›   )rž   rÀ   rÁ   rÂ   rÃ   rÄ   rò   ©r4   r¢   r£   s      r5   rŸ   z IntelFortranCompiler.get_options3  óE   € Ý×*Ò*¨4Ñ0Ô0ˆÝ˜ tÔ'7¸d¼mÐLÑLÔLˆØPÐPÐPˆˆSŒ	ÔØˆr6   rÈ   rÉ   c                ó¾   — g }t          d| j        | j        ¬¦  «        }||         }ddddddœ}|j        dk    r#|                     d	||j                 z   ¦  «         |S )
Nrš   r›   rž   rÁ   Úf03Úf08Úf18©rÀ   rÁ   rÂ   rÃ   rÄ   z-stand=rË   ©r4   rÈ   r�   r£   rš   Ústdss         r5   rÎ   z,IntelFortranCompiler.get_option_compile_args9  ól   € ØˆÝ˜ tÔ'7¸d¼mÐLÑLÔLˆØ�cŒlˆØ ¨¸ÈÐY^Ð_Ð_ˆØŒ9˜ÒÐØ�KŠK˜	 D¨¬¤OÑ3Ñ4Ô4Ð4Øˆr6   c                ó
   — ddgS )Nr_   z-EPrf   rg   s    r5   ra   z-IntelFortranCompiler.get_preprocess_only_argsB  s   € Ø˜ˆÐr6   r;   r<   c                ó
   — ddgS )Nz-lifcorez-limfrf   ©r4   r;   s     r5   rÞ   z4IntelFortranCompiler.language_stdlib_only_link_flagsE  s   € à˜GÐ$Ð$r6   rÏ   rÐ   c                ó   — d|z   dgS )Nz	-gen-dep=z-gen-depformat=makerf   rÒ   s      r5   rÓ   z,IntelFortranCompiler.get_dependency_gen_argsI  s   € Ø˜iÑ'Ð)>Ð?Ð?r6   r¤   r¥   r©   ré   r¦   rë   rê   )rª   r«   r¬   Úfile_suffixesr„   r2   rŸ   rÎ   ra   rÞ   rÓ   rf   r6   r5   r  r    s®   € € € € € à7€MØ	€Bð TXØ7;Ø15ð:ð :ð :ð :ð :ð"ð ð ð ðð ð ð ðð ð ð ð%ð %ð %ð %ð@ð @ð @ð @ð @ð @r6   r  c                  ó   — e Zd ZdZdS )ÚIntelLLVMFortranCompilerz
intel-llvmN©rª   r«   r¬   r„   rf   r6   r5   r0  r0  M  s   € € € € € à	€B€B€Br6   r0  c                  ó@   — e Zd ZdZdgZ	 	 	 ddd„Zd d„Zd!d„Zd"d„ZdS )#ÚIntelClFortranCompilerr  z/nologoNr"   r#   r$   r%   r&   r   r'   r(   r)   r*   Útargetr+   r,   r-   r.   r/   r0   c
                ó¤   — t                                | ||||||||	¬¦	  «	         t          j        | |¦  «         ddg}
g |
|
dgz   dgdgdœ| _        d S )Nr´   z/warn:generalz/warn:truncated_sourcez/warn:unusedz	/warn:allr·   )r    r2   r   r½   )r4   r"   r$   r&   r'   r)   r4  r+   r-   r/   r¾   s              r5   r2   zIntelClFortranCompiler.__init__W  sƒ   € õ
 	× Ò   w°¸Ø!)¨4°ÀVØ.:ð 	!ñ 	<ô 	<ð 	<õ 	&Ô.¨t°VÑ<Ô<Ð<à,Ð.FÐGÐØ!Ø0Ø0°NÐ3CÑCØ +˜}Ø)4¨ð	7ð 7ˆŒˆˆr6   r?   r˜   c                ó�   — t                                | ¦  «        }t          d| j        | j        ¬¦  «        }g d¢||         _        |S r  rò   r   s      r5   rŸ   z"IntelClFortranCompiler.get_optionsh  r!  r6   rÈ   rÉ   c                ó¾   — g }t          d| j        | j        ¬¦  «        }||         }ddddddœ}|j        dk    r#|                     d	||j                 z   ¦  «         |S )
Nrš   r›   rž   rÁ   r#  r$  r%  r&  z/stand:rË   r'  s         r5   rÎ   z.IntelClFortranCompiler.get_option_compile_argsn  r)  r6   rj   c                ó   — d|z   gS )Nz/module:rf   rl   s     r5   rm   z-IntelClFortranCompiler.get_module_outdir_argsw  r  r6   r¤   )r"   r#   r$   r%   r&   r   r'   r(   r)   r*   r4  r%   r+   r,   r-   r.   r/   r0   r©   ré   r¨   )	rª   r«   r¬   r.  Úalways_argsr2   rŸ   rÎ   rm   rf   r6   r5   r3  r3  R  s�   € € € € € à7€MØ�+€Kð ?CØ7;Ø15ð	7ð 7ð 7ð 7ð 7ð"ð ð ð ðð ð ð ð#ð #ð #ð #ð #ð #r6   r3  c                  ó   — e Zd ZdZdS )ÚIntelLLVMClFortranCompilerzintel-llvm-clNr1  rf   r6   r5   r;  r;  {  s   € € € € € à	€B€B€Br6   r;  c                  ó*   — e Zd ZdZ	 	 	 ddd„Zdd„ZdS )ÚPathScaleFortranCompilerÚ	pathscaleNr"   r#   r$   r%   r&   r   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   c	                ól   — t                                | ||||||||¬¦	  «	         dg}	g |	|	|	|	dœ| _        d S ©Nr´   z	-fullwarnr·   rù   rú   s
             r5   r2   z!PathScaleFortranCompiler.__init__ƒ  ó`   € õ 	× Ò   w°¸Ø!)¨4°ÀVØ.:ð 	!ñ 	<ô 	<ð 	<ð )˜MÐØ!Ø0Ø0Ø0Ø(9ð	;ð ;ˆŒˆˆr6   r?   c                ó   — dgS ©Nz-mprf   rg   s    r5   r  z%PathScaleFortranCompiler.openmp_flags‘  ó	   € Øˆwˆr6   r¤   r¥   r¦   ©rª   r«   r¬   r„   r2   r  rf   r6   r5   r=  r=    sS   € € € € € à	€Bð TXØ7;Ø15ð;ð ;ð ;ð ;ð ;ðð ð ð ð ð r6   r=  c                  ó&   — e Zd Z	 	 	 ddd„Zdd„ZdS )ÚPGIFortranCompilerNr"   r#   r$   r%   r&   r   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   c	                ó¤   — t                                | ||||||||¬¦	  «	         t          j        | ¦  «         dg}	g |	|	|	dgz   |	dgz   dœ| _        d S ©Nr´   ú-Minform=informz-Mdclchkr·   ©r    r2   r   r½   rú   s
             r5   r2   zPGIFortranCompiler.__init__—  ó‚   € õ 	× Ò   w°¸Ø!)¨4°ÀVØ.:ð 	!ñ 	<ô 	<ð 	<õ 	Ô˜TÑ"Ô"Ð"à.Ð/ÐØ!Ø0Ø0Ø0°J°<Ñ?Ø(9¸Z¸LÑ(Hð	Jð JˆŒˆˆr6   r;   r<   r?   c                ó
   — g d¢S )N)ú
-lpgf90rtlz-lpgf90z-lpgf90_rpm1z-lpgf902rN  z
-lpgftnrtlz-lrtrf   r,  s     r5   rÞ   z2PGIFortranCompiler.language_stdlib_only_link_flags§  s   € ð4ð 4ð 4ð 	4r6   r¤   r¥   rë   )rª   r«   r¬   r2   rÞ   rf   r6   r5   rG  rG  •  sS   € € € € € ð TXØ7;Ø15ðJð Jð Jð Jð Jð 4ð 4ð 4ð 4ð 4ð 4r6   rG  c                  ó"   — e Zd ZdZ	 	 	 ddd„ZdS )ÚNvidiaHPC_FortranCompilerÚ
nvidia_hpcNr"   r#   r$   r%   r&   r   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   c	                ó¤   — t                                | ||||||||¬¦	  «	         t          j        | ¦  «         dg}	g |	|	|	dgz   |	dgz   dœ| _        d S rI  rK  rú   s
             r5   r2   z"NvidiaHPC_FortranCompiler.__init__±  rL  r6   r¤   r¥   )rª   r«   r¬   r„   r2   rf   r6   r5   rP  rP  ­  sF   € € € € € à	€Bð TXØ7;Ø15ðJð Jð Jð Jð Jð Jð Jr6   rP  c                  ó*   — e Zd ZdZ	 	 	 ddd„Zdd„ZdS )ÚFlangFortranCompilerr�   Nr"   r#   r$   r%   r&   r   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   c	                ó–   — t                                | ||||||||¬¦	  «	         t          j        | i ¦  «         dg}	g |	|	|	|	dœ| _        d S )Nr´   rJ  r·   )r    r2   r   r½   rú   s
             r5   r2   zFlangFortranCompiler.__init__Æ  st   € õ 	× Ò   w°¸Ø!)¨4°ÀVØ.:ð 	!ñ 	<ô 	<ð 	<õ 	Ô˜t RÑ(Ô(Ð(Ø.Ð/ÐØ!Ø0Ø0Ø0Ø(9ð	;ð ;ˆŒˆˆr6   r;   r<   r?   c                óv   — g }|                       |d¦  «        D ]}|                     d|› �¦  «         Œ|ddgz   S )NrØ   rq   z-lflangz-lpgmathrÙ   rÛ   s       r5   rÞ   z4FlangFortranCompiler.language_stdlib_only_link_flagsÕ  sU   € ð $&ˆØ×'Ò'¨¨[Ñ9Ô9ð 	)ð 	)ˆAØ×Ò˜x A˜x˜xÑ(Ô(Ð(Ð(Ø˜i¨Ð4Ñ4Ð4r6   r¤   r¥   rë   )rª   r«   r¬   r„   r2   rÞ   rf   r6   r5   rT  rT  Â  sS   € € € € € à	€Bð TXØ7;Ø15ð;ð ;ð ;ð ;ð ;ð	5ð 	5ð 	5ð 	5ð 	5ð 	5r6   rT  c                  ó   — e Zd ZdZdS )ÚArmLtdFlangFortranCompilerÚarmltdflangNr1  rf   r6   r5   rX  rX  à  s   € € € € € à	€B€B€Br6   rX  c                  ó*   — e Zd ZdZ	 	 	 ddd„Zdd„ZdS )ÚOpen64FortranCompilerÚopen64Nr"   r#   r$   r%   r&   r   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   c	                ól   — t                                | ||||||||¬¦	  «	         dg}	g |	|	|	|	dœ| _        d S r@  rù   rú   s
             r5   r2   zOpen64FortranCompiler.__init__è  rA  r6   r?   c                ó   — dgS rC  rf   rg   s    r5   r  z"Open64FortranCompiler.openmp_flagsö  rD  r6   r¤   r¥   r¦   rE  rf   r6   r5   r[  r[  ä  sS   € € € € € à	€Bð TXØ7;Ø15ð;ð ;ð ;ð ;ð ;ðð ð ð ð ð r6   r[  c                  ój   — e Zd ZdZ	 	 	 ddd„Zdd„Zd d„Zed!d„¦   «         Zdd„Z	dd„Z
dd„Zdd„ZdS )"ÚNAGFortranCompilerÚnagforNr"   r#   r$   r%   r&   r   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   c	                óh   — t                                | ||||||||¬¦	  «	         dgg g g g dœ| _        d S )Nr´   z-w=allr·   rù   r3   s	            r5   r2   zNAGFortranCompiler.__init__þ  sZ   € õ 	× Ò   w°¸Ø!)¨4°ÀVØ.:ð 	!ñ 	<ô 	<ð 	<ð
 �ØØØØð
ð 
ˆŒˆˆr6   r?   c                ó6   — |                       | j        ¦  «        S rF   )Úget_nagfor_quietr$   rg   s    r5   r  z"NAGFortranCompiler.get_always_args  s   € Ø×$Ò$ T¤\Ñ2Ô2Ð2r6   rj   c                ó
   — d|gS )Nz-mdirrf   rl   s     r5   rm   z)NAGFortranCompiler.get_module_outdir_args  s   € Ø˜ˆÐr6   c                ó,   — t          | d¦  «        rdgng S )Nz>=7100z-quiet)r   )r$   s    r5   rd  z#NAGFortranCompiler.get_nagfor_quiet  s   € å,¨W°hÑ?Ô?ÐG�ˆzˆzÀRÐGr6   c                ó   — dgS )Nz-PICrf   rg   s    r5   Úget_pic_argszNAGFortranCompiler.get_pic_args  r  r6   c                ó   — dgS r  rf   rg   s    r5   ra   z+NAGFortranCompiler.get_preprocess_only_args  r  r6   c                ó*   — |                       ¦   «         S rF   )r  rg   s    r5   Úget_std_exe_link_argsz(NAGFortranCompiler.get_std_exe_link_args  s   € Ø×#Ò#Ñ%Ô%Ð%r6   c                ó   — dgS )Nz-openmprf   rg   s    r5   r  zNAGFortranCompiler.openmp_flags!  s
   € Øˆ{Ðr6   r¤   r¥   r¦   r¨   )r$   r%   r?   r#   )rª   r«   r¬   r„   r2   r  rm   Ústaticmethodrd  rh  ra   rk  r  rf   r6   r5   r`  r`  ú  sÛ   € € € € € à	€Bð TXØ7;Ø15ð
ð 
ð 
ð 
ð 
ð 3ð 3ð 3ð 3ðð ð ð ð ðHð Hð Hñ „\ðHðð ð ð ðð ð ð ð&ð &ð &ð &ðð ð ð ð ð r6   r`  )>Ú
__future__r   ÚtypingÚTrs   Ú r   Ú	compilersr   r   Úmixins.cliker	   Ú
mixins.gnur
   r   r   Úmixins.intelr   r   Úmixins.clangr   Úmixins.elbrusr   Ú
mixins.pgir   Úmesonbuild.mesonlibr   r   r   r   ÚTYPE_CHECKINGr   r   r8   r   Ú	envconfigr   rN   r   Úlinkersr   Úmesonlibr   Úprogramsr   r   r    r°   rí   rõ   r   r  r0  r3  r;  r=  rG  rP  rT  rX  r[  r`  rf   r6   r5   ú<module>r     sÈ  ðð #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø 	€	€	€	à Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð (Ð 'Ð 'Ð 'Ð 'Ð 'ðð ð ð ð ð ð ð ð ð ð NÐ MÐ MÐ MÐ MÐ MÐ MÐ MØ 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø )Ð )Ð )Ð )Ð )Ð )Ø #Ð #Ð #Ð #Ð #Ð #ðð ð ð ð ð ð ð ð ð ð ð ð
 „?ð ,ØJÐJÐJÐJÐJÐJÐJÐJØ)Ð)Ð)Ð)Ð)Ð)Ø'Ð'Ð'Ð'Ð'Ð'Ø)Ð)Ð)Ð)Ð)Ð)Ø'Ð'Ð'Ð'Ð'Ð'Ø(Ð(Ð(Ð(Ð(Ð(Ø*Ð*Ð*Ð*Ð*Ð*Ø+Ð+Ð+Ð+Ð+Ð+ð[ð [ð [ð [ð [�m Xñ [ô [ð [ð|Chð Chð Chð Chð Ch˜ oñ Chô Chð ChðLð ð ð ð ˜N¨Oñ ô ð ð*ð ð ð ð ˜ñ ô ð ð6ð ð ð ð ˜ñ ô ð ð0-@ð -@ð -@ð -@ð -@Ð/°ñ -@ô -@ð -@ð`ð ð ð ð Ð3ñ ô ð ð
&#ð &#ð &#ð &#ð &#Ð:¸Oñ &#ô &#ð &#ðRð ð ð ð Ð!7ñ ô ð ðð ð ð ð ˜ñ ô ð ð,4ð 4ð 4ð 4ð 4˜ oñ 4ô 4ð 4ð0Jð Jð Jð Jð J ¨_ñ Jô Jð Jð*5ð 5ð 5ð 5ð 5˜=¨/ñ 5ô 5ð 5ð<ð ð ð ð Ð!5ñ ô ð ðð ð ð ð ˜Oñ ô ð ð,(ð (ð (ð (ð (˜ñ (ô (ð (ð (ð (r6   