§
    ƒnóc…9  ã                  óT  — d dl mZ d dlZd dl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 ddlmZ ej        rd dlZd?d
„Zd@d„Z G d„ d¦  «        ZdAd„ZdBd„ZdCd„ZdddœZd dd!œZdDd$„ZdEd)„ZdFd,„ZdGd/„ZdHdId4„ZdHdJd5„ZdHdKd6„Z dLd7„Z!dFd8„Z"dMd:„Z#dCd;„Z$dCd<„Z%dFd=„Z&dNd>„Z'dS )Oé    )ÚannotationsNé   )Ú	envconfig)Úmlog)Ú	compilers)ÚdefaultsÚreturnÚboolc                 ó’   — t           j                             ¦   «         D ]'} t          j                             | dz   ¦  «        r dS Œ(dS )NÚ
_FOR_BUILDTF)r   ÚENV_VAR_COMPILER_MAPÚvaluesÚosÚenvironÚget)Úcenvs    ú>/usr/lib/python3/dist-packages/mesonbuild/scripts/env2mfile.pyÚhas_for_buildr      sL   € ÝÔ.×5Ò5Ñ7Ô7ð ð ˆÝŒ:�>Š>˜$ Ñ-Ñ.Ô.ð 	Ø�4�4ð	àˆ5ó    Úparserú'argparse.ArgumentParser'ÚNonec                óÂ  — |                       dd d¬¦  «         |                       ddd¬¦  «         |                       ddd	d
¬¦  «         |                       dddd¬¦  «         |                       dddd¬¦  «         |                       dd d¬¦  «         |                       dd d¬¦  «         |                       dd d¬¦  «         |                       ddddgd¬¦  «         d S )Nz	--debarchz"The dpkg architecture to generate.)ÚdefaultÚhelpz--gccsuffixÚ z-A particular gcc version suffix if necessary.z-oTÚoutfilezThe output file.)ÚrequiredÚdestr   z--crossFÚ
store_truez"Generate a cross compilation file.)r   Úactionr   z--nativez#Generate a native compilation file.z--systemz$Define system for cross compilation.z--cpuz!Define cpu for cross compilation.z--cpu-familyz(Define cpu family for cross compilation.z--endianÚlittleÚbigz(Define endianness for cross compilation.)r   Úchoicesr   )Úadd_argument)r   s    r   Úadd_argumentsr&   "   sw  € Ø
×Ò˜¨TØAð ñ Cô Cð Cà
×Ò˜¨rØLð ñ Nô Nð Nà
×Ò˜ t°)Ø/ð ñ 1ô 1ð 1à
×Ò˜	¨5¸ØAð ñ Cô Cð Cà
×Ò˜
¨E¸,ØBð ñ Dô Dð Dà
×Ò˜
¨DØCð ñ Eô Eð Eà
×Ò˜¨Ø@ð ñ Bô Bð Bà
×Ò˜°ØGð ñ Iô Ið Ià
×Ò˜
¨H¸uÀhÐ>OØGð ñ Iô Ið Ið Ið Ir   c                  ó   — e Zd Zdd„ZdS )ÚMachineInfor	   r   c                ó’   — i | _         i | _        i | _        i | _        i | _        i | _        d | _        d | _        d | _        d | _	        d S ©N)
r   ÚbinariesÚ
propertiesÚcompile_argsÚ	link_argsÚcmakeÚsystemÚcpuÚ
cpu_familyÚendian)Úselfs    r   Ú__init__zMachineInfo.__init__7   sM   € Ø35ˆŒØ24ˆŒØBDˆŒØ68ˆÔØ35ˆŒØ=?ˆŒ
à'+ˆŒØ$(ˆŒØ+/ˆŒØ'+ˆŒˆˆr   N)r	   r   )Ú__name__Ú
__module__Ú__qualname__r5   © r   r   r(   r(   6   s(   € € € € € ð,ð ,ð ,ð ,ð ,ð ,r   r(   ÚprogramÚstrúT.List[str]c                ó  — t           j                             | ¦  «        r| gS t          j        ¦   «         D ]F}t           j                             || ¦  «        }t          j        |t           j        ¦  «        r|gc S ŒGt          d| z  ¦  «        ‚)Nz%s not found on $PATH)r   ÚpathÚisabsÚget_exec_pathÚjoinÚaccessÚX_OKÚ
ValueError)r:   ÚdÚfs      r   Úlocate_pathrG   O   s‡   € Ý	„w‡}‚}�WÑÔð ØˆyÐÝÔÑÔð ð ˆÝŒG�LŠL˜˜GÑ$Ô$ˆÝŒ9�Q�œÑ Ô ð 	Ø�3ˆJˆJˆJð	å
Ð,¨wÑ6Ñ
7Ô
7Ð7r   ÚofileúT.TextIOÚnameÚargsúT.Union[str, T.List[str]]c                óô   — t          |¦  «        dk    rd S t          |t          ¦  «        r|dz   |z   dz   }n,|dz   }|d                     d„ |D ¦   «         ¦  «        z  }|dz  }|                      |¦  «         d S )Nr   z= 'ú'
z = [z, c              3  ó&   K  — | ]}d |z   d z   V — ŒdS )ú'Nr9   )Ú.0Úis     r   ú	<genexpr>z"write_args_line.<locals>.<genexpr>_   s*   è è € Ð6Ð6¨A˜# ™' C™-Ð6Ð6Ð6Ð6Ð6Ð6r   z]
)ÚlenÚ
isinstancer;   rA   Úwrite)rH   rJ   rK   Úostrs       r   Úwrite_args_linerX   X   sŒ   € Ý
ˆ4�y„y�A‚~€~ØˆÝ�$�ÑÔð Ø�e‰|˜dÑ" UÑ*ˆˆà�f‰}ˆØ�—	’	Ð6Ð6°Ð6Ñ6Ô6Ñ6Ô6Ñ6ˆØ�‰ˆØ	‡K‚K�ÑÔÐÐÐr   Úinfosc                ór  — t          j        t          j                             dd¦  «        ¦  «        }t          j        t          j                             dd¦  «        ¦  «        }t          j        t          j                             dd¦  «        ¦  «        }t          j        t          j                             dd¦  «        ¦  «        }t          j        t          j                             dd¦  «        ¦  «        }t          j        t          j                             dd¦  «        ¦  «        }||z   }||z   }||z   }	||z   }
||z   }||z   }||z   }||z   }|r
|| j        d<   |	r
|	| j        d<   |r
|| j        d	<   |
r
|
| j        d	<   |r
|| j        d
<   |r
|| j        d
<   |r
|| j        d<   |r|| j        d<   d S d S )NÚCPPFLAGSr   ÚCFLAGSÚCXXFLAGSÚ	OBJCFLAGSÚOBJCXXFLAGSÚLDFLAGSÚcÚcppÚobjcÚobjcpp)ÚshlexÚsplitr   r   r   r-   r.   )rY   ÚcppflagsÚcflagsÚcxxflagsÚ	objcflagsÚobjcxxflagsÚldflagsÚc_argsÚcpp_argsÚc_link_argsÚcpp_link_argsÚ	objc_argsÚobjcpp_argsÚobjc_link_argsÚobjcpp_link_argss                  r   Úget_args_from_envvarsru   c   sÁ  € ÝŒ{�2œ:Ÿ>š>¨*°bÑ9Ô9Ñ:Ô:€HÝŒ[�œŸš¨°"Ñ5Ô5Ñ6Ô6€FÝŒ{�2œ:Ÿ>š>¨*°bÑ9Ô9Ñ:Ô:€HÝ”�BœJŸNšN¨;¸Ñ;Ô;Ñ<Ô<€IÝ”+�bœjŸnšn¨]¸BÑ?Ô?Ñ@Ô@€KÝŒk�"œ*Ÿ.š.¨°BÑ7Ô7Ñ8Ô8€Gà˜Ñ€FØ˜(Ñ"€HØ˜7Ñ"€KØ˜wÑ&€Mà˜9Ñ$€IØ˜[Ñ(€KØ Ñ(€NØ" WÑ,Ðàð )Ø"(ˆÔ˜3ÑØð +Ø*ˆŒ˜ÑØð -Ø$,ˆÔ˜5Ñ!Øð /Ø!.ˆŒ˜ÑØð /Ø%.ˆÔ˜6Ñ"Øð 1Ø"0ˆŒ˜ÑØð 3Ø'2ˆÔ˜8Ñ$Øð 5Ø$4ˆŒ˜Ñ!Ð!Ð!ð5ð 5r   Úmips64Úx86)Úmips64elÚi686Úarm7hlf)Úarmhfrx   ÚdataúT.Dict[str, str]c                óò   — ddddœ}ddddœ}| j         d	         | j        d
<   | j         d         | j        d<   ||d                  | j        d<   |                     |d         |d         ¦  «        | j        d<   d S )NÚLinuxÚkFreeBSDÚGNU)ÚlinuxÚkfreebsdÚhurdÚarmv7lrv   Úppc64le)Úarmrx   Úpowerpc64lera   ÚCMAKE_C_COMPILERrb   ÚCMAKE_CXX_COMPILERÚDEB_HOST_ARCH_OSÚCMAKE_SYSTEM_NAMEÚDEB_HOST_GNU_CPUÚCMAKE_SYSTEM_PROCESSOR)r   r/   r   )rY   r|   Úsystem_name_mapÚsystem_processor_maps       r   Údeb_detect_cmaker‘   �   s˜   € Ø '°ZÈÐOÐO€OØ#+¸ÐR[Ð\Ð\Ðà&+¤o°cÔ&:€E„KÐ"Ñ#Ø(-¬¸Ô(>€E„KÐ$Ñ%Ø'6°tÐ<NÔ7OÔ'P€E„KÐ#Ñ$Ø,@×,DÒ,DÀTÐJ\ÔE]ØEIÐJ\ÔE]ñ-_ô -_€E„KÐ(Ñ)Ð)Ð)r   ÚcompilerstemsúT.List[T.Tuple[str, str]]Ú	host_archÚ	gccsuffixc                ó|   — |D ]8\  }}|› d|› |› �}	 t          |¦  «        }|| j        |<   Œ)# t          $ r Y Œ5w xY wd S )Nú-)rG   r   rD   )rY   r’   r”   r•   ÚlangnameÚstemÚcompilernameÚps           r   Údeb_compiler_lookuprœ   ™   sx   € Ø'ð ð ‰ˆ�$Ø#Ð7Ð7 dÐ7¨IÐ7Ð7ˆð	Ý˜LÑ)Ô)ˆAØ()ˆEŒO˜HÑ%Ð%øÝð 	ð 	ð 	ØˆDð	øøøðð s   ’,¬
9¸9ÚoptionsúT.Anyc                óÊ  — | j         €dg}ndd| j         z   g}t          j        |dt          j        ¬¦  «        }i }|                     d¦  «        D ];}|                     ¦   «         }|dk    rŒ|                     dd¦  «        \  }}|||<   Œ<|d	         }|d
         }t                               |d         |d         ¦  «        }	t                               |d         |d         ¦  «        }
|d         }g d¢}t          ¦   «         }t          |||| j        ¦  «         t          |j        ¦  «        dk    rt          d¦  «         t          d|z  ¦  «        |j        d<   t          d|z  ¦  «        |j        d<   t          d|z  ¦  «        |j        d<   t          d|z  ¦  «        |j        d<   	 t          d¦  «        |j        d<   t#          ||¦  «         n# t$          $ r Y nw xY w	 t          d|z  ¦  «        |j        d<   n# t$          $ r Y nw xY w	 t          d¦  «        |j        d<   n# t$          $ r Y nw xY w||_        |	|_        |
|_        ||_        t/          |¦  «         |S )Nzdpkg-architecturez-aT)Úuniversal_newlinesÚstderrú
r   ú=é   ÚDEB_HOST_GNU_TYPEr‹   r�   ÚDEB_HOST_ARCHÚDEB_HOST_ARCH_ENDIAN))ra   Úgcc)rb   zg++)rc   Úgobjc)rd   zgobjc++r   z$Warning: no compilers were detected.z%s-arÚarz%s-stripÚstripz
%s-objcopyÚobjcopyz%s-ldÚldr/   z%s-pkg-configÚ	pkgconfigzcups-config)ÚdebarchÚ
subprocessÚcheck_outputÚDEVNULLrf   r«   Úcpu_family_mapr   Úcpu_mapr(   rœ   r•   rT   r   ÚprintrG   r+   r‘   rD   r0   r2   r1   r3   ru   )r�   ÚcmdÚoutputr|   ÚlineÚkÚvr”   Úhost_osÚhost_cpu_familyÚhost_cpuÚhost_endianr’   rY   s                 r   Údetect_cross_debianliker¿   ¢   sÃ  € Ø„ÐØ"Ð#ˆˆà" D¨7¬?Ñ$:Ð;ˆÝÔ$ S¸TÝ,6Ô,>ð@ñ @ô @€Fà€DØ—’˜TÑ"Ô"ð ð ˆØ�zŠz‰|Œ|ˆØ�2Š:ˆ:ØØ�zŠz˜#˜qÑ!Ô!‰ˆˆ1ØˆˆQ‰ˆØÐ(Ô)€IØÐ%Ô&€GÝ$×(Ò(¨Ð.@Ô)AØ)-Ð.@Ô)AñCô C€Oå�{Š{˜4 Ô0Ø Ô0ñ2ô 2€HàÐ-Ô.€Kð,ð ,ð ,€Mõ ‰MŒM€EÝ˜˜}¨i¸Ô9JÑKÔKÐKÝ
ˆ5Œ?ÑÔ˜qÒ Ð ÝÐ4Ñ5Ô5Ð5Ý& w°Ñ':Ñ;Ô;€E„N�4ÑÝ)¨*°yÑ*@ÑAÔA€E„N�7ÑÝ +¨L¸9Ñ,DÑ EÔ E€E„N�9ÑÝ& w°Ñ':Ñ;Ô;€E„N�4ÑðÝ"-¨gÑ"6Ô"6ˆŒ�wÑÝ˜ Ñ%Ô%Ð%Ð%øÝð ð ð ØˆðøøøðÝ&1°/ÀIÑ2MÑ&NÔ&NˆŒ�{Ñ#Ð#øÝð ð ð ØˆðøøøðÝ(3°MÑ(BÔ(BˆŒ�}Ñ%Ð%øÝð ð ð Øˆðøøøà€E„LØ&€EÔØ€E„IØ€E„Lå˜%Ñ Ô Ð Ø€Ls6   Æ+'G Ç
G ÇG Ç$G? Ç?
HÈHÈH( È(
H5È4H5Ú	ofilenameÚwrite_system_infoc           	     ó¶  — |dz   }t          |dd¬¦  «        5 }|                     d¦  «         |                     d¦  «         t          | j                             ¦   «         ¦  «        D ] }| j        |         }t          |||¦  «         Œ!|                     d¦  «         |                     d¦  «         t          | j                             ¦   «         ¦  «        D ] }| j        |         }t          |||¦  «         Œ!|                     d¦  «         |                     d	¦  «         t          t          | j	                             ¦   «         ¦  «         
                    t          | j                             ¦   «         ¦  «        ¦  «        ¦  «        }	|	                     ¦   «          |	D ]R}
|
| j	        v rt          ||
d
z   | j	        |
         ¦  «         |
| j        v rt          ||
dz   | j        |
         ¦  «         ŒS| j                             ¦   «         D ]\  }}t          |||¦  «         Œ|                     d¦  «         | j        rZ|                     d¦  «         | j                             ¦   «         D ]\  }}t          |||¦  «         Œ|                     d¦  «         |r�|                     d¦  «         |                     d| j        › d�¦  «         |                     d| j        › d�¦  «         |                     d| j        › d�¦  «         |                     d| j        › d�¦  «         d d d ¦  «         n# 1 swxY w Y   t)          j        ||¦  «         d S )Nú~Úwzutf-8)Úencodingz[binaries]
z# Compilers
r¢   z# Other binaries
z[properties]
Ú_argsÚ
_link_argsz	[cmake]

z[host_machine]
zcpu = 'rN   zcpu_family = 'z
endian = 'z
system = ')ÚopenrV   Úsortedr   ÚkeysrX   r+   ÚlistÚsetr-   Úunionr.   Úsortr,   Úitemsr/   r1   r2   r3   r0   r   Úreplace)rY   rÀ   rÁ   ÚtmpfilenamerH   r˜   ÚcompilerÚexenameÚexeÚ	all_langsÚlangr¹   rº   s                r   Úwrite_machine_filer×   Ù   s’  € Ø˜c‘/€KÝ	ˆk˜3¨Ð	1Ñ	1Ô	1ð %8°UØ�Š�NÑ#Ô#Ð#Ø�Š�OÑ$Ô$Ð$Ý˜uœ×3Ò3Ñ5Ô5Ñ6Ô6ð 	7ð 	7ˆHØ” xÔ0ˆHÝ˜E 8¨XÑ6Ô6Ð6Ð6Ø�Š�DÑÔÐà�ŠÐ(Ñ)Ô)Ð)Ý˜eœn×1Ò1Ñ3Ô3Ñ4Ô4ð 	1ð 	1ˆGØ”. Ô)ˆCÝ˜E 7¨CÑ0Ô0Ð0Ð0Ø�Š�DÑÔÐà�ŠÐ$Ñ%Ô%Ð%Ý�˜UÔ/×4Ò4Ñ6Ô6Ñ7Ô7×=Ò=½cÀ%Ä/×BVÒBVÑBXÔBXÑ>YÔ>YÑZÔZÑ[Ô[ˆ	Ø�ŠÑÔÐØð 	Sð 	SˆDØ�uÔ)Ð)Ð)Ý  t¨g¡~°uÔ7IÈ$Ô7OÑPÔPÐPØ�u”Ð&Ð&Ý  t¨lÑ':¸E¼OÈDÔ<QÑRÔRÐRøØÔ$×*Ò*Ñ,Ô,ð 	)ð 	)‰DˆAˆqÝ˜E 1 aÑ(Ô(Ð(Ð(Ø�Š�DÑÔÐàŒ;ð 	Ø�KŠK˜Ñ&Ô&Ð&Øœ×)Ò)Ñ+Ô+ð -ð -‘��1Ý  q¨!Ñ,Ô,Ð,Ð,Ø�KŠK˜ÑÔÐàð 	8Ø�KŠKÐ*Ñ+Ô+Ð+Ø�KŠKÐ0 %¤)Ð0Ð0Ð0Ñ1Ô1Ð1Ø�KŠKÐ>¨Ô)9Ð>Ð>Ð>Ñ?Ô?Ð?Ø�KŠKÐ6 U¤\Ð6Ð6Ð6Ñ7Ô7Ð7Ø�KŠKÐ6 U¤\Ð6Ð6Ð6Ñ7Ô7Ð7ðK%8ð %8ð %8ñ %8ô %8ð %8ð %8ð %8ð %8ð %8ð %8øøøð %8ð %8ð %8ð %8õL „Jˆ{˜IÑ&Ô&Ð&Ð&Ð&s   ˜LL9Ì9L=Í L=r   r˜   Úenvvar_suffixú!T.Tuple[T.List[str], T.List[str]]c                ó  — t          t          j        t          j                             d|z   d¦  «        ¦  «        ¦  «        }t          j        t          j                             t          j        |          |z   d¦  «        ¦  «        }| t          j        v rUt          t          j        t          j                             d|z   d¦  «        ¦  «        ¦  «        }t          |¦  «        |z   }n|}t          |¦  «        |z   }||fS )Nr`   r   r[   )
Útuplere   rf   r   r   r   r   ÚCFLAGS_MAPPINGÚLANGUAGES_USING_CPPFLAGSrË   )r˜   rØ   rl   r-   rg   Úlang_compile_argsÚlang_link_argss          r   Ú!detect_language_args_from_envvarsrà     sÌ   € Ý•E”K¥¤
§¢¨y¸=Ñ/HÈ"Ñ MÔ MÑNÔNÑOÔO€GÝ”;�rœzŸ~š~­iÔ.FÀxÔ.PÐS`Ñ.`ÐbdÑeÔeÑfÔf€LØ•9Ô5Ð5Ð5Ý�œ¥R¤Z§^¢^°JÀÑ4NÐPRÑ%SÔ%SÑTÔTÑUÔUˆÝ  ™NœN¨\Ñ9ÐÐà(ÐÝ˜'‘]”] \Ñ1€NØ˜~Ð.Ð.r   c                óF  — t          ¦   «         }t          j                             ¦   «         D ]s\  }}t          j                             || z   ¦  «        }|sŒ*t          j        |¦  «        }||j	        |<   t          || ¦  «        \  }}|r
||j        |<   |r
||j        |<   Œt|S r*   )r(   r   r   rÏ   r   r   r   re   rf   r   rà   r-   r.   )rØ   rY   r˜   Ú
envvarnameÚcompilerstrrÒ   rÞ   rß   s           r   Údetect_compilers_from_envvarsrä     s±   € Ý‰MŒM€EÝ )Ô >× DÒ DÑ FÔ Fð 
7ð 
7Ñˆ�*Ý”j—n’n Z°-Ñ%?Ñ@Ô@ˆØð 	ØÝ”;˜{Ñ+Ô+ˆØ$,ˆŒ˜Ñ!Ý,MÈhÐXeÑ,fÔ,fÑ)Ð˜>Øð 	=Ø+<ˆEÔ˜xÑ(Øð 	7Ø(6ˆEŒO˜HÑ%øØ€Lr   c                óÒ   — t           j                             ¦   «         D ]G\  }}||z   }t          j                             |¦  «        }|rt          j        |¦  «        | j        |<   ŒHd S r*   )	r   ÚENV_VAR_TOOL_MAPrÏ   r   r   r   re   rf   r+   )rY   rØ   ÚbinnameÚenvvar_baseÚenvvarÚbinstrs         r   Údetect_binaries_from_envvarsrë     sk   € Ý )Ô :× @Ò @Ñ BÔ Bð :ð :Ñˆ�Ø˜}Ñ,ˆÝ”—’ Ñ'Ô'ˆØð 	:Ý&+¤k°&Ñ&9Ô&9ˆEŒN˜7Ñ#øð	:ð :r   c           
     óÜ   — dD ]h}t          ||¦  «        }|sCt          j        d|› d|                     dd¦  «        › d�¦  «         t	          j        d¦  «         t          | ||¦  «         Œid S )N)r0   r1   r2   r3   zCross property "z" missing, set it with --Ú_r—   ú.r¤   )Úgetattrr   ÚerrorrÐ   ÚsysÚexitÚsetattr)rY   r�   Úoptnamerº   s       r   Údetect_cross_systemrõ   $  sˆ   € Ø<ð #ð #ˆÝ�G˜WÑ%Ô%ˆØð 	ÝŒJÐh¨'ÐhÐhÈGÏOÊOÐ\_ÐadÑLeÔLeÐhÐhÐhÑiÔiÐiÝŒH�Q‰KŒKˆKÝ��w Ñ"Ô"Ð"Ð"ð#ð #r   c                ó¬   — | j         rt          d¦  «         t          | ¦  «        }n-t          d¦  «         t          ¦   «         }t	          || ¦  «         |S )Nz1Detecting cross environment via dpkg-reconfigure.z6Detecting cross environment via environment variables.)r¯   rµ   r¿   rä   rõ   )r�   rY   s     r   Údetect_cross_envr÷   ,  sY   € Ø„ð ,ÝÐAÑBÔBÐBÝ'¨Ñ0Ô0ˆˆåÐFÑGÔGÐGÝ-Ñ/Ô/ˆÝ˜E 7Ñ+Ô+Ð+Ø€Lr   Ú	exe_namesc                óÂ   — || j         v rd S |D ]P}t          j        |¦  «        }|sŒt          |¦  «        \  }}|g| j         |<   |r
|| j        |<   |r
|| j        |<    d S d S r*   )r   ÚshutilÚwhichrà   r-   r.   )rY   r˜   rø   Úexe_nameÚlookupÚ	compflagsÚ	linkflagss          r   Úadd_compiler_if_missingr   6  s—   € Ø�5”?Ð"Ð"ØˆØð 
ð 
ˆÝ”˜hÑ'Ô'ˆØð 	ØÝ@ÀÑJÔJÑˆ	�9Ø%+ HˆŒ˜Ñ!Øð 	5Ø+4ˆEÔ˜xÑ(Øð 	2Ø(1ˆEŒO˜HÑ%Øˆˆð
ð 
r   c                óx   — t          j        ¦   «         D ]%\  }}|t          j        vrŒt	          | ||¦  «         Œ&d S r*   )Úcompiler_namesrÏ   r   r   r   )rY   r˜   Úexess      r   Údetect_missing_native_compilersr  E  sN   € å(Ô.Ñ0Ô0ð 7ð 7‰ˆ�$Ø�9Ô9Ð9Ð9ØÝ  x°Ñ6Ô6Ð6Ð6ð7ð 7r   c                ó¸   — t          t          j                             ¦   «         ¦  «        D ]-}|| j        v rŒt          j        |¦  «        }|r|g| j        |<   Œ.d S r*   )rÉ   r   ræ   rÊ   r+   rú   rû   )rY   ÚtoolnamerÔ   s      r   Údetect_missing_native_binariesr  L  sh   € å�9Ô5×:Ò:Ñ<Ô<Ñ=Ô=ð -ð -ˆØ�u”~Ð%Ð%ØÝŒl˜8Ñ$Ô$ˆØð 	-Ø(+ uˆEŒN˜8Ñ$øð-ð -r   c                óú   — t          ¦   «         }|rt          j        d¦  «         d}nt          j        d¦  «         d}t          |¦  «        }t	          |¦  «         t          ||¦  «         t          |¦  «         |S )Nz%Using FOR_BUILD envvars for detectionr   z$Using regular envvars for detection.r   )r   r   Úlogrä   r  rë   r  )r�   Úuse_for_buildÚesuffixrY   s       r   Údetect_native_envr  U  s   € Ý!‘O”O€MØð ÝŒÐ8Ñ9Ô9Ð9ØˆˆåŒÐ7Ñ8Ô8Ð8ØˆÝ)¨'Ñ2Ô2€EÝ# EÑ*Ô*Ð*Ý  ¨Ñ0Ô0Ð0Ý" 5Ñ)Ô)Ð)Ø€Lr   c                ó:  — | j         r| j        rt          j        d¦  «         | j         s| j        st          j        d¦  «         t	          j        d¦  «         | j         }|rt          | ¦  «        }d}nt          | ¦  «        }d}t          || j	        |¦  «         d S )Nz:You can only specify either --cross or --native, not both.z%You must specify --cross or --native.z9This functionality is experimental and subject to change.TF)
ÚcrossÚnativerñ   rò   r   Únoticer÷   r  r×   r   )r�   Údetect_crossrY   rÁ   s       r   Úrunr  c  s°   € Ø„}ð O˜œð OÝŒÐMÑNÔNÐNØŒ=ð : ¤ð :ÝŒÐ8Ñ9Ô9Ð9Ý„KÐKÑLÔLÐLØ”=€LØð "Ý  Ñ)Ô)ˆØ ÐÐå! 'Ñ*Ô*ˆØ!ÐÝ�u˜gœoÐ/@ÑAÔAÐAÐAÐAr   )r	   r
   )r   r   r	   r   )r:   r;   r	   r<   )rH   rI   rJ   r;   rK   rL   r	   r   )rY   r(   r	   r   )rY   r(   r|   r}   r	   r   )
rY   r(   r’   r“   r”   r;   r•   r;   r	   r   )r�   rž   r	   r(   )rY   r(   rÀ   r;   rÁ   r
   r	   r   )r   )r˜   r;   rØ   r;   r	   rÙ   )rØ   r;   r	   r(   )rY   r(   rØ   r;   r	   r   )rY   r(   r�   rž   r	   r   )rY   r(   r˜   r;   rø   r<   r	   r   )r�   rž   r	   r   )(Ú
__future__r   rñ   r   r°   rú   re   ÚtypingÚTr   r   r   r   Úcompilers.detectr   r  ÚTYPE_CHECKINGÚargparser   r&   r(   rG   rX   ru   r³   r´   r‘   rœ   r¿   r×   rà   rä   rë   rõ   r÷   r   r  r  r  r  r9   r   r   ú<module>r     s¯  ðð #Ð "Ð "Ð "Ð "Ð "à "Ð "Ð "Ð "Ð "Ð "Ð "Ð "Ð "Ð "Ð "Ð "Ð "Ð "Ð "Ð "Ø €€€Ø Ð Ð Ð à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9à„?ð Ø€O€O€Oðð ð ð ðIð Ið Ið Ið(,ð ,ð ,ð ,ð ,ñ ,ô ,ð ,ð28ð 8ð 8ð 8ð	ð 	ð 	ð 	ð!5ð !5ð !5ð !5ðH Øðð €ð
 Øðð €ð
_ð _ð _ð _ðð ð ð ð5ð 5ð 5ð 5ðn('ð ('ð ('ð ('ðT	/ð 	/ð 	/ð 	/ð 	/ðð ð ð ð ð:ð :ð :ð :ð :ð#ð #ð #ð #ðð ð ð ðð ð ð ð7ð 7ð 7ð 7ð-ð -ð -ð -ðð ð ð ðBð Bð Bð Bð Bð Br   