§
    ‹ã÷cýš  ã                  ó.  — d dl mZ d dlZd dlZd dlZd dlZddlm	Z	 ddlm
Z
 ddlmZmZ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 ddlm Z 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/m0Z0 ej1        r5ddlm2Z2 ddl	m3Z3m4Z4 ddl5m6Z6 ddl7m8Z8 ddl9m:Z: ddl;m<Z< ddlm=Z= ddl>m?Z? eZ@neAZ@dPd#„ZB G d$„ d%ee¦  «        ZC G d&„ d'e*eC¦  «        ZD G d(„ d)eD¦  «        ZE G d*„ d+eD¦  «        ZF G d,„ d-e0eD¦  «        ZG G d.„ d/eeC¦  «        ZH G d0„ d1e#eC¦  «        ZI G d2„ d3e.eC¦  «        ZJ G d4„ d5e.eC¦  «        ZK G d6„ d7e,eC¦  «        ZL G d8„ d9e'eC¦  «        ZM G d:„ d;eD¦  «        ZN G d<„ d=e@¦  «        ZO G d>„ d?e@¦  «        ZP G d@„ dAePeOe eC¦  «        ZQ G dB„ dCePeOe!eC¦  «        ZR G dD„ dEeOe(eC¦  «        ZS G dF„ dGeS¦  «        ZT G dH„ dIeeC¦  «        ZU G dJ„ dKeeC¦  «        ZV G dL„ dMeeC¦  «        ZW G dN„ dOeW¦  «        ZXdS )Qé    )ÚannotationsNé   )Úcoredata)Úmlog)ÚMesonExceptionÚversion_compareÚ	OptionKeyé   )Úgnu_winlibsÚmsvc_winlibsÚCompiler)ÚCXX_FUNC_ATTRIBUTESÚC_FUNC_ATTRIBUTES)ÚCLikeCompiler)ÚCcrxCompiler)Ú
TICompiler)ÚArmCompilerÚArmclangCompiler)ÚMSVCCompilerÚClangClCompiler)ÚGnuCompilerÚgnu_common_warning_argsÚgnu_cpp_warning_args)ÚIntelGnuLikeCompilerÚIntelVisualStudioLikeCompiler)ÚClangCompiler)ÚElbrusCompiler)ÚPGICompiler)ÚEmscriptenMixin)ÚCompileCheckMode)ÚMutableKeyedOptionDictTypeÚKeyedOptionDictType)Ú
Dependency)ÚMachineInfo)ÚEnvironment)ÚDynamicLinker)ÚMachineChoice)ÚExternalProgramÚehÚstrÚargsúT.List[str]ÚreturnÚNonec                ó†   — | dk    r|                      d¦  «         d S | dv rt          j        d| z   dz   dz   ¦  «         d S d S )NÚnoneú-fno-exceptions>   ÚcÚsz"non-MSVC compilers do not support z exception handling.z$You may want to set eh to 'default'.)Úappendr   Úwarning)r)   r+   s     ú:/usr/lib/python3/dist-packages/mesonbuild/compilers/cpp.pyÚnon_msvc_eh_optionsr7   9   sk   € Ø	ˆV‚|€|Ø�ŠÐ%Ñ&Ô&Ð&Ð&Ð&Ø	ˆzÐ	Ð	ÝŒÐ9¸BÑ>ÐAWÑWØ=ñ>ñ 	?ô 	?ð 	?ð 	?ð 	?ð 
Ð	ó    c                  ó¾   ‡ — e Zd Zd3d„ZdZ	 	 	 d4d5d„Zed6d„¦   «         Zd7d„Zd8d„Z	d9ˆ fd!„Z
ddd"œd:ˆ fd,„Zd;d.„Z ej        ¦   «         d<d0„¦   «         Zd=ˆ fd2„Zˆ xZS )>ÚCPPCompilerÚnamer*   r-   c                ó†   — 	 t          j        |t          |         ¦  «        S # t          $ r t	          d|› d�¦  «        ‚w xY w)NzUnknown function attribute "ú")r   Úgetr   ÚKeyErrorr   )Úselfr;   s     r6   Úattribute_check_funcz CPPCompiler.attribute_check_funcA   sZ   € ð	IÝ&Ô*¨4Õ1BÀ4Ô1HÑIÔIÐIøÝð 	Ið 	Ið 	IÝ Ð!GÀÐ!GÐ!GÐ!GÑHÔHÐHð	Iøøøs	   ‚" ¢A ÚcppNÚccacher,   ÚexelistÚversionÚ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        | ||||||||	¬¦	  «	         t          j        | |¦  «         d S )N)rG   rM   rO   )r   Ú__init__r   ©
r@   rC   rD   rE   rF   rG   rI   rK   rM   rO   s
             r6   rR   zCPPCompiler.__init__I   sM   € õ
 	Ô˜$ ¨°¸+ÀtØ#+°FØ'3ð	5ñ 	5ô 	5ð 	5õ 	Ô˜t [Ñ1Ô1Ð1Ð1Ð1r8   c                 ó   — dS )NzC++© rU   r8   r6   Úget_display_languagez CPPCompiler.get_display_languageS   s   € àˆur8   c                ó   — dgS )Nz-nostdinc++rU   ©r@   s    r6   Úget_no_stdinc_argszCPPCompiler.get_no_stdinc_argsW   s
   € ØˆÐr8   Úwork_dirÚenvironmentú'Environment'r.   c                ó6   — d}|                       ||d|¦  «        S )Nz2class breakCCompiler;int main(void) { return 0; }
zsanitycheckcpp.cc)Ú_sanity_check_impl)r@   rZ   r[   Úcodes       r6   Úsanity_checkzCPPCompiler.sanity_checkZ   s#   € ØDˆØ×&Ò& x°Ð>QÐSWÑXÔXÐXr8   Úmoder    c                óN   •— t          ¦   «                              |¦  «        dgz   S )Nz-fpermissive)ÚsuperÚget_compiler_check_args)r@   ra   Ú	__class__s     €r6   rd   z#CPPCompiler.get_compiler_check_args^   s%   ø€ õ ‰wŒw×.Ò.¨tÑ4Ô4¸Ð7GÑGÐGr8   ©Ú
extra_argsÚdependenciesÚhnameÚsymbolÚprefixÚenvrg   úGT.Union[None, T.List[str], T.Callable[[CompileCheckMode], T.List[str]]]rh   ú T.Optional[T.List['Dependency']]úT.Tuple[bool, bool]c               ó´   •— t          ¦   «                              ||||||¬¦  «        \  }}|rd|fS |€g }|› d|› d|› d�}	|                      |	|||¬¦  «        S )Nrf   Tz
        #include <z>
        using z&;
        int main(void) { return 0; })rc   Úhas_header_symbolÚcompiles)r@   ri   rj   rk   rl   rg   rh   ÚfoundÚcachedÚtre   s             €r6   rq   zCPPCompiler.has_header_symbold   sª   ø€ õ
 ™œ×1Ò1°%¸ÀÈØ=GØ?Kð 2ñ Mô M‰ˆˆvð ð 	 Ø˜�<ÐàÐØˆJØð *ð *Øð*ð *àð*ð *ð *ˆð �}Š}˜Q °
Ø*6ð ñ 8ô 8ð 	8r8   Úcpp_std_valuec                ó4  — |                      d¦  «        sJ ‚d}|                      ||gd¬¦  «        5 }|j        dk    r't          j        d|› d�d¦  «         	 d d d ¦  «         d	S t          j        d|› d�d
¦  «         	 d d d ¦  «         dS # 1 swxY w Y   d S )Nú-std=zint i = static_cast<int>(0);Úcompile)rg   ra   r   zCompiler accepts ú:ÚYESTÚNOF)Ú
startswithry   Ú
returncoder   Údebug)r@   rv   ÚCPP_TESTÚps       r6   Ú_test_cpp_std_argzCPPCompiler._test_cpp_std_argx   s  € à×'Ò'¨Ñ0Ô0Ð0Ð0Ð0ð 2ˆØ�\Š\˜(°¨ÀYˆ\ÑOÔOð 	ÐSTØŒ|˜qÒ Ð Ý”
Ð?¨}Ð?Ð?Ð?ÀÑGÔGÐGØð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	õ
 ”
Ð?¨}Ð?Ð?Ð?ÀÑFÔFÐFØð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ³&BÁ&BÂBÂBÚcpp_stdc           	     óØ   — ddddddddd	œ}| j         t          g d
¢¦  «        v sJ ‚||vrd|z   S |||         fD ] }d|z   }|                      |¦  «        r|c S Œ!t          d|› �¦  «        ‚)Núc++0xúgnu++0xúc++1yúgnu++1yúc++1zúgnu++1zúc++2aúgnu++2a)úc++11úgnu++11úc++14úgnu++14úc++17úgnu++17úc++20úgnu++20)ÚclangÚlccÚgccÚ
emscriptenÚarmltdclangú
intel-llvmrx   z#C++ Compiler does not support -std=)ÚidÚ	frozensetr‚   r   )r@   rƒ   ÚCPP_FALLBACKSÚirv   s        r6   Ú_find_best_cpp_stdzCPPCompiler._find_best_cpp_stdŠ   sÄ   € ð Ø ØØ ØØ ØØ ð	
ð 	
ˆð Œw�)Ð$fÐ$fÐ$fÑgÔgÐgÐgÐgÐgà˜-Ð'Ð'à˜WÑ$Ð$à˜=¨Ô1Ð2ð 	%ð 	%ˆAØ# a™KˆMØ×%Ò% mÑ4Ô4ð %Ø$Ð$Ð$Ð$ð%õ ÐLÀ7ÐLÐLÑMÔMÐMr8   ú'MutableKeyedOptionDictType'c                óØ   •— t          ¦   «                              ¦   «         }t          d| j        | j        ¬¦  «        }|                     |t          j        ddgd¦  «        i¦  «         |S )NÚstd©ÚmachineÚlangzC++ language standard to user0   )rc   Úget_optionsr	   rF   ÚlanguageÚupdater   ÚUserComboOption)r@   ÚoptsÚkeyre   s      €r6   r¦   zCPPCompiler.get_options«   sp   ø€ Ý‰wŒw×"Ò"Ñ$Ô$ˆÝ˜ tÔ'7¸d¼mÐLÑLÔLˆØ�ŠØ•Ô)Ø.Ø�Øñô ð
ñ 	ô 	ð 	ð ˆr8   )r;   r*   r-   r*   ©NNN©rC   r,   rD   r,   rE   r*   rF   r'   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   )r-   r*   ©r-   r,   )rZ   r*   r[   r\   r-   r.   ©ra   r    r-   r,   )ri   r*   rj   r*   rk   r*   rl   r\   rg   rm   rh   rn   r-   ro   )rv   r*   r-   rH   )rƒ   r*   r-   r*   ©r-   r    )Ú__name__Ú
__module__Ú__qualname__rA   r§   rR   ÚstaticmethodrV   rY   r`   rd   rq   r‚   Ú	functoolsÚ	lru_cacherŸ   r¦   Ú__classcell__©re   s   @r6   r:   r:   @   si  ø€ € € € € ðIð Ið Ið Ið €Hð TXØ7;Ø15ð2ð 2ð 2ð 2ð 2ð ðð ð ñ „\ððð ð ð ðYð Yð Yð YðHð Hð Hð Hð Hð Hð quØKOð8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð(ð ð ð ð$ €YÔÑÔðNð Nð Nñ ÔðNð@
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
r8   r:   c                  ó@   — e Zd Z	 	 	 	 d d!d„Zd"d„Zd#d„Zd#d„Zd$d„ZdS )%ÚClangCPPCompilerNrC   r,   rD   rE   r*   rF   r'   rG   rH   rI   rJ   rK   rL   rM   rN   ÚdefinesúT.Optional[T.Dict[str, str]]rO   rP   c                ó®   — t                                | |||||||||
¬¦
  «
         t          j        | |	¦  «         ddg}g ||dgz   |ddgz   dgdœ| _        d S ©N©rM   rO   ú-Wallú-Winvalid-pchú-Wextraú
-Wpedanticz-Weverything©Ú0Ú1Ú2Ú3Ú
everything)r:   rR   r   Ú	warn_args©r@   rC   rD   rE   rF   rG   rI   rK   rM   r»   rO   Údefault_warn_argss               r6   rR   zClangCPPCompiler.__init__¹   sŒ   € õ
 	×Ò˜T 6¨7°G¸[È(Ø! ;°vÈLð 	ñ 	Zô 	Zð 	ZåÔ˜t WÑ-Ô-Ð-Ø$ oÐ6ÐØ!Ø0Ø0°I°;Ñ>Ø0°I¸|Ð3LÑLØ)7Ð(8ð	:ð :ˆŒˆˆr8   r-   r    c           	     ón  — t                                | ¦  «        }t          d| j        | j        ¬¦  «        }|                     |                     d¦  «        t          j        dg d¢d¦  «        |                     d¦  «        t          j	        dd	¦  «        i¦  «         g d
¢||                     d¦  «                 _
        | j                             ¦   «         s| j                             ¦   «         rB|                     |                     d¦  «        t          j        dt          ¦  «        i¦  «         |S )Nr«   r£   r)   úC++ exception handling type.©r0   ÚdefaultÚar3   ÚscrÐ   ÚrttiúEnable RTTIT)r0   úc++98úc++03r�   r�   r‘   r‰   r‹   r“   rŽ   r�   r’   rŠ   rŒ   r”   r¢   Úwinlibsú&Standard Win libraries to link against)r:   r¦   r	   rF   r§   r¨   Úevolver   r©   ÚUserBooleanOptionÚchoicesrI   Ú
is_windowsÚ	is_cygwinÚUserArrayOptionr   ©r@   rª   r«   s      r6   r¦   zClangCPPCompiler.get_optionsÈ   s.  € Ý×&Ò& tÑ,Ô,ˆÝ˜ tÔ'7¸d¼mÐLÑLÔLˆØ�ŠØ�JŠJ�tÑÔ�hÔ6Ø.Ø3Ð3Ð3Øñô ð
 �JŠJ�vÑÔ¥Ô :¸=È$Ñ OÔ Oð
ñ 	ô 	ð 	ð+
ð +
ð +
ˆˆS�ZŠZ˜ÑÔÔÔ'ð
 Œ9×ÒÑ!Ô!ð 	 T¤Y×%8Ò%8Ñ%:Ô%:ð 	Ø�KŠKØ—
’
˜9Ñ%Ô%¥xÔ'?Ø<Ýñ(ô (ðñ ô ð ð ˆr8   Úoptionsú'KeyedOptionDictType'c                óˆ  — g }t          d| j        | j        ¬¦  «        }||         }|j        dk    r-|                     |                      |j        ¦  «        ¦  «         t          ||                     d¦  «                 j        |¦  «         ||                     d¦  «                 j        s|                     d¦  «         |S )Nr¢   r£   r0   r)   rÓ   ú	-fno-rtti©r	   rF   r§   Úvaluer4   rŸ   r7   rÙ   ©r@   rà   r+   r«   r¢   s        r6   Úget_option_compile_argsz(ClangCPPCompiler.get_option_compile_argsá   s¯   € ØˆÝ˜ tÔ'7¸d¼mÐLÑLÔLˆØ�cŒlˆØŒ9˜ÒÐØ�KŠK˜×/Ò/°´	Ñ:Ô:Ñ;Ô;Ð;å˜G C§J¢J¨tÑ$4Ô$4Ô5Ô;¸TÑBÔBÐBà�s—z’z &Ñ)Ô)Ô*Ô0ð 	%Ø�KŠK˜Ñ$Ô$Ð$àˆr8   c                óJ  — | j                              ¦   «         s| j                              ¦   «         rpt          d| j        | j        ¬¦  «        }||         j                             ¦   «         }t          |t          ¦  «        sJ ‚|D ]}t          |t          ¦  «        sJ ‚Œ|S g S ©Nr×   r£   ©rI   rÜ   rÝ   r	   rF   r§   rå   ÚcopyÚ
isinstanceÚlistr*   ©r@   rà   r«   ÚlibsÚls        r6   Úget_option_link_argsz%ClangCPPCompiler.get_option_link_argsï   ó¦   € ØŒ9×ÒÑ!Ô!ð 	 T¤Y×%8Ò%8Ñ%:Ô%:ð 	å˜I¨tÔ/?ÀdÄmÐTÑTÔTˆCØ˜3”<Ô%×*Ò*Ñ,Ô,ˆDÝ˜d¥DÑ)Ô)Ð)Ð)Ð)Øð *ð *�Ý! !¥SÑ)Ô)Ð)Ð)Ð)Ð)ØˆKØˆ	r8   rl   r\   c                ót   — g }|                       |d¦  «        D ]}|                     d|› �¦  «         Œ|dgz   S ©NÚ	librariesú-Lz-lstdc++©Úget_compiler_dirsr4   ©r@   rl   Úsearch_dirsÚds       r6   Úlanguage_stdlib_only_link_flagsz0ClangCPPCompiler.language_stdlib_only_link_flagsú   sR   € ð
 $&ˆØ×'Ò'¨¨[Ñ9Ô9ð 	)ð 	)ˆAØ×Ò˜x A˜x˜xÑ(Ô(Ð(Ð(Ø˜j˜\Ñ)Ð)r8   ©NNNN©rC   r,   rD   r,   rE   r*   rF   r'   rG   rH   rI   rJ   rK   rL   rM   rN   r»   r¼   rO   rP   r°   ©rà   rá   r-   r,   ©rl   r\   r-   r,   )r±   r²   r³   rR   r¦   rç   rñ   rü   rU   r8   r6   rº   rº   ¸   s‰   € € € € € àSWØ7;Ø9=Ø15ð	:ð :ð :ð :ð :ðð ð ð ð2ð ð ð ð	ð 	ð 	ð 	ð*ð *ð *ð *ð *ð *r8   rº   c                  ó   — e Zd ZdZdS )ÚArmLtdClangCPPCompilerr™   N©r±   r²   r³   r›   rU   r8   r6   r  r    s   € € € € € à	€B€B€Br8   r  c                  ó   — e Zd Zdd„ZdS )ÚAppleClangCPPCompilerrl   r\   r-   r,   c                ót   — g }|                       |d¦  «        D ]}|                     d|› �¦  «         Œ|dgz   S )Nrõ   rö   z-lc++r÷   rù   s       r6   rü   z5AppleClangCPPCompiler.language_stdlib_only_link_flags  sR   € ð
 $&ˆØ×'Ò'¨¨[Ñ9Ô9ð 	)ð 	)ˆAØ×Ò˜x A˜x˜xÑ(Ô(Ð(Ð(Ø˜g˜YÑ&Ð&r8   Nr   )r±   r²   r³   rü   rU   r8   r6   r  r  
  s(   € € € € € ð'ð 'ð 'ð 'ð 'ð 'r8   r  c                  ó,   — e Zd ZdZ	 	 	 	 ddd„Zdd„ZdS )ÚEmscriptenCPPCompilerr˜   NrC   r,   rD   rE   r*   rF   r'   rG   rH   rI   rJ   rK   rL   rM   rN   r»   r¼   rO   rP   c                ó°   — |st          d¦  «        ‚t          |d¦  «        st          d¦  «        ‚t                               | |||||||||	|
¬¦  «         d S )Nz;Emscripten compiler can only be used for cross compilation.z	>=1.39.19z$Meson requires Emscripten >= 1.39.19)rK   rM   r»   rO   )r   r   rº   rR   ©r@   rC   rD   rE   rF   rG   rI   rK   rM   r»   rO   s              r6   rR   zEmscriptenCPPCompiler.__init__  s‚   € ð
 ð 	`Ý Ð!^Ñ_Ô_Ð_Ý˜w¨Ñ4Ô4ð 	IÝ Ð!GÑHÔHÐHÝ×!Ò! $¨°¸À+ÈxØ"&°KÈØ*1Àð 	"ñ 	Nô 	Nð 	Nð 	Nð 	Nr8   rà   rá   r-   c                óÂ   — g }t          d| j        | j        ¬¦  «        }||         }|j        dk    r-|                     |                      |j        ¦  «        ¦  «         |S )Nr¢   r£   r0   )r	   rF   r§   rå   r4   rŸ   ræ   s        r6   rç   z-EmscriptenCPPCompiler.get_option_compile_args'  s]   € ØˆÝ˜ tÔ'7¸d¼mÐLÑLÔLˆØ�cŒlˆØŒ9˜ÒÐØ�KŠK˜×/Ò/°´	Ñ:Ô:Ñ;Ô;Ð;Øˆr8   rý   rþ   rÿ   )r±   r²   r³   r›   rR   rç   rU   r8   r6   r  r    s[   € € € € € à	€Bð TXØ7;Ø9=Ø15ð	Nð Nð Nð Nð Nðð ð ð ð ð r8   r  c                  ó:   — e Zd ZdZ	 	 	 ddd„Zdd„Zdd„Zdd„ZdS ) ÚArmclangCPPCompilerz
    Keil armclang
    NrC   r,   rD   rE   r*   rF   r'   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   c
                ó¬   — t                                | |||||||||	¬¦
  «
         t          j        | ¦  «         ddg}
g |
|
dgz   |
ddgz   dgdœ| _        d S r¾   )r:   rR   r   rÊ   ©r@   rC   rD   rE   rF   rG   rI   rK   rM   rO   rÌ   s              r6   rR   zArmclangCPPCompiler.__init__5  sŠ   € õ 	×Ò˜T 6¨7°G¸[È(Ø! ;°vÈLð 	ñ 	Zô 	Zð 	ZåÔ! $Ñ'Ô'Ð'Ø$ oÐ6ÐØ!Ø0Ø0°I°;Ñ>Ø0°I¸|Ð3LÑLØ)7Ð(8ð	:ð :ˆŒˆˆr8   r-   r    c                ó  — t                                | ¦  «        }t          d| j        | j        ¬¦  «        }|                     |                     d¦  «        t          j        dg d¢d¦  «        i¦  «         g d¢||         _	        |S )Nr¢   r£   r)   rÎ   rÏ   rÐ   )r0   rÕ   rÖ   r�   r�   r‘   úgnu++98úgnu++03rŽ   r�   r’   )
r:   r¦   r	   rF   r§   r¨   rÙ   r   r©   rÛ   rß   s      r6   r¦   zArmclangCPPCompiler.get_optionsC  s•   € Ý×&Ò& tÑ,Ô,ˆÝ˜ tÔ'7¸d¼mÐLÑLÔLˆØ�ŠØ�JŠJ�tÑÔ�hÔ6Ø.Ø3Ð3Ð3Øñô ð
ñ 	ô 	ð 	ð
ð 
ð 
ˆˆSŒ	Ôð ˆr8   rà   rá   c                óþ   — g }t          d| j        | j        ¬¦  «        }||         }|j        dk    r|                     d|j        z   ¦  «         t          ||                     d¦  «                 j        |¦  «         |S )Nr¢   r£   r0   rx   r)   )r	   rF   r§   rå   r4   r7   rÙ   ræ   s        r6   rç   z+ArmclangCPPCompiler.get_option_compile_argsS  sx   € ØˆÝ˜ tÔ'7¸d¼mÐLÑLÔLˆØ�cŒlˆØŒ9˜ÒÐØ�KŠK˜ #¤)Ñ+Ñ,Ô,Ð,å˜G C§J¢J¨tÑ$4Ô$4Ô5Ô;¸TÑBÔBÐBàˆr8   c                ó   — g S ©NrU   ©r@   rà   s     r6   rñ   z(ArmclangCPPCompiler.get_option_link_args^  ó   € Øˆ	r8   r¬   r­   r°   rÿ   )r±   r²   r³   Ú__doc__rR   r¦   rç   rñ   rU   r8   r6   r  r  0  s€   € € € € € ðð ð
 TXØ7;Ø15ð:ð :ð :ð :ð :ðð ð ð ð 	ð 	ð 	ð 	ðð ð ð ð ð r8   r  c                  óH   — e Zd Z	 	 	 	 d#d$d„Zd%d„Zd&d„Zd&d„Zd'd„Zd(d"„ZdS ))ÚGnuCPPCompilerNrC   r,   rD   rE   r*   rF   r'   rG   rH   rI   rJ   rK   rL   rM   rN   r»   r¼   rO   rP   c                ó"  — t                                | |||||||||
¬¦
  «
         t          j        | |	¦  «         ddg}g ||dgz   |ddgz   |ddgz   |                      t          ¦  «        z   |                      t
          ¦  «        z   dœ| _        d S )Nr¿   rÀ   rÁ   rÂ   rÃ   rÄ   )r:   rR   r   Úsupported_warn_argsr   r   rÊ   rË   s               r6   rR   zGnuCPPCompiler.__init__c  sÅ   € õ
 	×Ò˜T 6¨7°G¸[È(Ø! ;°vÈLð 	ñ 	Zô 	Zð 	ZåÔ˜T 7Ñ+Ô+Ð+Ø$ oÐ6ÐØ!Ø0Ø0°I°;Ñ>Ø0°I¸|Ð3LÑLØ):¸iÈÐ=VÑ)VØ)-×)AÒ)AÕBYÑ)ZÔ)Zñ*[à)-×)AÒ)AÕBVÑ)WÔ)Wñ*Xð	Zð ZˆŒˆˆr8   r-   r    c                ó˜  — t          d| j        | j        ¬¦  «        }t                               | ¦  «        }|                     |                     d¦  «        t          j        dg d¢d¦  «        |                     d¦  «        t          j	        dd	¦  «        |                     d
¦  «        t          j	        dd¦  «        i¦  «         g d¢||         _
        | j                             ¦   «         s| j                             ¦   «         rB|                     |                     d¦  «        t          j        dt          ¦  «        i¦  «         |S )Nr¢   r£   r)   rÎ   rÏ   rÐ   rÓ   rÔ   TÚdebugstlúSTL debug modeF)r0   rÕ   rÖ   r�   r�   r‘   r‰   r‹   r“   r  rŽ   r�   r’   rŠ   rŒ   r”   r×   rØ   )r	   rF   r§   r:   r¦   r¨   rÙ   r   r©   rÚ   rÛ   rI   rÜ   rÝ   rÞ   r   )r@   r«   rª   s      r6   r¦   zGnuCPPCompiler.get_optionst  sE  € Ý˜ tÔ'7¸d¼mÐLÑLÔLˆÝ×&Ò& tÑ,Ô,ˆØ�ŠØ�JŠJ�tÑÔ�hÔ6Ø.Ø3Ð3Ð3Øñô ð
 �JŠJ�vÑÔ¥Ô :¸=È$Ñ OÔ OØ�JŠJ�zÑ"Ô"¥HÔ$>Ø Øñ%ô %ð
ñ 	ô 	ð 	ð
ð 
ð 
ˆˆSŒ	Ôð
 Œ9×ÒÑ!Ô!ð 	 T¤Y×%8Ò%8Ñ%:Ô%:ð 	Ø�KŠKØ—
’
˜9Ñ%Ô%¥xÔ'?Ø<Ýñ(ô (ðñ ô ð ð ˆr8   rà   rá   c                óò  — g }t          d| j        | j        ¬¦  «        }||         }|j        dk    r-|                     |                      |j        ¦  «        ¦  «         t          ||                     d¦  «                 j        |¦  «         ||                     d¦  «                 j        s|                     d¦  «         ||                     d¦  «                 j        r|                     d¦  «         |S )	Nr¢   r£   r0   r)   rÓ   rã   r  ú-D_GLIBCXX_DEBUG=1rä   ræ   s        r6   rç   z&GnuCPPCompiler.get_option_compile_args‘  sÞ   € ØˆÝ˜ tÔ'7¸d¼mÐLÑLÔLˆØ�cŒlˆØŒ9˜ÒÐØ�KŠK˜×/Ò/°´	Ñ:Ô:Ñ;Ô;Ð;å˜G C§J¢J¨tÑ$4Ô$4Ô5Ô;¸TÑBÔBÐBà�s—z’z &Ñ)Ô)Ô*Ô0ð 	%Ø�KŠK˜Ñ$Ô$Ð$à�3—:’:˜jÑ)Ô)Ô*Ô0ð 	.Ø�KŠKÐ,Ñ-Ô-Ð-Øˆr8   c                óJ  — | j                              ¦   «         s| j                              ¦   «         rpt          d| j        | j        ¬¦  «        }||         j                             ¦   «         }t          |t          ¦  «        sJ ‚|D ]}t          |t          ¦  «        sJ ‚Œ|S g S ré   rê   rî   s        r6   rñ   z#GnuCPPCompiler.get_option_link_args¡  rò   r8   Úpch_dirÚheaderc                óF   — ddt           j                             |¦  «        gS )Nz-fpch-preprocessz-include)ÚosÚpathÚbasename)r@   r#  r$  s      r6   Úget_pch_use_argszGnuCPPCompiler.get_pch_use_args¬  s   € Ø" Jµ´×0@Ò0@ÀÑ0HÔ0HÐIÐIr8   rl   r\   c                ón   — g }|                       |d¦  «        D ]}|                     d|› �¦  «         ŒdgS rô   r÷   rù   s       r6   rü   z.GnuCPPCompiler.language_stdlib_only_link_flags¯  sM   € ð
 $&ˆØ×'Ò'¨¨[Ñ9Ô9ð 	)ð 	)ˆAØ×Ò˜x A˜x˜xÑ(Ô(Ð(Ð(Øˆ|Ðr8   rý   rþ   r°   rÿ   )r#  r*   r$  r*   r-   r,   r   )	r±   r²   r³   rR   r¦   rç   rñ   r)  rü   rU   r8   r6   r  r  b  s¦   € € € € € àSWØ7;Ø9=Ø15ð	Zð Zð Zð Zð Zð"ð ð ð ð:ð ð ð ð 	ð 	ð 	ð 	ðJð Jð Jð Jðð ð ð ð ð r8   r  c                  ó   — e Zd Z	 	 	 ddd„ZdS )ÚPGICPPCompilerNrC   r,   rD   rE   r*   rF   r'   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   c
                óv   — t                                | |||||||||	¬¦
  «
         t          j        | ¦  «         d S ©Nr¿   ©r:   rR   r   rS   s
             r6   rR   zPGICPPCompiler.__init__»  óP   € õ 	×Ò˜T 6¨7°G¸[È(Ø! ;°vÈLð 	ñ 	Zô 	Zð 	ZåÔ˜TÑ"Ô"Ð"Ð"Ð"r8   r¬   r­   )r±   r²   r³   rR   rU   r8   r6   r,  r,  º  s6   € € € € € àSWØ7;Ø15ð#ð #ð #ð #ð #ð #ð #r8   r,  c                  ó"   — e Zd ZdZ	 	 	 ddd„ZdS )ÚNvidiaHPC_CPPCompilerÚ
nvidia_hpcNrC   r,   rD   rE   r*   rF   r'   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   c
                óv   — t                                | |||||||||	¬¦
  «
         t          j        | ¦  «         d S r.  r/  rS   s
             r6   rR   zNvidiaHPC_CPPCompiler.__init__È  r0  r8   r¬   r­   )r±   r²   r³   r›   rR   rU   r8   r6   r2  r2  Ä  s?   € € € € € à	€Bð TXØ7;Ø15ð#ð #ð #ð #ð #ð #ð #r8   r2  c                  óJ   ‡ — e Zd Z	 	 	 	 d'd(d„Zd)d„Zdddœd*ˆ fd#„Zd+d&„Zˆ xZS ),ÚElbrusCPPCompilerNrC   r,   rD   rE   r*   rF   r'   rG   rH   rI   rJ   rK   rL   rM   rN   r»   r¼   rO   rP   c                óv   — t                                | |||||||||
¬¦
  «
         t          j        | ¦  «         d S r.  )r:   rR   r   r
  s              r6   rR   zElbrusCPPCompiler.__init__Ò  sP   € õ
 	×Ò˜T 6¨7°G¸[È(Ø! ;°vÈLð 	ñ 	Zô 	Zð 	ZåÔ Ñ%Ô%Ð%Ð%Ð%r8   r-   r    c           	     ó  — t                                | ¦  «        }g d¢}t          | j        d¦  «        r|g d¢z  }t          | j        d¦  «        rt          | j        d¦  «        r|g d¢z  }t          | j        d¦  «        r|dd	gz  }t          | j        d
¦  «        r|ddgz  }t          | j        d¦  «        r|g d¢z  }t          | j        d¦  «        r|ddgz  }t          | j        d¦  «        r|ddgz  }t	          d| j        | j        ¬¦  «        }|                     |                     d¦  «        t          j
        dg d¢d¦  «        |                     d¦  «        t          j        dd¦  «        i¦  «         |||         _        |S )N)r0   rÕ   r  z	>=1.20.00)rÖ   r…   r�   r  r†   rŽ   z	>=1.21.00z<1.22.00)r�   r�   r‡   rˆ   z	>=1.22.00r�   r�   z	>=1.23.00r‡   rˆ   z	>=1.24.00)r‰   r‘   rŠ   r’   z	>=1.25.00r‹   rŒ   z	>=1.26.00r“   r”   r¢   r£   r)   rÎ   rÏ   rÐ   r  r  F©r:   r¦   r   rE   r	   rF   r§   r¨   rÙ   r   r©   rÚ   rÛ   ©r@   rª   Úcpp_stdsr«   s       r6   r¦   zElbrusCPPCompiler.get_optionsÛ  sÍ  € Ý×&Ò& tÑ,Ô,ˆà/Ð/Ð/ˆÝ˜4œ<¨Ñ5Ô5ð 	UØÐTÐTÐTÑTˆHÝ˜4œ<¨Ñ5Ô5ð 	A½/È$Ì,ÐXbÑ:cÔ:cð 	AØÐ@Ð@Ð@Ñ@ˆHÝ˜4œ<¨Ñ5Ô5ð 	-Ø˜ )Ð,Ñ,ˆHÝ˜4œ<¨Ñ5Ô5ð 	-Ø˜ )Ð,Ñ,ˆHÝ˜4œ<¨Ñ5Ô5ð 	AØÐ@Ð@Ð@Ñ@ˆHÝ˜4œ<¨Ñ5Ô5ð 	-Ø˜ )Ð,Ñ,ˆHÝ˜4œ<¨Ñ5Ô5ð 	-Ø˜ )Ð,Ñ,ˆHå˜ tÔ'7¸d¼mÐLÑLÔLˆØ�ŠØ�JŠJ�tÑÔ�hÔ6Ø.Ø3Ð3Ð3Øñô ð
 �JŠJ�zÑ"Ô"¥HÔ$>Ø Øñ%ô %ð

ñ 
	ô 
	ð 
	ð %ˆˆSŒ	ÔØˆr8   rf   Úfuncnamerk   rl   r\   rg   úT.Optional[T.List[str]]rh   rn   ro   c               ó`   •— |dk    rdS t          ¦   «                              |||||¬¦  «        S )NÚlchmod)FFrf   )rc   Úhas_function)r@   r<  rk   rl   rg   rh   re   s         €r6   r@  zElbrusCPPCompiler.has_functionÿ  sE   ø€ ð �xÒÐØ�<å‘7”7×'Ò'¨°&¸#Ø3=Ø5Að (ñ Cô Cð Cr8   rà   rá   c                óˆ  — g }t          d| j        | j        ¬¦  «        }||         }|j        dk    r-|                     |                      |j        ¦  «        ¦  «         t          ||                     d¦  «                 j        |¦  «         ||                     d¦  «                 j        r|                     d¦  «         |S )Nr¢   r£   r0   r)   r  r!  rä   ræ   s        r6   rç   z)ElbrusCPPCompiler.get_option_compile_args
  s°   € ØˆÝ˜ tÔ'7¸d¼mÐLÑLÔLˆØ�cŒlˆØŒ9˜ÒÐØ�KŠK˜×/Ò/°´	Ñ:Ô:Ñ;Ô;Ð;å˜G C§J¢J¨tÑ$4Ô$4Ô5Ô;¸TÑBÔBÐBà�3—:’:˜jÑ)Ô)Ô*Ô0ð 	.Ø�KŠKÐ,Ñ-Ô-Ð-Øˆr8   rý   rþ   r°   )r<  r*   rk   r*   rl   r\   rg   r=  rh   rn   r-   ro   rÿ   )r±   r²   r³   rR   r¦   r@  rç   r·   r¸   s   @r6   r6  r6  Ñ  s¦   ø€ € € € € àSWØ7;Ø9=Ø15ð	&ð &ð &ð &ð &ð ð  ð  ð  ðJ <@ØFJðCð Cð Cð Cð Cð Cð Cð Cðð ð ð ð ð ð ð r8   r6  c                  ó6   — e Zd Z	 	 	 ddd„Zdd„Zdd„Zdd„ZdS )ÚIntelCPPCompilerNrC   r,   rD   rE   r*   rF   r'   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   c
                óÊ   — t                                | |||||||||	¬¦
  «
         t          j        | ¦  «         d| _        g d¢}
g |
dgz   |
ddgz   |
ddgz   |
dgz   dœ| _        d S )Nr¿   z
c++-header)rÀ   z-w3z-Wpch-messagesz-diag-disable:remarkrÂ   rÄ   )r:   rR   r   Úlang_headerrÊ   r  s              r6   rR   zIntelCPPCompiler.__init__  s§   € õ 	×Ò˜T 6¨7°G¸[È(Ø! ;°vÈLð 	ñ 	Zô 	Zð 	ZåÔ% dÑ+Ô+Ð+Ø'ˆÔØ>Ð>Ð>ÐØ!Ø0Ð4JÐ3KÑKØ0°IÐ?UÐ3VÑVØ0°IÐ?UÐ3VÑVØ(9¸Y¸KÑ(Gð	Ið IˆŒˆˆr8   r-   r    c                ó¼  — t                                | ¦  «        }ddg}ddg}t          | j        d¦  «        r|ddgz  }|dgz  }t          | j        d	¦  «        r|d
gz  }t          | j        d¦  «        r|dgz  }t          | j        d¦  «        r|dgz  }|dgz  }t	          d| j        | j        ¬¦  «        }|                     |                     d¦  «        t          j
        dg d¢d¦  «        |                     d¦  «        t          j        dd¦  «        |                     d¦  «        t          j        dd¦  «        i¦  «         dg|z   |z   ||         _        |S )NrÕ   rÖ   r  r  z>=15.0.0r�   r�   rŽ   z>=16.0.0r‘   z>=17.0.0r�   z>=19.1.0r‹   rŒ   r¢   r£   r)   rÎ   rÏ   rÐ   rÓ   rÔ   Tr  r  Fr0   r9  )r@   rª   Úc_stdsÚg_stdsr«   s        r6   r¦   zIntelCPPCompiler.get_options(  s†  € Ý×&Ò& tÑ,Ô,ˆð ˜7Ð#ˆØ˜YÐ'ˆÝ˜4œ<¨Ñ4Ô4ð 	"Ø�w Ð(Ñ(ˆFØ�y�kÑ!ˆFÝ˜4œ<¨Ñ4Ô4ð 	 Ø�w�iÑˆFÝ˜4œ<¨Ñ4Ô4ð 	"Ø�y�kÑ!ˆFÝ˜4œ<¨Ñ4Ô4ð 	"Ø�w�iÑˆFØ�y�kÑ!ˆFå˜ tÔ'7¸d¼mÐLÑLÔLˆØ�ŠØ�JŠJ�tÑÔ�hÔ6Ø.Ø3Ð3Ð3Øñô ð
 �JŠJ�vÑÔ¥Ô :¸=È$Ñ OÔ OØ�JŠJ�zÑ"Ô"¥HÔ$>Ð?OÐQVÑ$WÔ$Wð
ñ 	ô 	ð 	ð $˜H vÑ-°Ñ6ˆˆSŒ	ÔØˆr8   rà   rá   c                ó$  — g }t          d| j        | j        ¬¦  «        }||         }|j        dk    r;dddœ}|                     d|                     |j        |j        ¦  «        z   ¦  «         ||                     d¦  «                 j        dk    r|                     d	¦  «         ||                     d
¦  «                 j        s|                     d¦  «         ||                     d¦  «                 j        r|                     d¦  «         |S )Nr¢   r£   r0   rÕ   r  )rÖ   r  rx   r)   r1   rÓ   rã   r  r!  )r	   rF   r§   rå   r4   r>   rÙ   )r@   rà   r+   r«   r¢   Úremap_cpp03s         r6   rç   z(IntelCPPCompiler.get_option_compile_argsG  s  € ØˆÝ˜ tÔ'7¸d¼mÐLÑLÔLˆØ�cŒlˆØŒ9˜ÒÐà Ø$ðð ˆKð �KŠK˜ +§/¢/°#´)¸S¼YÑ"GÔ"GÑGÑHÔHÐHØ�3—:’:˜dÑ#Ô#Ô$Ô*¨fÒ4Ð4Ø�KŠKÐ)Ñ*Ô*Ð*Ø�s—z’z &Ñ)Ô)Ô*Ô0ð 	%Ø�KŠK˜Ñ$Ô$Ð$Ø�3—:’:˜jÑ)Ô)Ô*Ô0ð 	.Ø�KŠKÐ,Ñ-Ô-Ð-Øˆr8   c                ó   — g S r  rU   r  s     r6   rñ   z%IntelCPPCompiler.get_option_link_argsY  r  r8   r¬   r­   r°   rÿ   )r±   r²   r³   rR   r¦   rç   rñ   rU   r8   r6   rC  rC    sw   € € € € € àSWØ7;Ø15ðIð Ið Ið Ið Iðð ð ð ð>ð ð ð ð$ð ð ð ð ð r8   rC  c                  ó   — e Zd ZdZdS )ÚIntelLLVMCPPCompilerrš   Nr  rU   r8   r6   rM  rM  ]  s   € € € € € à	€B€B€Br8   rM  c                  óN   — e Zd ZdZdddddddd	d
dddœZdd„Zdd„Zdd„Zdd„ZdS )Ú VisualStudioLikeCPPCompilerMixinz?Mixin for C++ specific method overrides in MSVC-like compilers.)TN)Té   )Té   )Té   )Té   )TÚlatest)FrP  )FrQ  )FrR  )FrS  )FrT  )r0   úvc++11úvc++14úvc++17úvc++20ú
vc++latestr�   r�   r‘   r“   ú	c++latestrà   rá   r-   r,   c                óŠ   — t          d| j        | j        ¬¦  «        }t          j        d||         j        d d …         ¦  «        S )Nr×   r£   r,   )r	   rF   r§   ÚTÚcastrå   )r@   rà   r«   s      r6   rñ   z5VisualStudioLikeCPPCompilerMixin.get_option_link_argst  s=   € å˜	¨4Ô+;À$Ä-ÐPÑPÔPˆÝŒv�m W¨S¤\Ô%7¸¸¸Ô%:Ñ;Ô;Ð;r8   rª   r    r;  c                ó¨  — t          d| j        | j        ¬¦  «        }|                     |                     d¦  «        t          j        dg d¢d¦  «        |                     d¦  «        t          j        dd	¦  «        |                     d
¦  «        t          j        dt          ¦  «        i¦  «         |||                     d¦  «                 _
        |S )Nr¢   r£   r)   rÎ   rÏ   rÐ   rÓ   rÔ   Tr×   zWindows libs to link against.)r	   rF   r§   r¨   rÙ   r   r©   rÚ   rÞ   r   rÛ   r:  s       r6   Ú_get_options_implz2VisualStudioLikeCPPCompilerMixin._get_options_imply  sÇ   € Ý˜ tÔ'7¸d¼mÐLÑLÔLˆØ�ŠØ�JŠJ�tÑÔ�hÔ6Ø.Ø3Ð3Ð3Øñô ð
 �JŠJ�vÑÔ¥Ô :¸=È$Ñ OÔ OØ�JŠJ�yÑ!Ô!¥8Ô#;Ø/Ýñ$ô $ð
ñ 	ô 	ð 	ð +3ˆˆS�ZŠZ˜ÑÔÔÔ'Øˆr8   c                ó8  — g }t          d| j        | j        ¬¦  «        }||                     d¦  «                 }|j        dk    r|                     d¦  «         n>|j        dk    r|                     d¦  «         n|                     d|j        z   ¦  «         ||                     d	¦  «                 j        s|                     d
¦  «         | j        ||         j                 \  }}|�|                     d|› �¦  «         |s|                     d¦  «         |S )Nr¢   r£   r)   rÐ   z/EHscr0   z/EHs-c-z/EHrÓ   z/GR-z/std:c++ú/permissive-)r	   rF   r§   rÙ   rå   r4   ÚVC_VERSION_MAP)r@   rà   r+   r«   r)   Ú
permissiveÚvers          r6   rç   z8VisualStudioLikeCPPCompilerMixin.get_option_compile_argsŠ  s  € ØˆÝ˜ tÔ'7¸d¼mÐLÑLÔLˆà�S—Z’Z Ñ%Ô%Ô&ˆØŒ8�yÒ Ð Ø�KŠK˜Ñ Ô Ð Ð ØŒX˜ÒÐØ�KŠK˜	Ñ"Ô"Ð"Ð"à�KŠK˜ ¤Ñ(Ñ)Ô)Ð)à�s—z’z &Ñ)Ô)Ô*Ô0ð 	 Ø�KŠK˜ÑÔÐàÔ-¨g°c¬lÔ.@ÔA‰ˆ
�Càˆ?Ø�KŠKÐ( 3Ð(Ð(Ñ)Ô)Ð)àð 	(Ø�KŠK˜Ñ'Ô'Ð'àˆr8   ra   r    c                ó,   — t          j        | |¦  «        S r  )r   rd   ©r@   ra   s     r6   rd   z8VisualStudioLikeCPPCompilerMixin.get_compiler_check_args£  s   € åÔ/°°dÑ;Ô;Ð;r8   Nrÿ   )rª   r    r;  r,   r-   r    r¯   )	r±   r²   r³   r  rb  rñ   r_  rç   rd   rU   r8   r6   rO  rO  b  s™   € € € € € àIÐIð ØØØØØ&ØØØØØ&ðð €Nð<ð <ð <ð <ð
ð ð ð ð"ð ð ð ð2<ð <ð <ð <ð <ð <r8   rO  c                  ó$   ‡ — e Zd ZdZdˆ fd„Zˆ xZS )ÚCPP11AsCPP14Mixinz’Mixin class for VisualStudio and ClangCl to replace C++11 std with C++14.

    This is a limitation of Clang and MSVC that ICL doesn't share.
    rà   rá   r-   r,   c                óV  •— t          d| j        | j        ¬¦  «        }||         j        dv r]t	          j        | j        ddd¬¦  «         t          j        |¦  «        }||         j        dk    rd	||         _        nd
||         _        t          ¦   «          
                    |¦  «        S )Nr¢   r£   >   r�   rU  zdoes not support C++11;z5attempting best effort; setting the standard to C++14T)ÚoncerU  rV  r�   )r	   rF   r§   rå   r   r5   r›   rë   Údeepcopyrc   rç   )r@   rà   r«   re   s      €r6   rç   z)CPP11AsCPP14Mixin.get_option_compile_args¯  s±   ø€ õ
 ˜ tÔ'7¸d¼mÐLÑLÔLˆØ�3Œ<ÔÐ!4Ð4Ð4ÝŒL˜œÐ";ØPÐW[ð]ñ ]ô ]ð ]õ
 ”m GÑ,Ô,ˆGØ�sŒ|Ô! XÒ-Ð-Ø%-�˜”Ô"Ð"à%,�˜”Ô"Ý‰wŒw×.Ò.¨wÑ7Ô7Ð7r8   rÿ   )r±   r²   r³   r  rç   r·   r¸   s   @r6   rh  rh  ¨  sG   ø€ € € € € ðð ð
8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8r8   rh  c                  ó@   ‡ — e Zd ZdZ	 	 	 ddd„Zdˆ fd„Zdˆ fd„Zˆ xZS ) ÚVisualStudioCPPCompilerÚmsvcNrC   r,   rD   rE   r*   rF   r'   rG   rH   rI   rJ   ÚtargetrK   rL   rM   rN   rO   rP   c                óÆ   — t                                | ||||||||	|
¬¦
  «
         t          j        | |¦  «         t          | j        d¦  «        r| j        dgz   | _        d S d S )Nr¿   z>= 19.14.26428z/Zc:__cplusplus)r:   rR   r   r   rE   Úalways_args)r@   rC   rD   rE   rF   rG   rI   ro  rK   rM   rO   s              r6   rR   z VisualStudioCPPCompiler.__init__Ç  sŠ   € õ
 	×Ò˜T 6¨7°G¸[È(Ø! ;°vÈLð 	ñ 	Zô 	Zð 	ZåÔ˜d FÑ+Ô+Ð+õ
 ˜4œ<Ð)9Ñ:Ô:ð 	FØ#Ô/Ð3DÐ2EÑEˆDÔÐÐð	Fð 	Fr8   r-   r    c                ó|  •— g d¢}t          | j        d¦  «        r|                     g d¢¦  «         t          | j        d¦  «        r|                     g d¢¦  «         t          | j        d¦  «        r|                     ddg¦  «         |                      t	          ¦   «                              ¦   «         |¦  «        S )	N)r0   r�   rU  z>=19)r�   rZ  rY  z>=19.11)rV  r‘   rW  z>=19.29r“   rX  )r   rE   Úextendr_  rc   r¦   ©r@   r;  re   s     €r6   r¦   z#VisualStudioCPPCompiler.get_optionsÖ  sº   ø€ Ø.Ð.Ð.ˆå˜4œ<¨Ñ0Ô0ð 	BØ�OŠOÐ@Ð@Ð@ÑAÔAÐAå˜4œ<¨Ñ3Ô3ð 	;Ø�OŠOÐ9Ð9Ð9Ñ:Ô:Ð:Ý˜4œ<¨Ñ3Ô3ð 	1Ø�OŠO˜W hÐ/Ñ0Ô0Ð0Ø×%Ò%¥e¡g¤g×&9Ò&9Ñ&;Ô&;¸XÑFÔFÐFr8   rà   rá   c                óº  •— t          d| j        | j        ¬¦  «        }||         j        dk    rJt	          | j        d¦  «        r5t          j        d¦  «         t          j        |¦  «        }d||         _        t          ¦   «          
                    |¦  «        }t	          | j        d¦  «        r,	 |                     d¦  «        }n# t          $ r |cY S w xY w||= |S )Nr¢   r£   r0   z<19.00.24210z7This version of MSVC does not support cpp_std argumentsz<19.11ra  )r	   rF   r§   rå   r   rE   r   r5   rë   rc   rç   ÚindexÚ
ValueError)r@   rà   r«   r+   rž   re   s        €r6   rç   z/VisualStudioCPPCompiler.get_option_compile_argsâ  sÞ   ø€ Ý˜ tÔ'7¸d¼mÐLÑLÔLˆØ�3Œ<Ô Ò'Ð'­O¸D¼LÈ.Ñ,YÔ,YÐ'ÝŒLÐRÑSÔSÐSÝ”i Ñ(Ô(ˆGØ!'ˆG�CŒLÔå‰wŒw×.Ò.¨wÑ7Ô7ˆå˜4œ<¨Ñ2Ô2ð 	ðØ—J’J˜~Ñ.Ô.��øÝð ð ð Ø���ðøøøà�Q�Øˆs   Â0C ÃCÃCr¬   )rC   r,   rD   r,   rE   r*   rF   r'   rG   rH   rI   rJ   ro  r*   rK   rL   rM   rN   rO   rP   r°   rÿ   )r±   r²   r³   r›   rR   r¦   rç   r·   r¸   s   @r6   rm  rm  Ã  s�   ø€ € € € € à	€Bð ?CØ7;Ø15ð	Fð Fð Fð Fð Fð
Gð 
Gð 
Gð 
Gð 
Gð 
Gðð ð ð ð ð ð ð ð ð r8   rm  c                  ó4   ‡ — e Zd ZdZ	 	 	 ddd„Zdˆ fd„Zˆ xZS )ÚClangClCPPCompilerzclang-clNrD   r,   rE   r*   rF   r'   rG   rH   rI   rJ   ro  rK   rL   rM   rN   rO   rP   c
                óx   — t                                | g ||||||||	¬¦
  «
         t          j        | |¦  «         d S r.  )r:   rR   r   ©
r@   rD   rE   rF   rG   rI   ro  rK   rM   rO   s
             r6   rR   zClangClCPPCompiler.__init__÷  sR   € õ
 	×Ò˜T 2 w°¸ÀhØ! ;°vÈLð 	ñ 	Zô 	Zð 	ZåÔ   vÑ.Ô.Ð.Ð.Ð.r8   r-   r    c                ót   •— g d¢}|                       t          ¦   «                              ¦   «         |¦  «        S )N)
r0   r�   rU  r�   rV  r‘   rW  r“   rX  rZ  ©r_  rc   r¦   rt  s     €r6   r¦   zClangClCPPCompiler.get_options   s4   ø€ ØtÐtÐtˆØ×%Ò%¥e¡g¤g×&9Ò&9Ñ&;Ô&;¸XÑFÔFÐFr8   r¬   ©rD   r,   rE   r*   rF   r'   rG   rH   rI   rJ   ro  r*   rK   rL   rM   rN   rO   rP   r°   )r±   r²   r³   r›   rR   r¦   r·   r¸   s   @r6   ry  ry  ó  sq   ø€ € € € € à	€Bð ?CØ7;Ø15ð	/ð /ð /ð /ð /ðGð Gð Gð Gð Gð Gð Gð Gð Gð Gr8   ry  c                  ó8   ‡ — e Zd Z	 	 	 ddd„Zdˆ fd„Zdd„Zˆ xZS )ÚIntelClCPPCompilerNrD   r,   rE   r*   rF   r'   rG   rH   rI   rJ   ro  rK   rL   rM   rN   rO   rP   c
                óx   — t                                | g ||||||||	¬¦
  «
         t          j        | |¦  «         d S r.  )r:   rR   r   r{  s
             r6   rR   zIntelClCPPCompiler.__init__  sR   € õ
 	×Ò˜T 2 w°¸ÀhØ! ;°vÈLð 	ñ 	Zô 	Zð 	Zå%Ô.¨t°VÑ<Ô<Ð<Ð<Ð<r8   r-   r    c                ót   •— g d¢}|                       t          ¦   «                              ¦   «         |¦  «        S )N)r0   r�   rU  r�   rV  r‘   rW  rZ  r}  rt  s     €r6   r¦   zIntelClCPPCompiler.get_options  s4   ø€ àaÐaÐaˆØ×%Ò%¥e¡g¤g×&9Ò&9Ñ&;Ô&;¸XÑFÔFÐFr8   ra   r    c                ó,   — t          j        | |¦  «        S r  )r   rd   rf  s     r6   rd   z*IntelClCPPCompiler.get_compiler_check_args  s   € å,ÔDÀTÈ4ÑPÔPÐPr8   r¬   r~  r°   r¯   )r±   r²   r³   rR   r¦   rd   r·   r¸   s   @r6   r€  r€    s„   ø€ € € € € ð ?CØ7;Ø15ð	=ð =ð =ð =ð =ðGð Gð Gð Gð Gð Gð
Qð Qð Qð Qð Qð Qð Qð Qr8   r€  c                  ó   — e Zd ZdZdS )ÚIntelLLVMClCPPCompilerzintel-llvm-clNr  rU   r8   r6   r…  r…    s   € € € € € à	€B€B€Br8   r…  c                  ó>   — e Zd Z	 	 	 ddd„Zd d„Zd!d„Zd!d„Zd"d„ZdS )#ÚArmCPPCompilerNrC   r,   rD   rE   r*   rF   r'   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   c
                óv   — t                                | |||||||||	¬¦
  «
         t          j        | ¦  «         d S r.  )r:   rR   r   rS   s
             r6   rR   zArmCPPCompiler.__init__   r0  r8   r-   r    c                ó�   — t                                | ¦  «        }t          d| j        | j        ¬¦  «        }g d¢||         _        |S )Nr¢   r£   )r0   rÖ   r�   ©r:   r¦   r	   rF   r§   rÛ   rß   s      r6   r¦   zArmCPPCompiler.get_options(  sE   € Ý×&Ò& tÑ,Ô,ˆÝ˜ tÔ'7¸d¼mÐLÑLÔLˆØ6Ð6Ð6ˆˆSŒ	ÔØˆr8   rà   rá   c                óÔ   — g }t          d| j        | j        ¬¦  «        }||         }|j        dk    r|                     d¦  «         n |j        dk    r|                     d¦  «         |S )Nr¢   r£   r�   z--cpp11rÖ   z--cpp©r	   rF   r§   rå   r4   ræ   s        r6   rç   z&ArmCPPCompiler.get_option_compile_args.  so   € ØˆÝ˜ tÔ'7¸d¼mÐLÑLÔLˆØ�cŒlˆØŒ9˜ÒÐØ�KŠK˜	Ñ"Ô"Ð"Ð"ØŒY˜'Ò!Ð!Ø�KŠK˜Ñ Ô Ð Øˆr8   c                ó   — g S r  rU   r  s     r6   rñ   z#ArmCPPCompiler.get_option_link_args8  r  r8   ra   r    c                ó   — g S r  rU   rf  s     r6   rd   z&ArmCPPCompiler.get_compiler_check_args;  r  r8   r¬   r­   r°   rÿ   r¯   )r±   r²   r³   rR   r¦   rç   rñ   rd   rU   r8   r6   r‡  r‡    s†   € € € € € àSWØ7;Ø15ð#ð #ð #ð #ð #ðð ð ð ðð ð ð ðð ð ð ðð ð ð ð ð r8   r‡  c                  óN   — e Zd Z	 	 	 d d!d„Zd"d„Zd#d„Zd"d„Zd$d„Zd#d„Zd%d„Z	dS )&ÚCcrxCPPCompilerNrC   r,   rD   rE   r*   rF   r'   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   c
                óv   — t                                | |||||||||	¬¦
  «
         t          j        | ¦  «         d S r.  )r:   rR   r   rS   s
             r6   rR   zCcrxCPPCompiler.__init__@  sP   € õ 	×Ò˜T 6¨7°G¸[È(Ø! ;°vÈLð 	ñ 	Zô 	Zð 	ZåÔ˜dÑ#Ô#Ð#Ð#Ð#r8   r-   c                ó
   — ddgS )Nz-nologoz	-lang=cpprU   rX   s    r6   Úget_always_argszCcrxCPPCompiler.get_always_argsI  s   € Ø˜;Ð'Ð'r8   rà   rá   c                ó   — g S r  rU   r  s     r6   rç   z'CcrxCPPCompiler.get_option_compile_argsL  r  r8   c                ó   — g S r  rU   rX   s    r6   Úget_compile_only_argsz%CcrxCPPCompiler.get_compile_only_argsO  r  r8   ro  c                ó   — d|› �gS )Nz-output=obj=rU   )r@   ro  s     r6   Úget_output_argszCcrxCPPCompiler.get_output_argsR  s   € Ø'˜vÐ'Ð'Ð(Ð(r8   c                ó   — g S r  rU   r  s     r6   rñ   z$CcrxCPPCompiler.get_option_link_argsU  r  r8   ra   r    c                ó   — g S r  rU   rf  s     r6   rd   z'CcrxCPPCompiler.get_compiler_check_argsX  r  r8   r¬   r­   r®   rÿ   )ro  r*   r-   r,   r¯   )
r±   r²   r³   rR   r“  rç   r–  r˜  rñ   rd   rU   r8   r6   r�  r�  ?  s®   € € € € € àSWØ7;Ø15ð$ð $ð $ð $ð $ð(ð (ð (ð (ðð ð ð ðð ð ð ð)ð )ð )ð )ðð ð ð ðð ð ð ð ð r8   r�  c                  ó>   — e Zd Z	 	 	 ddd„Zdd„Zdd„Zd d„Zdd„ZdS )!ÚTICPPCompilerNrC   r,   rD   rE   r*   rF   r'   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   c
                óv   — t                                | |||||||||	¬¦
  «
         t          j        | ¦  «         d S r.  )r:   rR   r   rS   s
             r6   rR   zTICPPCompiler.__init__\  sP   € õ 	×Ò˜T 6¨7°G¸[È(Ø! ;°vÈLð 	ñ 	Zô 	Zð 	ZåÔ˜DÑ!Ô!Ð!Ð!Ð!r8   r-   r    c                ó�   — t                                | ¦  «        }t          d| j        | j        ¬¦  «        }ddg||         _        |S )Nr¢   r£   r0   rÖ   rŠ  rß   s      r6   r¦   zTICPPCompiler.get_optionsd  sD   € Ý×&Ò& tÑ,Ô,ˆÝ˜ tÔ'7¸d¼mÐLÑLÔLˆØ# WÐ-ˆˆSŒ	ÔØˆr8   rà   rá   c                ó¢   — g }t          d| j        | j        ¬¦  «        }||         }|j        dk    r|                     d|j        z   ¦  «         |S )Nr¢   r£   r0   z--rŒ  ræ   s        r6   rç   z%TICPPCompiler.get_option_compile_argsj  sT   € ØˆÝ˜ tÔ'7¸d¼mÐLÑLÔLˆØ�cŒlˆØŒ9˜ÒÐØ�KŠK˜˜sœyÑ(Ñ)Ô)Ð)Øˆr8   c                ó   — g S r  rU   rX   s    r6   r“  zTICPPCompiler.get_always_argsr  r  r8   c                ó   — g S r  rU   r  s     r6   rñ   z"TICPPCompiler.get_option_link_argsu  r  r8   r¬   r­   r°   rÿ   r®   )r±   r²   r³   rR   r¦   rç   r“  rñ   rU   r8   r6   rœ  rœ  [  s†   € € € € € àSWØ7;Ø15ð"ð "ð "ð "ð "ðð ð ð ðð ð ð ðð ð ð ðð ð ð ð ð r8   rœ  c                  ó   — e Zd ZdZdS )ÚC2000CPPCompilerÚc2000Nr  rU   r8   r6   r£  r£  x  s   € € € € € à	€B€B€Br8   r£  )r)   r*   r+   r,   r-   r.   )YÚ
__future__r   rë   rµ   Úos.pathr&  Útypingr\  Ú r   r   Úmesonlibr   r   r	   Ú	compilersr   r   r   Úc_function_attributesr   r   Úmixins.cliker   Úmixins.ccrxr   Ú	mixins.tir   Ú
mixins.armr   r   Úmixins.visualstudior   r   Ú
mixins.gnur   r   r   Úmixins.intelr   r   Úmixins.clangr   Úmixins.elbrusr   Ú
mixins.pgir   Úmixins.emscriptenr   ÚTYPE_CHECKINGr    r!   r"   rh   r#   Ú	envconfigr$   r[   r%   Úlinkersr&   r'   Úprogramsr(   ÚCompilerMixinBaseÚobjectr7   r:   rº   r  r  r  r  r  r,  r2  r6  rC  rM  rO  rh  rm  ry  r€  r…  r‡  r�  rœ  r£  rU   r8   r6   ú<module>r½     s£  ðð #Ð "Ð "Ð "Ð "Ð "à €€€Ø Ð Ð Ð Ø €€€Ø Ð Ð Ð à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ Aðð ð ð ð ð ð ð ð ð ð
 JÐ IÐ IÐ IÐ IÐ IÐ IÐ IØ 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø %Ð %Ð %Ð %Ð %Ð %Ø !Ð !Ð !Ð !Ð !Ð !Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ø RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RØ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MØ 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø )Ð )Ð )Ð )Ð )Ð )Ø #Ð #Ð #Ð #Ð #Ð #Ø .Ð .Ð .Ð .Ð .Ð .à„?ð Ø+Ð+Ð+Ð+Ð+Ð+ØJÐJÐJÐJÐJÐJÐJÐJØ)Ð)Ð)Ð)Ð)Ð)Ø'Ð'Ð'Ð'Ð'Ð'Ø)Ð)Ð)Ð)Ð)Ð)Ø'Ð'Ð'Ð'Ð'Ð'Ø(Ð(Ð(Ð(Ð(Ð(Ø*Ð*Ð*Ð*Ð*Ð*Ø%ÐÐàÐð?ð ?ð ?ð ?ðuð uð uð uð u�- ñ uô uð uðpJ*ð J*ð J*ð J*ð J*�} kñ J*ô J*ð J*ðZð ð ð ð Ð-ñ ô ð ð
	'ð 	'ð 	'ð 	'ð 	'Ð,ñ 	'ô 	'ð 	'ðð ð ð ð ˜OÐ-=ñ ô ð ð4/ð /ð /ð /ð /Ð*¨Kñ /ô /ð /ðdUð Uð Uð Uð U�[ +ñ Uô Uð Uðp#ð #ð #ð #ð #�[ +ñ #ô #ð #ð
#ð 
#ð 
#ð 
#ð 
#˜K¨ñ 
#ô 
#ð 
#ðDð Dð Dð Dð D˜¨ñ Dô Dð DðNBð Bð Bð Bð BÐ+¨[ñ Bô Bð BðJð ð ð ð Ð+ñ ô ð ð
C<ð C<ð C<ð C<ð C<Ð'8ñ C<ô C<ð C<ðL8ð 8ð 8ð 8ð 8Ð)ñ 8ô 8ð 8ð6.ð .ð .ð .ð .Ð/Ð1QÐS_Ðalñ .ô .ð .ð`Gð Gð Gð Gð GÐ*Ð,LÈoÐ_jñ Gô Gð Gð$Qð Qð Qð Qð QÐ9Ð;XÐZeñ Qô Qð Qð*ð ð ð ð Ð/ñ ô ð ð
ð ð ð ð �[ +ñ ô ð ð@ð ð ð ð �l Kñ ô ð ð8ð ð ð ð �J ñ ô ð ð:ð ð ð ð �}ñ ô ð ð ð r8   