+
    UBitt                       ^ RI Ht ^ RIt^ RIt^ RIt^RIHt ^RIHt ^RI	H
t
HtHt ^RIHt ^RIHtHt ^RIHtHt ^R	IHt ^R
IHt ^RIHt ^ RIHtHtHt ]P>                  '       d%   ^RIH t  ^RI!H"t" ^RI#H$t$ ^RI%H&t& ^RIH't' ^RI(H)t)  ! R R]]4      t* ! R R]]*4      t+ ! R R]]*4      t, ! R R]*4      t- ! R R]*4      t. ! R R]]*4      t/ ! R R ]/4      t0 ! R! R"]]*4      t1 ! R# R$]14      t2 ! R% R&]*4      t3 ! R' R(]]*4      t4 ! R) R*]]*4      t5 ! R+ R,]]*4      t6 ! R- R.]64      t7 ! R/ R0]]*4      t8 ! R1 R2]*4      t9 ! R3 R4]*4      t:R# )5    )annotationsN)options)mesonlib)clike_debug_argsCompilerCompileCheckMode)CLikeCompiler)GnuCompilergnu_optimization_args)IntelGnuLikeCompilerIntelVisualStudioLikeCompiler)ClangCompiler)ElbrusCompiler)PGICompiler)version_compareMesonExceptionLibType)MutableKeyedOptionDictType)
Dependency)Environment)DynamicLinker)MachineChoice)BuildTargetc                    a  ] tR t^&tRtR2R R lltRRRR/R R lltR	 R
 ltR R ltR R lt	R R lt
R V 3R lltR R ltR R ltR R ltR R lt]P"                  RR3R R lltR R  ltR! R" ltR# V 3R$ lltR% R& ltR2R' R( lltRR/R) R* lltRRRR/R+ R, lltRRRR/R- R. llt]P8                  ! 4       R/ R0 l4       tR1tV ;t# )3FortranCompilerfortranNc               0    V ^8  d   QhRRRRRRRRR	R
RR/#    exelistT.List[str]versionstrfor_machiner   envr   linkerT.Optional['DynamicLinker']full_versionT.Optional[str] )formats   "A/usr/lib/python3.14/site-packages/mesonbuild/compilers/fortran.py__annotate__FortranCompiler.__annotate__*   s9     % % %c % %!%+F%.%    c                	h    \         P                  ! V . WW4WeR 7       \        P                  ! V 4       R# ))r(   r&   N)r   __init__r	   selfr    r"   r$   r%   r&   r(   s   &&&&&&&r,   r1   FortranCompiler.__init__*   s,     	$Gk'3	Dt$r/   
extra_argsdependenciesc          
     ,    V ^8  d   QhRRRRRRRRRR	/# )
r   funcnamer#   prefixr5   T.Optional[T.List[str]]r6    T.Optional[T.List['Dependency']]returnT.Tuple[bool, bool]r*   )r+   s   "r,   r-   r.   1   s9     g gS g# g!8g#CgObgr/   c               	    \        R 4      h)zFortran 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   )r3   r8   r9   r5   r6   s   &&&$$r,   has_functionFortranCompiler.has_function1   s      f g 	gr/   c                    V ^8  d   QhRRRR/# )r   moder   r<   z!T.Tuple[T.List[str], T.List[str]]r*   )r+   s   "r,   r-   r.   9   s      -= Bc r/   c                	    V P                   P                  P                  V P                  V P                  4      pV P                   P                  P                  V P                  V P                  4      pW#3# N)environmentcoredataget_external_argsr$   languageget_external_link_args)r3   rB   cargslargss   &&  r,   _get_basic_compiler_args(FortranCompiler._get_basic_compiler_args9   s]      ));;D<L<Ldmm\  ))@@AQAQSWS`S`a|r/   c                    V ^8  d   QhRRRR/# )r   work_dirr#   r<   Noner*   )r+   s   "r,   r-   r.   >   s     D DS DT Dr/   c                	.    R pRpV P                  WV4      # )zsanitycheckf.fzN      PROGRAM MAIN
      PRINT *, "Fortran compilation is working."
      END
)_sanity_check_impl)r3   rO   source_namecodes   &&  r,   sanity_checkFortranCompiler.sanity_check>   s    &b&&xdCCr/   c                    V ^8  d   QhRRRR/# )r   optimization_levelr#   r<   r!   r*   )r+   s   "r,   r-   r.   C   s     9 9 9 9r/   c                	    \         V,          # rD   )r   )r3   rX   s   &&r,   get_optimization_args%FortranCompiler.get_optimization_argsC   s    $%788r/   c                    V ^8  d   QhRRRR/# )r   is_debugboolr<   r!   r*   )r+   s   "r,   r-   r.   F   s     * *t * *r/   c                	    \         V,          # rD   )r   )r3   r]   s   &&r,   get_debug_argsFortranCompiler.get_debug_argsF   s    ))r/   c                   V ^8  d   QhRR/# r   r<   r!   r*   )r+   s   "r,   r-   r.   I   s     = =+ =r/   c                	0   < R .\         SV `  4       ,           # )-cpp)superget_preprocess_only_args)r3   	__class__s   &r,   rg   (FortranCompiler.get_preprocess_only_argsI   s    x%':<<<r/   c                   V ^8  d   QhRR/# r   r<   zT.Tuple[str, ...]r*   )r+   s   "r,   r-   r.   L         (9 r/   c                	    R# )-I)rn   r*   r3   s   &r,   get_module_incdir_args&FortranCompiler.get_module_incdir_argsL       r/   c                    V ^8  d   QhRRRR/# r   pathr#   r<   r!   r*   )r+   s   "r,   r-   r.   O        ! !3 !; !r/   c                	
    R V.# )z-moduler*   r3   ru   s   &&r,   get_module_outdir_args&FortranCompiler.get_module_outdir_argsO   s    4  r/   c               $    V ^8  d   QhRRRRRR/# )r   parameter_listr!   	build_dirr#   r<   r*   )r+   s   "r,   r-   r.   R   s#      [ :=BMr/   c           	     	   \        V4       Fv  w  r4VR ,          R8X  g   VR ,          R8X  g   K#  VR ,          \        P                  P                  \        P                  P	                  W$R,          4      4      ,           W&   Kx  	  V# ):Nr   Nrn   -L:r   NN)	enumerateosru   normpathjoin)r3   r|   r}   idxis   &&&  r,   &compute_parameters_with_absolute_paths6FortranCompiler.compute_parameters_with_absolute_pathsR   sc    /FCu}"&'ebgg.>.>rww||IY[W\?].^&^# 0 r/   c                    V ^8  d   QhRRRR/# )r   module_namer#   r<   r*   )r+   s   "r,   r-   r.   Z   s      3 3 r/   c                	*   R V9   du   VP                  4       pV P                  R9   d   VP                  R R4      R,           pV# V P                  R9   d   VP                  R R4      R,           pV# VR,           p V# VP                  4       R,           pV# )_@z.smod-z.mod>   gccintelintel-cl>   pgiflang)loweridreplace)r3   r   sfilenames   &&  r,   module_name_to_filename'FortranCompiler.module_name_to_filenameZ   s    +!!#Aww6699S#.8  ,,99S#.7 	 v:  #((*V3Hr/   TFc               0    V ^8  d   QhRRRRRRRRR	RR
R/# )r   libnamer#   
extra_dirsr!   libtyper   lib_prefix_warningr^   ignore_system_dirsr<   r:   r*   )r+   s   "r,   r-   r.   h   sA     s sC s[ s7 s)-sJNs[rsr/   c                	,    R pV P                  WWcWE4      # zstop; end program)_find_library_impl)r3   r   r   r   r   r   rT   s   &&&&&& r,   find_libraryFortranCompiler.find_libraryh   s    "&&wDK]rrr/   c                    V ^8  d   QhRRRR/# r   argsr!   r<   r=   r*   )r+   s   "r,   r-   r.   m   s     D D D8K Dr/   c                	&    V P                  VR 4      # r   )_has_multi_argumentsr3   r   s   &&r,   has_multi_arguments#FortranCompiler.has_multi_argumentsm   s    ((/BCCr/   c                    V ^8  d   QhRRRR/# r   r*   )r+   s   "r,   r-   r.   p   s     I I[ I=P Ir/   c                	&    V P                  VR 4      # r   )_has_multi_link_argumentsr   s   &&r,   has_multi_link_arguments(FortranCompiler.has_multi_link_argumentsp   s    --d4GHHr/   c                   V ^8  d   QhRR/# r   r<   z'MutableKeyedOptionDictType'r*   )r+   s   "r,   r-   r.   s   s     
 
9 
r/   c                	   < \         SV `  4       pV P                  R 4      p\        P                  ! V P                  V4      RRR.R7      W&   V# )stdz Fortran language standard to usenone)choices)rf   get_optionsform_compileropt_keyr   UserComboOptionmake_option_name)r3   optskeyrh   s   &  r,   r   FortranCompiler.get_optionss   sR    w"$''.++!!#&.H		 r/   c          
     ,    V ^8  d   QhRRRRRRRRRR	/# )
r   
expressionr#   r9   r5   GT.Union[None, T.List[str], T.Callable[[CompileCheckMode], T.List[str]]]r6   r;   r<   r^   r*   )r+   s   "r,   r-   r.      s9     	U 	Us 	UC 	U!h	U#C	UHL	Ur/   c                	H    R V RV R2pV P                  WSVR7      ^ ,          # )program test
            z%
            real(merge(kind(1.),-1,(z4))), parameter :: fail = 1.
        end program testr5   r6   )compiles)r3   r   r9   r5   r6   ts   &&&&& r,   _compile_intFortranCompiler._compile_int   s=    
H %%/L 1 }}QL}QRSTTr/   c               8    V ^8  d   QhRRRRRRRRRRRR	R
RRR/# r   r   r#   lowzT.Optional[int]highguessr9   r5   r   r6   r;   r<   intr*   )r+   s   "r,   r-   r.      sP     0 0S 0 0o 0"10;>0'n0 *J0 VY0r/   c                	   \        V\        4      '       d!   V P                  V R V 2WVV4      '       d   V# RpRp	\        V\        4      '       d   \        V\        4      '       g   V P                  V R2WVV4      '       df   ^ ;r*V P                  V RV
 2WVV4      '       dB   V
^,           pW(8  d   \        P                  ! R4      h\        V
^,          ^,           V4      p
K_  T
pMR;r:V P                  V RV
 2WVV4      '       d;   V
^,
          pW98  d   \        P                  ! R4      h\        V
^,          V	4      p
KX  T
pMWW28  d   \        P                  ! R4      hV RV RV R	V 2pV P                  WWg4      '       g   \        P                  ! R
4      hW#8w  dM   V\        W2,
          ^,          4      ,           p
V P                  V RV
 2WVV4      '       d   T
pKG  V
^,           pKR  V# )z == iz >= 0z > zCross-compile check overflowedz < z!high limit smaller than low limitz <= z .and. z >= zValue out of given rangei   )
isinstancer   r   r   EnvironmentExceptionminmax)r3   r   r   r   r   r9   r5   r6   maxintminintcur	conditions   &&&&&&&&    r,   _cross_compute_int"FortranCompiler._cross_compute_int   s    eS!!  J<tE7!;VQ]^^ #s##:dC+@+@  J<u!5v<XX'':,c#(?Uabb'C|&;;<\]]cAgk62C'':,c#(?Uabb7D}&;;<\]]cAgv.C z334WXX%,d4&
|4uMI$$Y
QQ334NOO kTZ1,--C  J<tC5!96|\\Ag
r/   c               8    V ^8  d   QhRRRRRRRRRRRR	R
RRR/# r   r*   )r+   s   "r,   r-   r.      sP      c   *47 g #C ORr/   c          	     	2   Vf   . pV P                   '       d   V P                  WW4WVV4      # RV RV R2pV P                  WVR7      p	V	P                  '       g   R# V	P                  ^ 8w  d   \
        P                  ! R4      h\        V	P                  4      # )Nr   z
            print '(i0)', z"
        end program test
        r   z&Could not run compute_int test binary.r   )	is_crossr   runcompiled
returncoder   r   r   stdout)
r3   r   r   r   r   r9   r5   r6   r   ress
   &&&&&&$$  r,   compute_intFortranCompiler.compute_int   s     J===**:D]ijjH %, '	
 hhqlhK|||I>>Q//0XYY3::r/   c          
     ,    V ^8  d   QhRRRRRRRRRR	/# )
r   typenamer#   r9   r5   r   r6   r;   r<   r   r*   )r+   s   "r,   r-   r.      s9     Y Yc Y3 Y"iY$DYPSYr/   c          	     	    Vf   . pRV RV R2pV P                  WSVR7      ^ ,          '       g   R# V P                  RR R R VR,           V,           R,           W44      # )	N7program test
            use iso_c_binding
            
            z/ :: something
        end program test
        r   zc_sizeof(x)z
use iso_c_binding
z :: xr   )r   r   )r3   r   r9   r5   r6   r   s   &&&$$ r,   _cross_sizeofFortranCompiler._cross_sizeof   s     JH J 	 }}Q*6  889; ;I&&}dD$QhHhksHsv}H}  @J  Y  	Yr/   c          
     ,    V ^8  d   QhRRRRRRRRRR	/# )
r   r   r#   r9   r5   r   r6   r;   r<   zT.Tuple[int, bool]r*   )r+   s   "r,   r-   r.      s2     + +s +C +b+=+I[+r/   c               	R   Vf   . pV P                   '       d   V P                  WVVR7      pVR3# RV RV R2pV P                  WcVR7      pVP                  '       g   R# VP                  ^ 8w  d   \
        P                  ! R4      h\        VP                  4      VP                  3# )Nr   Fr   r   zM :: x
            print '(i0)', c_sizeof(x)
        end program test
        z!Could not run sizeof test binary.)r   F)
r   r   
cached_runr   r   r   r   r   r   cached)r3   r   r9   r5   r6   rr   r   s   &&&$$   r,   sizeofFortranCompiler.sizeof   s     J===""8
0< # >Ae8OH J 	 ooa+7  9|||>>Q//0STT3::

**r/   c                   V ^8  d   QhRR/# )r   r<   r^   r*   )r+   s   "r,   r-   r.      s     6 6 6r/   c                :    V P                  RR4      ^ ,          ^8H  # )z@
returns true if the output produced is 64-bit, false if 32-bit
ztype(c_ptr) )r   ro   s   &r,   output_is_64bitFortranCompiler.output_is_64bit   s    
 {{="-a0A55r/   r*   NN) __name__
__module____qualname____firstlineno__rH   r1   r?   rL   rU   rZ   r`   rg   rp   ry   r   r   r   PREFER_SHAREDr   r   r   r   r   r   r   r   r   	functools	lru_cacher   __static_attributes____classcell__rh   s   @r,   r   r   &   s    H%g;?gFJg
D
9*= =! V]UjUj04QVs
DI
 
	U0d FJ(YlpYGKY +ei+@D+0 6 6r/   r   c                     a  ] tR tRtRR R lltR V 3R lltRR R lltR	 R
 ltR R ltR R lt	RRRRRR/R R llt
RtV ;t# )GnuFortranCompiler   Nc               4    V ^8  d   QhRRRRRRRRR	R
RRRR/# r   r    r!   r"   r#   r$   r   r%   r   defineszT.Optional[T.Dict[str, str]]r&   r'   r(   r)   r*   )r+   s   "r,   r-   GnuFortranCompiler.__annotate__  sN     j j jc j j!j6j 5j  /	jr/   c                	    \         P                  WW#WFVR 7       \        P                  ! W4       R.pR. RVRVR.,           RV. R	O,           RV. R	O,           /V n        R# )
r&   r(   -Wall012-Wextra3
everythingN)r  z
-Wpedanticz-fimplicit-none)r   r1   r
   	warn_args)	r3   r    r"   r$   r%   r  r&   r(   default_warn_argss	   &&&&&&&& r,   r1   GnuFortranCompiler.__init__  sq    
 	  !$, 	! 	PT+$Ir00I;>03__&(9<h(h	jr/   c                   V ^8  d   QhRR/# r   r*   )r+   s   "r,   r-   r	    s      9 r/   c                	   < \         SV `  4       p. ROp\        V P                  R4      '       d   VR.,          p\        V P                  R4      '       d   VR.,          pV P	                  W4       V# )legacyz>=4.4.0f2008z>=8.0.0f2018)r  f95f2003)rf   r   r   r"   _update_language_stds)r3   r   fortran_stdsrh   s   &  r,   r   GnuFortranCompiler.get_options  sb    w"$14<<33WI%L4<<33WI%L""46r/   c               $    V ^8  d   QhRRRRRR/# r   targetr   
subprojectr)   r<   r!   r*   )r+   s   "r,   r-   r	    s"      + ? ^i r/   c                	    . pV P                  R W4      p\        V\        4      '       g   Q hVR8w  d   VP                  RV,           4       V# )r   r   z-std=get_compileropt_valuer   r#   append)r3   r"  r#  r   r   s   &&&  r,   get_option_std_args&GnuFortranCompiler.get_option_std_args  sH    ((C#s####&=KK#&r/   c               $    V ^8  d   QhRRRRRR/# r   	outtargetr#   outfiler<   r!   r*   )r+   s   "r,   r-   r	  #  s!       s { r/   c                	    . # rD   r*   r3   r,  r-  s   &&&r,   get_dependency_gen_args*GnuFortranCompiler.get_dependency_gen_args#  s	     	r/   c                    V ^8  d   QhRRRR/# rt   r*   )r+   s   "r,   r-   r	  )        3 ; r/   c                	    R V,           .# z-Jr*   rx   s   &&r,   ry   )GnuFortranCompiler.get_module_outdir_args)      t}r/   c                   V ^8  d   QhRR/# rc   r*   )r+   s   "r,   r-   r	  ,  s     3 3 3r/   c                	t    . pV P                  R 4       F  pVP                  RV 24       K  	  VRR.,           # )	librariesr   z
-lgfortranz-lmget_compiler_dirsr'  r3   search_dirsds   &  r,   language_stdlib_only_link_flags2GnuFortranCompiler.language_stdlib_only_link_flags,  sB    
 $&''4AA3x( 5lE222r/   r5   r6   disable_cacheFc               0    V ^8  d   QhRRRRRRRRRR	R
R/# )r   hnamer#   r9   r5   zIT.Union[None, T.List[str], T.Callable[['CompileCheckMode'], T.List[str]]]r6   r;   rB  r^   r<   r=   r*   )r+   s   "r,   r-   r	  6  sG     w w wS whw!Aw #'w 4Gwr/   c               X    V RV R2pV P                  WcV\        P                  VR7      # )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 <>)r5   r6   rB   rB  )r   r   
PREPROCESS)r3   rD  r9   r5   r6   rB  rT   s   &&&$$$ r,   
has_headerGnuFortranCompiler.has_header6  s?     eWA.}}T*6=M=X=Xhu  w 	wr/   r  NNNrD   )r   r   r   r   r1   r   r(  r0  ry   r@  rH  r   r  r  s   @r,   r  r     sP    j 3wkowDHw */w wr/   r  c                  J   a  ] tR tRtR	R R lltR V 3R lltR R ltRtV ;t# )
ElbrusFortranCompileriD  c               4    V ^8  d   QhRRRRRRRRR	R
RRRR/# r  r*   )r+   s   "r,   r-   "ElbrusFortranCompiler.__annotate__E  sE     & & &c & &!&6& 5&  /	&r/   c           
     	d    \         P                  WW#WFVR 7       \        P                  ! V 4       R# )r  N)r   r1   r   )r3   r    r"   r$   r%   r  r&   r(   s   &&&&&&&&r,   r1   ElbrusFortranCompiler.__init__E  s/    
 	  !$, 	! 	P%r/   c                   V ^8  d   QhRR/# r   r*   )r+   s   "r,   r-   rO  N        9 r/   c                	L   < \         SV `  4       pV P                  V. RO4       V# )r  )r  r  r  gnur  f2008tsrf   r   r  r3   r   rh   s   & r,   r   !ElbrusFortranCompiler.get_optionsN  s&    w"$""4)^_r/   c                    V ^8  d   QhRRRR/# rt   r*   )r+   s   "r,   r-   rO  S  r3  r/   c                	    R V,           .# r5  r*   rx   s   &&r,   ry   ,ElbrusFortranCompiler.get_module_outdir_argsS  r7  r/   r*   rK  )	r   r   r   r   r1   r   ry   r   r  r  s   @r,   rM  rM  D  s    & 
 r/   rM  c                  :    ] tR tRtRtRtR
R R lltR R ltR	tR# )G95FortranCompileriW  -Wl,g95Nc               0    V ^8  d   QhRRRRRRRRR	R
RR/# r   r*   )r+   s   "r,   r-   G95FortranCompiler.__annotate__\  sA     
V 
V 
Vc 
V 
V!
V+F
V.
Vr/   c                	    \         P                  WW#WEVR 7       R.pR. RVRVR.,           RVRR.,           RVRR.,           /V n        R	# )
r  r  r  r  r  r  r  z	-pedanticr  Nr   r1   r  r3   r    r"   r$   r%   r&   r(   r  s   &&&&&&& r,   r1   G95FortranCompiler.__init__\  sk     	  !$, 	! 	P$Ir00I;>0I{3KK&(9Y<T(T	Vr/   c                    V ^8  d   QhRRRR/# rt   r*   )r+   s   "r,   r-   rb  h  rv   r/   c                	    R V,           .# )z-fmod=r*   rx   s   &&r,   ry   )G95FortranCompiler.get_module_outdir_argsh  s    4  r/   rJ  r   )	r   r   r   r   LINKER_PREFIXr   r1   ry   r   r*   r/   r,   r^  r^  W  s    M	B
V! !r/   r^  c                  f    ] tR tRtRtRtR R ltR R ltR R	 ltR
 R lt	R R lt
R R ltRtR# )SunFortranCompileril  r_  sunc               $    V ^8  d   QhRRRRRR/# r+  r*   )r+   s   "r,   r-   SunFortranCompiler.__annotate__q  s!       s { r/   c                	    R .# z-fppr*   r/  s   &&&r,   r0  *SunFortranCompiler.get_dependency_gen_argsq  	    xr/   c                   V ^8  d   QhRR/# rc   r*   )r+   s   "r,   r-   ro  t  s       r/   c                	    . # rD   r*   ro   s   &r,   get_always_args"SunFortranCompiler.get_always_argst      	r/   c                    V ^8  d   QhRRRR/# )r   levelr#   r<   r!   r*   )r+   s   "r,   r-   ro  w  s      3 ; r/   c                	    . # rD   r*   )r3   rz  s   &&r,   get_warn_args SunFortranCompiler.get_warn_argsw  rx  r/   c                   V ^8  d   QhRR/# rk   r*   )r+   s   "r,   r-   ro  z  rl   r/   c                	    R# )-M)r  r*   ro   s   &r,   rp   )SunFortranCompiler.get_module_incdir_argsz  rr   r/   c                    V ^8  d   QhRRRR/# rt   r*   )r+   s   "r,   r-   ro  }       # #3 #; #r/   c                	    R V,           .# )z-moddir=r*   rx   s   &&r,   ry   )SunFortranCompiler.get_module_outdir_args}      T!""r/   c                   V ^8  d   QhRR/# rc   r*   )r+   s   "r,   r-   ro    s      k r/   c                	    R .# )z-xopenmpr*   ro   s   &r,   openmp_flagsSunFortranCompiler.openmp_flags  s
    |r/   r*   N)r   r   r   r   rj  r   r0  rv  r|  rp   ry   r  r   r*   r/   r,   rl  rl  l  s/    M	B# r/   rl  c                     a  ] tR tRtRtRR R lltR V 3R lltRR R lltR	 R
 ltR R lt	R R lt
R R ltRtV ;t# )IntelFortranCompileri  r   c               0    V ^8  d   QhRRRRRRRRR	R
RR/# r   r*   )r+   s   "r,   r-   !IntelFortranCompiler.__annotate__  s9     : : :c : :!:+F:.:r/   c                	    \         P                  WW#WEVR 7       \        P                  ! V 4       R
V n        . ROpR. RVRVRR.,           RRR.RRR./V n        R	# )r  -warnr  r  r  unusedr  allr  Nf90fforftnfpp)r  generalr  truncated_source)r   r1   r   file_suffixesr  re  s   &&&&&&& r,   r1   IntelFortranCompiler.__init__  sw     	  !$, 	! 	P 	%%d+@Mr00GX3FF/&%(8	:r/   c                   V ^8  d   QhRR/# r   r*   )r+   s   "r,   r-   r    rS  r/   c                	L   < \         SV `  4       pV P                  V. RO4       V# r   )r   r  r  r  r  r  rW  rX  s   & r,   r    IntelFortranCompiler.get_options  &    w"$""4)]^r/   c               $    V ^8  d   QhRRRRRR/# r!  r*   )r+   s   "r,   r-   r    "      + ? ^i r/   c           
     	    . pV P                  R W4      pRRRRRRRRRR	/p\        V\        4      '       g   Q hVR8w  d   VP                  R
WT,          ,           4       V# )r   r  r   r  r  f03r  f08r  f18z-stand=r%  r3   r"  r#  r   r   stdss   &&&   r,   r(  (IntelFortranCompiler.get_option_std_args  g    ((C&%PWY^_#s####&=KK	DI-.r/   c                   V ^8  d   QhRR/# rc   r*   )r+   s   "r,   r-   r    s      + r/   c                	
    R R.# )re   z-EPr*   ro   s   &r,   rg   -IntelFortranCompiler.get_preprocess_only_args  s    r/   c                   V ^8  d   QhRR/# rc   r*   )r+   s   "r,   r-   r    s     # # #r/   c                	
    R R.# )r  errorsr*   ro   s   &r,   get_werror_args$IntelFortranCompiler.get_werror_args  s    ""r/   c                   V ^8  d   QhRR/# rc   r*   )r+   s   "r,   r-   r    s     % % %r/   c                	
    R R.# )z-lifcorez-limfr*   ro   s   &r,   r@  4IntelFortranCompiler.language_stdlib_only_link_flags  s    G$$r/   c               $    V ^8  d   QhRRRRRR/# r+  r*   )r+   s   "r,   r-   r    s&     @ @ @s @{ @r/   c                	    R V,           R.# )z	-gen-dep=z-gen-depformat=maker*   r/  s   &&&r,   r0  ,IntelFortranCompiler.get_dependency_gen_args  s    i')>??r/   r  r  r   rD   )r   r   r   r   r   r1   r   r(  rg   r  r@  r0  r   r  r  s   @r,   r  r    s7    	B:  
#%@ @r/   r  c                  2    ] tR tRtRtR R ltR R ltRtR# )	IntelLLVMFortranCompileri  z
intel-llvmc                   V ^8  d   QhRR/# rc   r*   )r+   s   "r,   r-   %IntelLLVMFortranCompiler.__annotate__  s     $ $+ $r/   c                	    R .# )z-preprocess-onlyr*   ro   s   &r,   rg   1IntelLLVMFortranCompiler.get_preprocess_only_args  s    "##r/   c               $    V ^8  d   QhRRRRRR/# r+  r*   )r+   s   "r,   r-   r    s!       s { r/   c                	    . # rD   r*   r/  s   &&&r,   r0  0IntelLLVMFortranCompiler.get_dependency_gen_args  rx  r/   r*   N)r   r   r   r   r   rg   r0  r   r*   r/   r,   r  r    s    	B$ r/   r  c                  l   a  ] tR tRtR.tRR R lltR V 3R lltRR R lltR	 R
 ltR R lt	Rt
V ;t# )IntelClFortranCompileri  z/nologoc               4    V ^8  d   QhRRRRRRRRR	RR
RRR/# )r   r    r!   r"   r#   r$   r   r%   r   r"  r&   r'   r(   r)   r*   )r+   s   "r,   r-   #IntelClFortranCompiler.__annotate__  sC     7 7 7c 7 7!7+.747  /7r/   c           
     	    \         P                  WW#WFVR 7       \        P                  ! W4       RV n        RR.pR. RVRVR.,           RR.R	R./V n        R
# )r  z/warn:generalz/warn:truncated_sourcer  r  r  z/warn:unusedr  z	/warn:allr  Nr  )r   r1   r   r  r  )	r3   r    r"   r$   r%   r"  r&   r(   r  s	   &&&&&&&& r,   r1   IntelClFortranCompiler.__init__  ss     	  !$, 	! 	P%..t<@,.FGr00N3CC}&	7r/   c                   V ^8  d   QhRR/# r   r*   )r+   s   "r,   r-   r    rS  r/   c                	L   < \         SV `  4       pV P                  V. RO4       V# r  rW  rX  s   & r,   r   "IntelClFortranCompiler.get_options  r  r/   c               $    V ^8  d   QhRRRRRR/# r!  r*   )r+   s   "r,   r-   r    r  r/   c           
     	    . pV P                  R W4      pRRRRRRRRRR	/p\        V\        4      '       g   Q hVR8w  d   VP                  R
WT,          ,           4       V# )r   r  r   r  r  r  r  r  r  r  z/stand:r%  r  s   &&&   r,   r(  *IntelClFortranCompiler.get_option_std_args  r  r/   c                   V ^8  d   QhRR/# rc   r*   )r+   s   "r,   r-   r    s          r/   c                	    R .# )z/warn:errorsr*   ro   s   &r,   r  &IntelClFortranCompiler.get_werror_args  s    r/   c                    V ^8  d   QhRRRR/# rt   r*   )r+   s   "r,   r-   r    r  r/   c                	    R V,           .# )z/module:r*   rx   s   &&r,   ry   -IntelClFortranCompiler.get_module_outdir_args  r  r/   r  r   rD   )r   r   r   r   always_argsr1   r   r(  r  ry   r   r  r  s   @r,   r  r    s-    +K7  
 # #r/   r  c                      ] tR tRtRtRtR# )IntelLLVMClFortranCompileri  zintel-llvm-clr*   Nr   r   r   r   r   r   r*   r/   r,   r  r    s    	Br/   r  c                  6    ] tR tRtRtR	R R lltR R ltRtR# )
PathScaleFortranCompileri  	pathscaleNc               0    V ^8  d   QhRRRRRRRRR	R
RR/# r   r*   )r+   s   "r,   r-   %PathScaleFortranCompiler.__annotate__  9     
; 
; 
;c 
; 
;!
;+F
;.
;r/   c           
     	`    \         P                  WW#WEVR 7       R.pR. RVRVRVRV/V n        R# r  z	-fullwarnr  r  r  r  r  Nrd  re  s   &&&&&&& r,   r1   !PathScaleFortranCompiler.__init__  O     	  !$, 	! 	P(Mr000&(9	;r/   c                   V ^8  d   QhRR/# rc   r*   )r+   s   "r,   r-   r          k r/   c                	    R .# z-mpr*   ro   s   &r,   r  %PathScaleFortranCompiler.openmp_flags  	    wr/   rJ  r   r   r   r   r   r   r1   r  r   r*   r/   r,   r  r    s    	B
; r/   r  c                  2    ] tR tRtRR R lltR R ltRtR# )	PGIFortranCompileri  Nc               0    V ^8  d   QhRRRRRRRRR	R
RR/# r   r*   )r+   s   "r,   r-   PGIFortranCompiler.__annotate__  A     J J Jc J J!J+FJ.Jr/   c                	    \         P                  WW#WEVR 7       \        P                  ! V 4       R.pR. RVRVRVR.,           RVR.,           /V n        R# 	r  -Minform=informr  r  r  r  z-Mdclchkr  Nr   r1   r   r  re  s   &&&&&&& r,   r1   PGIFortranCompiler.__init__  m     	  !$, 	! 	PT"./r000J<?&(9ZL(H	Jr/   c                   V ^8  d   QhRR/# rc   r*   )r+   s   "r,   r-   r    s     4 4 4r/   c                	
    . RO# )
-lpgf90rtl)r  z-lpgf90z-lpgf90_rpm1z-lpgf902r  z
-lpgftnrtlz-lrtr*   ro   s   &r,   r@  2PGIFortranCompiler.language_stdlib_only_link_flags  s    4 	4r/   rJ  r   )r   r   r   r   r1   r@  r   r*   r/   r,   r  r    s    J4 4r/   r  c                  *    ] tR tRtRtRR R lltRtR# )NvidiaHPC_FortranCompileri  
nvidia_hpcNc               0    V ^8  d   QhRRRRRRRRR	R
RR/# r   r*   )r+   s   "r,   r-   &NvidiaHPC_FortranCompiler.__annotate__  r  r/   c                	    \         P                  WW#WEVR 7       \        P                  ! V 4       R.pR. RVRVRVR.,           RVR.,           /V n        R# r  r  re  s   &&&&&&& r,   r1   "NvidiaHPC_FortranCompiler.__init__  r  r/   rJ  r   )r   r   r   r   r   r1   r   r*   r/   r,   r  r    s    	BJ Jr/   r  c                  6    ] tR tRtRtR	R R lltR R ltRtR# )
ClassicFlangFortranCompileri(  r   Nc               0    V ^8  d   QhRRRRRRRRR	R
RR/# r   r*   )r+   s   "r,   r-   (ClassicFlangFortranCompiler.__annotate__,  9     ; ; ;c ; ;!;+F;.;r/   c           
     	    \         P                  WW#WEVR 7       \        P                  ! V / 4       R.pR. RVRVRVRV/V n        R# )r  r  r  r  r  r  r  Nr   r1   r   r  re  s   &&&&&&& r,   r1   $ClassicFlangFortranCompiler.__init__,  s`     	  !$, 	! 	PtR(./r000&(9	;r/   c                   V ^8  d   QhRR/# rc   r*   )r+   s   "r,   r-   r  9  s     	5 	5 	5r/   c                	t    . pV P                  R 4       F  pVP                  RV 24       K  	  VRR.,           # )r:  r   z-lflangz-lpgmathr;  r=  s   &  r,   r@  ;ClassicFlangFortranCompiler.language_stdlib_only_link_flags9  sB     $&''4AA3x( 5i444r/   rJ  r   )r   r   r   r   r   r1   r@  r   r*   r/   r,   r  r  (  s    	B;	5 	5r/   r  c                      ] tR tRtRtRtR# )ArmLtdFlangFortranCompileriE  armltdflangr*   Nr  r*   r/   r,   r  r  E  s    	Br/   r  c                  f    ] tR tRtRtRR R lltR R ltR R	 ltR
 R ltR R lt	R R lt
RtR# )LlvmFlangFortranCompileriJ  z
llvm-flangNc               0    V ^8  d   QhRRRRRRRRR	R
RR/# r   r*   )r+   s   "r,   r-   %LlvmFlangFortranCompiler.__annotate__N  r  r/   c           
     	    \         P                  WW#WEVR 7       \        P                  ! V / 4       R.pR. RVRVRVRV/V n        R# )r  r  r  r  r  r  r  Nr  re  s   &&&&&&& r,   r1   !LlvmFlangFortranCompiler.__init__N  s_     	  !$, 	! 	PtR($Ir000&(9	;r/   c                    V ^8  d   QhRRRR/# )r   	colortyper#   r<   r!   r*   )r+   s   "r,   r-   r  [  s      3 ; r/   c                	    . # rD   r*   )r3   r  s   &&r,   get_colorout_args*LlvmFlangFortranCompiler.get_colorout_args[      	r/   c               $    V ^8  d   QhRRRRRR/# r+  r*   )r+   s   "r,   r-   r  _  s!       s { r/   c                	    . # rD   r*   r/  s   &&&r,   r0  0LlvmFlangFortranCompiler.get_dependency_gen_args_  r  r/   c                    V ^8  d   QhRRRR/# rt   r*   )r+   s   "r,   r-   r  c  s     % %3 %; %r/   c                	
    R V.# )z-module-dirr*   rx   s   &&r,   ry   /LlvmFlangFortranCompiler.get_module_outdir_argsc  s     t$$r/   c                    V ^8  d   QhRRRR/# )r   vistyper#   r<   r!   r*   )r+   s   "r,   r-   r  h  s      # + r/   c                	    . # rD   r*   )r3   r"  s   &&r,   gnu_symbol_visibility_args3LlvmFlangFortranCompiler.gnu_symbol_visibility_argsh  s	     	r/   c                   V ^8  d   QhRR/# rc   r*   )r+   s   "r,   r-   r  m  s       r/   c                	    . pV P                  R 4       F  pVP                  RV 24       K  	  \        V P                  R4      '       d   VRR.,          pV# )r:  r   z<19z-lFortranRuntimez-lFortranDecimal)r<  r'  r   r"   r=  s   &  r,   r@  8LlvmFlangFortranCompiler.language_stdlib_only_link_flagsm  sZ    #%''4AA3x( 5 4<<//.0BCCKr/   rJ  r   )r   r   r   r   r   r1   r  r0  ry   r$  r@  r   r*   r/   r,   r  r  J  s*    	B;%

 r/   r  c                  6    ] tR tRtRtR	R R lltR R ltRtR# )
Open64FortranCompileri  open64Nc               0    V ^8  d   QhRRRRRRRRR	R
RR/# r   r*   )r+   s   "r,   r-   "Open64FortranCompiler.__annotate__  r  r/   c           
     	`    \         P                  WW#WEVR 7       R.pR. RVRVRVRV/V n        R# r  rd  re  s   &&&&&&& r,   r1   Open64FortranCompiler.__init__  r  r/   c                   V ^8  d   QhRR/# rc   r*   )r+   s   "r,   r-   r-    r  r/   c                	    R .# r  r*   ro   s   &r,   r  "Open64FortranCompiler.openmp_flags  r  r/   rJ  r   r  r*   r/   r,   r*  r*    s    	B
; r/   r*  c                      ] tR tRtRtRR R lltR R ltR R	 lt]R
 R l4       t	R R lt
R R ltR R ltR R ltRtR# )NAGFortranCompileri  nagforNc               0    V ^8  d   QhRRRRRRRRR	R
RR/# r   r*   )r+   s   "r,   r-   NAGFortranCompiler.__annotate__  s9     
 
 
c 
 
!
+F
.
r/   c           
     	\    \         P                  WW#WEVR 7       RR.R. R. R. R. /V n        R# )r  r  z-w=allr  r  r  r  Nrd  r2   s   &&&&&&&r,   r1   NAGFortranCompiler.__init__  sG     	  !$, 	! 	P ("
r/   c                   V ^8  d   QhRR/# rc   r*   )r+   s   "r,   r-   r7    s     3 3 3r/   c                	8    V P                  V P                  4      # rD   )get_nagfor_quietr"   ro   s   &r,   rv  "NAGFortranCompiler.get_always_args  s    $$T\\22r/   c                    V ^8  d   QhRRRR/# rt   r*   )r+   s   "r,   r-   r7    s      3 ; r/   c                	
    R V.# )z-mdirr*   rx   s   &&r,   ry   )NAGFortranCompiler.get_module_outdir_args  s    r/   c                    V ^8  d   QhRRRR/# )r   r"   r#   r<   r!   r*   )r+   s   "r,   r-   r7    s     H H# H+ Hr/   c                	0    \        V R 4      '       d   R.# . # )z>=7100z-quiet)r   )r"   s   &r,   r<  #NAGFortranCompiler.get_nagfor_quiet  s    ,Wh??zGRGr/   c                   V ^8  d   QhRR/# rc   r*   )r+   s   "r,   r-   r7    s      k r/   c                	    R .# )z-PICr*   ro   s   &r,   get_pic_argsNAGFortranCompiler.get_pic_args  rs  r/   c                   V ^8  d   QhRR/# rc   r*   )r+   s   "r,   r-   r7    s      + r/   c                	    R .# rq  r*   ro   s   &r,   rg   +NAGFortranCompiler.get_preprocess_only_args  rs  r/   c                   V ^8  d   QhRR/# rc   r*   )r+   s   "r,   r-   r7    s     & &{ &r/   c                	"    V P                  4       # rD   )rv  ro   s   &r,   get_std_exe_link_args(NAGFortranCompiler.get_std_exe_link_args  s    ##%%r/   c                   V ^8  d   QhRR/# rc   r*   )r+   s   "r,   r-   r7    s      k r/   c                	    R .# )z-openmpr*   ro   s   &r,   r  NAGFortranCompiler.openmp_flags  s
    {r/   rJ  r   )r   r   r   r   r   r1   rv  ry   staticmethodr<  rF  rg   rM  r  r   r*   r/   r,   r4  r4    sE    	B
3 H H& r/   r4  );
__future__r   typingTr   r   r   r   r   	compilersr   r   r   mixins.cliker	   
mixins.gnur
   r   mixins.intelr   r   mixins.clangr   mixins.elbrusr   
mixins.pgir   mesonbuild.mesonlibr   r   r   TYPE_CHECKINGr   r6   r   rE   r   linkers.linkersr   r   buildr   r   r  rM  r^  rl  r  r  r  r  r  r  r  r  r  r  r*  r4  r*   r/   r,   <module>ra     sP   #   	   
 ( ; M ' ) # 
 ???4))/(#W6mX W6tAwo AwHNO &! !* 0-@/ -@`3 &#:O &#R!7  (4o 4,J_ J&5- 5:!< 
2}o 2jO (& &r/   