§
    ûµ”c�  ã                  ó*  — d dl mZ d dl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mZmZ dd
lmZ ej        rddlmZ ddlmZ ddlmZ 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¦  «        Z G d„ de¦  «        ZdS )é    )ÚannotationsNé   )Úcoredata)Ú	OptionKeyé   )ÚCLikeCompiler)ÚCompiler)ÚGnuCompilerÚgnu_common_warning_argsÚgnu_objc_warning_args)ÚClangCompiler)ÚExternalProgram)ÚMachineInfo)ÚEnvironment)ÚDynamicLinker)ÚMachineChoicec                  ó@   — e Zd ZdZ	 	 ddd„Zedd„¦   «         Zdd„ZdS ) ÚObjCPPCompilerÚobjcppNÚccacheúT.List[str]ÚexelistÚversionÚstrÚfor_machiner   Úis_crossÚboolÚinfoú'MachineInfo'Úexe_wrapúT.Optional['ExternalProgram']ÚlinkerúT.Optional['DynamicLinker']Úfull_versionúT.Optional[str]c
                ój   — t          j        | |||||||	|¬¦	  «	         t          j        | |¦  «         d S )N)r   r$   r"   )r	   Ú__init__r   )
Úselfr   r   r   r   r   r   r    r"   r$   s
             ú=/usr/lib/python3/dist-packages/mesonbuild/compilers/objcpp.pyr'   zObjCPPCompiler.__init__%   sM   € õ
 	Ô˜$ ¨°¸+ÀtØ#+¸,Ø!'ð	)ñ 	)ô 	)ð 	)õ 	Ô˜t XÑ.Ô.Ð.Ð.Ð.ó    Úreturnc                 ó   — dS )NzObjective-C++© r-   r*   r)   Úget_display_languagez#ObjCPPCompiler.get_display_language/   s   € àˆr*   Úwork_dirÚenvironmentú'Environment'ÚNonec                ó6   — d}|                       ||d|¦  «        S )Nz<#import<stdio.h>
class MyClass;int main(void) { return 0; }
zsanitycheckobjcpp.mm)Ú_sanity_check_impl)r(   r/   r0   Úcodes       r)   Úsanity_checkzObjCPPCompiler.sanity_check3   s#   € ØOˆØ×&Ò& x°Ð>TÐVZÑ[Ô[Ð[r*   )NN)r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   )r+   r   )r/   r   r0   r1   r+   r2   )Ú__name__Ú
__module__Ú__qualname__Úlanguager'   Ústaticmethodr.   r6   r-   r*   r)   r   r   !   st   € € € € € à€Hð
 8<Ø15ð	/ð /ð /ð /ð /ð ðð ð ñ „\ðð\ð \ð \ð \ð \ð \r*   r   c                  ó    — e Zd Z	 	 	 	 ddd„ZdS )ÚGnuObjCPPCompilerNr   r   r   r   r   r   r   r   r   r   r   Úexe_wrapperr!   ÚdefinesúT.Optional[T.Dict[str, str]]r"   r#   r$   r%   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 )N©r"   r$   ú-Wallú-Winvalid-pchú-Wextraú
-Wpedantic©Ú0Ú1Ú2Ú3Ú
everything)r   r'   r
   Úsupported_warn_argsr   r   Ú	warn_args©r(   r   r   r   r   r   r   r>   r?   r"   r$   Údefault_warn_argss               r)   r'   zGnuObjCPPCompiler.__init__9   sÅ   € õ 	×Ò  f¨g°wÀÈXØ $ k¸&È|ð 	 ñ 	]ô 	]ð 	]åÔ˜T 7Ñ+Ô+Ð+Ø$ oÐ6ÐØ!Ø0Ø0°I°;Ñ>Ø0°I¸|Ð3LÑLØ):¸iÈÐ=VÑ)VØ)-×)AÒ)AÕBYÑ)ZÔ)Zñ*[à)-×)AÒ)AÕBWÑ)XÔ)Xñ*Yð	[ð [ˆŒˆˆr*   ©NNNN©r   r   r   r   r   r   r   r   r   r   r   r   r>   r!   r?   r@   r"   r#   r$   r%   )r7   r8   r9   r'   r-   r*   r)   r=   r=   8   sC   € € € € € ð ?CØ9=Ø7;Ø15ð[ð [ð [ð [ð [ð [ð [r*   r=   c                  ó:   ‡ — e Zd Z	 	 	 	 ddd„Zdˆ fd„Zdd„Zˆ xZS ) ÚClangObjCPPCompilerNr   r   r   r   r   r   r   r   r   r   r   r>   r!   r?   r@   r"   r#   r$   r%   c                ó®   — t                                | ||||||||	|
¬¦
  «
         t          j        | |¦  «         ddg}g ||dgz   |ddgz   dgdœ| _        d S )NrB   rC   rD   rE   rF   z-WeverythingrG   )r   r'   r   rN   rO   s               r)   r'   zClangObjCPPCompiler.__init__N   sŒ   € õ 	×Ò  f¨g°wÀÈXØ $ k¸&È|ð 	 ñ 	]ô 	]ð 	]åÔ˜t WÑ-Ô-Ð-Ø$ oÐ6ÐØ!Ø0Ø0°I°;Ñ>Ø0°I¸|Ð3LÑLØ)7Ð(8ð	:ð :ˆŒˆˆr*   r+   ú%'coredata.MutableKeyedOptionDictType'c                óÌ   •— t          ¦   «                              ¦   «         }|                     t          d| j        d¬¦  «        t          j        dg d¢d¦  «        i¦  «         |S )NÚstdÚcpp©ÚmachineÚlangzC++ language standard to use)	Únonezc++98zc++11zc++14zc++17zgnu++98zgnu++11zgnu++14zgnu++17r]   )ÚsuperÚget_optionsÚupdater   r   r   ÚUserComboOption)r(   ÚoptsÚ	__class__s     €r)   r_   zClangObjCPPCompiler.get_options^   so   ø€ Ý‰wŒw×"Ò"Ñ$Ô$ˆØ�ŠÝ�e TÔ%5¸EÐBÑBÔBÅHÔD\Ø.ØhÐhÐhØñEô Eð
ñ 	ô 	ð 	ð ˆr*   Úoptionsú'coredata.KeyedOptionDictType'c                ó”   — g }|t          d| j        d¬¦  «                 }|j        dk    r|                     d|j        z   ¦  «         |S )NrX   rY   rZ   r]   z-std=)r   r   ÚvalueÚappend)r(   rd   ÚargsrX   s       r)   Úget_option_compile_argsz+ClangObjCPPCompiler.get_option_compile_argsi   sN   € ØˆØ•i ¨tÔ/?ÀeÐLÑLÔLÔMˆØŒ9˜ÒÐØ�KŠK˜ #¤)Ñ+Ñ,Ô,Ð,Øˆr*   rQ   rR   )r+   rV   )rd   re   r+   r   )r7   r8   r9   r'   r_   rj   Ú__classcell__)rc   s   @r)   rT   rT   L   sy   ø€ € € € € ð ?CØ9=Ø7;Ø15ð:ð :ð :ð :ð :ð 	ð 	ð 	ð 	ð 	ð 	ðð ð ð ð ð ð ð r*   rT   c                  ó   — e Zd ZdZdS )ÚAppleClangObjCPPCompilerz?Handle the differences between Apple's clang and vanilla clang.N)r7   r8   r9   Ú__doc__r-   r*   r)   rm   rm   q   s   € € € € € àIÐIÐIÐIr*   rm   ) Ú
__future__r   ÚtypingÚTÚ r   Úmesonlibr   Úmixins.cliker   Ú	compilersr	   Ú
mixins.gnur
   r   r   Úmixins.clangr   ÚTYPE_CHECKINGÚprogramsr   Ú	envconfigr   r0   r   Úlinkersr   r   r   r=   rT   rm   r-   r*   r)   ú<module>r|      sÕ  ðð #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð à Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  à 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø Ð Ð Ð Ð Ð Ø SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SØ 'Ð 'Ð 'Ð 'Ð 'Ð 'à„?ð )Ø*Ð*Ð*Ð*Ð*Ð*Ø'Ð'Ð'Ð'Ð'Ð'Ø)Ð)Ð)Ð)Ð)Ð)Ø'Ð'Ð'Ð'Ð'Ð'Ø(Ð(Ð(Ð(Ð(Ð(ð\ð \ð \ð \ð \�] Hñ \ô \ð \ð.[ð [ð [ð [ð [˜ ^ñ [ô [ð [ð("ð "ð "ð "ð "˜-¨ñ "ô "ð "ðJJð Jð Jð Jð JÐ2ñ Jô Jð Jð Jð Jr*   