§
    ZQd'N  ã                   óÊ   — d Z ddlZddlZddlZddlmZmZ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„ Zd	„ Zd
ddddœZd„ Zd„ Zdd„Zd
ddddœZ G d„ de¦  «        ZdS )a  distutils._msvccompiler

Contains MSVCCompiler, an implementation of the abstract CCompiler class
for Microsoft Visual Studio 2015.

The module is compatible with VS 2015 and later. You can find legacy support
for older versions in distutils.msvc9compiler and distutils.msvccompiler.
é    N)ÚDistutilsExecErrorÚDistutilsPlatformErrorÚCompileErrorÚLibErrorÚ	LinkError)Ú	CCompilerÚgen_lib_options)Úlog)Úget_platform)Úcountc                  ój  — 	 t          j        t           j        dt           j        t           j        z  ¬¦  «        } n%# t
          $ r t          j        d¦  «         Y dS w xY wd}d }| 5  t          ¦   «         D ]¤}	 t          j	        | |¦  «        \  }}}n# t
          $ r Y  n{w xY w|rt|t           j
        k    rdt          j                             |¦  «        rE	 t          t          |¦  «        ¦  «        }n# t           t"          f$ r Y Œ�w xY w|dk    r
||k    r||}}Œ¥d d d ¦  «         n# 1 swxY w Y   ||fS )Nz'Software\Microsoft\VisualStudio\SxS\VC7)ÚaccesszVisual C++ is not registered©NNr   é   )ÚwinregÚ	OpenKeyExÚHKEY_LOCAL_MACHINEÚKEY_READÚKEY_WOW64_32KEYÚOSErrorr
   Údebugr   Ú	EnumValueÚREG_SZÚosÚpathÚisdirÚintÚfloatÚ
ValueErrorÚ	TypeError)ÚkeyÚbest_versionÚbest_dirÚiÚvÚvc_dirÚvtÚversions           ú./usr/lib/python3.11/distutils/_msvccompiler.pyÚ_find_vc2015r*      s´  € ðÝÔÝÔ%Ø6Ý”?¥VÔ%;Ñ;ð
ñ 
ô 
ˆˆøõ
 ð ð ð ÝŒ	Ð0Ñ1Ô1Ð1Øˆzˆzðøøøð €LØ€HØ	ð =ð =Ý‘”ð 	=ð 	=ˆAðÝ &Ô 0°°aÑ 8Ô 8‘��6˜2˜2øÝð ð ð Ø��ðøøøàð =�R�6œ=Ò(Ð(­R¬W¯]ª]¸6Ñ-BÔ-BÐ(ðÝ!¥%¨¡(¤(™mœm�G�GøÝ"¥IÐ.ð ð ð Ø�Hðøøøà˜b’=�= W¨|Ò%;Ð%;Ø-4°f (�Løð=ð =ð =ñ =ô =ð =ð =ð =ð =ð =ð =øøøð =ð =ð =ð =ð ˜Ð!Ð!si   ‚8; »AÁAÁ&D&Á8BÂD&Â
B ÂD&ÂB Â 4D&ÃC2Ã1D&Ã2DÄD&ÄDÄD&Ä&D*Ä-D*c                  ó  — t           j                             d¦  «        pt           j                             d¦  «        } | sdS 	 t          j        t           j                             | ddd¦  «        ddd	d
ddddg	dd¬¦  «                             ¦   «         }n## t          j        t          t          f$ r Y dS w xY wt           j                             |ddd¦  «        }t           j                             |¦  «        rd|fS dS )aJ  Returns "15, path" based on the result of invoking vswhere.exe
    If no install is found, returns "None, None"

    The version is returned to avoid unnecessarily changing the function
    result. It may be ignored when the path is not None.

    If vswhere.exe is not available, by definition, VS 2017 is not
    installed.
    zProgramFiles(x86)ÚProgramFilesr   zMicrosoft Visual StudioÚ	Installerzvswhere.exez-latestz-prereleasez	-requiresz1Microsoft.VisualStudio.Component.VC.Tools.x86.x64z	-propertyÚinstallationPathz	-productsÚ*ÚmbcsÚstrict)ÚencodingÚerrorsÚVCÚ	AuxiliaryÚBuildé   )r   ÚenvironÚgetÚ
subprocessÚcheck_outputr   ÚjoinÚstripÚCalledProcessErrorr   ÚUnicodeDecodeErrorr   )Úrootr   s     r)   Ú_find_vc2017rA   8   s  € õ Œ:�>Š>Ð-Ñ.Ô.ÐPµ"´*·.².ÀÑ2PÔ2P€DØð Øˆzð
ÝÔ&ÝŒG�LŠL˜Ð8¸+À}ÑUÔUØØØÐLØÐ+Ø˜ð(
ð  8ð-ñ -ô -÷ .3ªU©W¬Wð 	ˆøõ Ô)­7Õ4FÐGð ð ð Øˆzˆzðøøøõ Œ7�<Š<˜˜d K°Ñ9Ô9€DÝ	„w‡}‚}�TÑÔð Ø�4ˆxˆàˆ:s   ÁAB ÂB7Â6B7Úx86Úx64ÚarmÚarm64)rB   Ú	x86_amd64Úx86_armÚ	x86_arm64c                 ó.  — t          ¦   «         \  }}|st          ¦   «         \  }}|st          j        d¦  «         dS t          j                             |d¦  «        }t          j                             |¦  «        st          j        d|¦  «         dS |d fS )Nz$No suitable Visual C++ version foundr   zvcvarsall.batz%s cannot be found)rA   r*   r
   r   r   r   r<   Úisfile)Ú	plat_specÚ_r#   r"   Ú	vcvarsalls        r)   Ú_find_vcvarsallrN   _   s�   € å‘.”.�K€A€xàð 0Ý!-¡¤Ñˆ�hàð ÝŒ	Ð8Ñ9Ô9Ð9Øˆzå”—’˜X Ñ7Ô7€IÝŒ7�>Š>˜)Ñ$Ô$ð ÝŒ	Ð&¨	Ñ2Ô2Ð2Øˆzà�dˆ?Ðó    c                 óX  — t          j        d¦  «        r(d„ t           j                             ¦   «         D ¦   «         S t	          | ¦  «        \  }}|st          d¦  «        ‚	 t          j        d                     || ¦  «        t          j	        ¬¦  «         
                    dd¬¦  «        }nW# t          j        $ rE}t          j        |j        ¦  «         t          d	                     |j        ¦  «        ¦  «        ‚d }~ww xY wd
„ d„ |                     ¦   «         D ¦   «         D ¦   «         }|S )NÚDISTUTILS_USE_SDKc                 ó>   — i | ]\  }}|                      ¦   «         |“ŒS © ©Úlower)Ú.0r!   Úvalues      r)   ú
<dictcomp>z_get_vc_env.<locals>.<dictcomp>s   s6   € ð 
ð 
ð 
á��Uð �IŠI‰KŒK˜ð
ð 
ð 
rO   zUnable to find vcvarsall.batzcmd /u /c "{}" {} && set)Ústderrzutf-16leÚreplace)r3   zError executing {}c                 óH   — i | ]\  }}}|¯|¯
|                      ¦   «         |“Œ S rS   rT   )rV   r!   rL   rW   s       r)   rX   z_get_vc_env.<locals>.<dictcomp>†   sH   € ð ð ð áˆC��Eàð	ð ð	Ø�	Š	‰Œ�Uðð ð rO   c              3   ó@   K  — | ]}|                      d ¦  «        V — ŒdS )ú=N)Ú	partition)rV   Úlines     r)   ú	<genexpr>z_get_vc_env.<locals>.<genexpr>‰   s.   è è € Ð:Ð: ˆ�Š˜Ñ	Ô	Ð:Ð:Ð:Ð:Ð:Ð:rO   )r   Úgetenvr8   ÚitemsrN   r   r:   r;   ÚformatÚSTDOUTÚdecoder>   r
   ÚerrorÚoutputÚcmdÚ
splitlines)rK   rM   rL   ÚoutÚexcÚenvs         r)   Ú_get_vc_envrm   q   sS  € Ý	„yÐ$Ñ%Ô%ð 
ð
ð 
å œj×.Ò.Ñ0Ô0ð
ñ 
ô 
ð 	
õ
 # 9Ñ-Ô-�L€IˆqØð EÝ$Ð%CÑDÔDÐDð"ÝÔ%Ø&×-Ò-¨i¸ÑCÔCÝÔ$ð
ñ 
ô 
÷ Š&� Iˆ&Ñ
.Ô
.ð 	ˆøõ Ô(ð "ð "ð "ÝŒ	�#”*ÑÔÐÝ$Ð%9ß’˜œ‘”ñ"ô "ð 	"øøøøð"øøøð
ð ð 	;Ð:¨¯ªÑ)9Ô)9Ð:Ñ:Ô:ðñ ô €Cð €Js   Á!A	B+ Â+C?Â:A C:Ã:C?c                 ó6  — |s1t          j        d¦  «                             t           j        ¦  «        }|D ]b}t           j                             t           j                             |¦  «        | ¦  «        }t           j                             |¦  «        r|c S Œc| S )at  Return path to an MSVC executable program.

    Tries to find the program in several places: first, one of the
    MSVC program search paths from the registry; next, the directories
    in the PATH environment variable.  If any of those work, return an
    absolute path that is known to exist.  If none of them work, just
    return the original program name, 'exe'.
    r   )r   ra   ÚsplitÚpathsepr   r<   ÚabspathrJ   )ÚexeÚpathsÚpÚfns       r)   Ú	_find_exerv   �   s†   € ð ð 4Ý”	˜&Ñ!Ô!×'Ò'­¬
Ñ3Ô3ˆØð ð ˆÝŒW�\Š\�"œ'Ÿ/š/¨!Ñ,Ô,¨cÑ2Ô2ˆÝŒ7�>Š>˜"ÑÔð 	ØˆIˆIˆIð	à€JrO   rF   rG   rH   )Úwin32z	win-amd64z	win-arm32z	win-arm64c                   óâ   ‡ — e Zd ZdZdZi ZdgZg d¢ZdgZdgZ	eez   ez   e	z   Z
dZdZd	Zd
ZdxZZdZdd„Zdd„Z	 	 dd„Z	 	 dd„Z	 	 	 dd„Z	 	 	 	 	 	 	 	 	 	 d d„Zˆ fd„Zd„ Zd„ Zd„ Zd!d„Zˆ xZS )"ÚMSVCCompilerzwConcrete class that implements an interface to Microsoft Visual C++,
       as defined by the CCompiler abstract class.Úmsvcz.c)z.ccz.cppz.cxxú.rcz.mcz.resz.objz.libz.dllz%s%sz.exer   c                 óP   — t          j        | |||¦  «         d | _        d| _        d S )NF)r   Ú__init__Ú	plat_nameÚinitialized)ÚselfÚverboseÚdry_runÚforces       r)   r}   zMSVCCompiler.__init__É   s.   € ÝÔ˜D '¨7°EÑ:Ô:Ð:àˆŒØ ˆÔÐÐrO   Nc                 ó~  — | j         r
J d¦   «         ‚|€t          ¦   «         }|t          vr4t          d                     t          t          ¦  «        ¦  «        ¦  «        ‚t          |         }t          |¦  «        }|st          d¦  «        ‚|                     dd¦  «        | _        | j         	                    t          j        ¦  «        }t          d|¦  «        | _        t          d|¦  «        | _        t          d|¦  «        | _        t          d	|¦  «        | _        t          d
|¦  «        | _        t          d|¦  «        | _        |                     dd¦  «         	                    t          j        ¦  «        D ]6}|r2|                      |                     t          j        ¦  «        ¦  «         Œ7|                     dd¦  «         	                    t          j        ¦  «        D ]6}|r2|                      |                     t          j        ¦  «        ¦  «         Œ7d | _        g d¢| _        g d¢| _        g d¢}g d¢}g |¢d‘| _        g |¢d‘| _        g |¢d‘d‘d‘| _        g |¢d‘d‘d‘| _        g |¢| _        g |¢| _        t@          j!        d f| j        t@          j!        df| j        t@          j!        df| j        t@          j"        d f| j        t@          j"        df| j        t@          j"        df| j        t@          j#        d f| j        t@          j#        df| j        t@          j#        df| j        i	| _$        d| _         d S )Nzdon't init multiple timesz--plat-name must be one of {}z7Unable to find a compatible Visual Studio installation.r   Ú zcl.exezlink.exezlib.exezrc.exezmc.exezmt.exeÚincludeÚlib)ú/nologoz/Oxú/W3z/GLz/DNDEBUGz/MD)rˆ   z/Odz/MDdz/Zir‰   z/D_DEBUG)rˆ   ú/INCREMENTAL:NOú/LTCG)rˆ   rŠ   r‹   z/DEBUG:FULLz/MANIFEST:EMBED,ID=1z/DLLz/MANIFEST:EMBED,ID=2z/MANIFESTUAC:NOFT)%r   r   ÚPLAT_TO_VCVARSr   rc   Útuplerm   r9   Ú_pathsro   r   rp   rv   ÚccÚlinkerr‡   ÚrcÚmcÚmtÚadd_include_dirÚrstripÚsepÚadd_library_dirÚpreprocess_optionsÚcompile_optionsÚcompile_options_debugÚldflags_exeÚldflags_exe_debugÚldflags_sharedÚldflags_shared_debugÚldflags_staticÚldflags_static_debugr   Ú
EXECUTABLEÚSHARED_OBJECTÚSHARED_LIBRARYÚ_ldflags)r€   r~   rK   Úvc_envrs   ÚdirÚldflagsÚldflags_debugs           r)   Ú
initializezMSVCCompiler.initializeÏ   sW  € àÔ#Ð@Ð@Ð%@Ñ@Ô@Ð@ØÐÝ$™œˆIà�NÐ*Ð*Ý(Ð)Hß*0ª&µµ~Ñ1FÔ1FÑ*GÔ*GñIô Ið Iõ # 9Ô-ˆ	å˜YÑ'Ô'ˆØð 	/Ý(ð *.ñ /ô /ð /ð —j’j ¨Ñ,Ô,ˆŒØ”×!Ò!¥"¤*Ñ-Ô-ˆÝ˜H eÑ,Ô,ˆŒÝ 
¨EÑ2Ô2ˆŒÝ˜Y¨Ñ.Ô.ˆŒÝ˜H eÑ,Ô,ˆŒÝ˜H eÑ,Ô,ˆŒÝ˜H eÑ,Ô,ˆŒà—:’:˜i¨Ñ,Ô,×2Ò2µ2´:Ñ>Ô>ð 	9ð 	9ˆCØð 9Ø×$Ò$ S§Z¢Zµ´Ñ%7Ô%7Ñ8Ô8Ð8øà—:’:˜e RÑ(Ô(×.Ò.­r¬zÑ:Ô:ð 	9ð 	9ˆCØð 9Ø×$Ò$ S§Z¢Zµ´Ñ%7Ô%7Ñ8Ô8Ð8øà"&ˆÔð 
ð  
ð  
ˆÔð&
ð &
ð &
ˆÔ"ð
ð 
ð 
ˆð
ð 
ð 
ˆð >˜WÐ=Ð&<Ð=ˆÔØ!I =Ð!IÐ2HÐ!IˆÔØ[ Ð[¨Ð[Ð1GÐ[ÐIZÐ[ˆÔØ$g mÐ$g°VÐ$gÐ=SÐ$gÐUfÐ$gˆÔ!Ø( ˜jˆÔØ$4 mÐ$4ˆÔ!õ Ô! 4Ð(¨$Ô*:ÝÔ! 5Ð)¨4Ô+;ÝÔ! 4Ð(¨$Ô*@ÝÔ$ dÐ+¨TÔ-@ÝÔ$ eÐ,¨dÔ.AÝÔ$ dÐ+¨TÔ-FÝÔ% tÐ,¨dÔ.AÝÔ% uÐ-¨tÔ/BÝÔ% tÐ,¨dÔ.Gð

ˆŒð  ˆÔÐÐrO   r…   c                 óº   ‡ ‡‡‡— i ˆ fd„‰ j         D ¦   «         ¥ˆ fd„‰ j        ‰ j        z   D ¦   «         ¥Š‰pdŠˆˆˆfd„}t          t	          ||¦  «        ¦  «        S )Nc                 ó    •— i | ]
}|‰j         “ŒS rS   )Úobj_extension©rV   Úextr€   s     €r)   rX   z1MSVCCompiler.object_filenames.<locals>.<dictcomp>"  s   ø€ ÐFÐFÐF¨3ˆs�DÔ&ÐFÐFÐFrO   c                 ó    •— i | ]
}|‰j         “ŒS rS   )Úres_extensionr­   s     €r)   rX   z1MSVCCompiler.object_filenames.<locals>.<dictcomp>#  s   ø€ Ð\Ð\Ð\¨3ˆs�DÔ&Ð\Ð\Ð\rO   r…   c                 ó  •— t           j                             | ¦  «        \  }}‰r t           j                             |¦  «        }nat           j                             |¦  «        \  }}|                     t           j        j        t           j        j        f¦  «        r
|dd …         }	 t           j                             ‰|‰|         z   ¦  «        S # t          $ r# t          d                     | ¦  «        ¦  «        ‚w xY w)Né   zDon't know how to compile {})r   r   ÚsplitextÚbasenameÚ
splitdriveÚ
startswithr–   Úaltsepr<   ÚLookupErrorr   rc   )rt   Úbaser®   rL   Úext_mapÚ
output_dirÚ	strip_dirs       €€€r)   Úmake_out_pathz4MSVCCompiler.object_filenames.<locals>.make_out_path(  sç   ø€ Ýœ×(Ò(¨Ñ+Ô+‰IˆD�#Øð $Ý”w×'Ò'¨Ñ-Ô-��åœ'×,Ò,¨TÑ2Ô2‘��4Ø—?’?¥B¤G¤Kµ´´Ð#@ÑAÔAð $Ø   œ8�Dð	Mõ ”w—|’| J°°w¸s´|Ñ0CÑDÔDÐDøÝð Mð Mð Mõ #Ð#A×#HÒ#HÈÑ#KÔ#KÑLÔLÐLð	Møøøs   Â((C Ã-C>)Úsrc_extensionsÚ_rc_extensionsÚ_mc_extensionsÚlistÚmap)r€   Úsource_filenamesr¼   r»   r½   rº   s   ` `` @r)   Úobject_filenameszMSVCCompiler.object_filenames  s¤   øøøø€ ð
ØFÐFÐFÐF°$Ô2EÐFÑFÔFð
à\Ð\Ð\Ð\°$Ô2EÈÔH[Ñ2[Ð\Ñ\Ô\ð
ˆð
  Ð% 2ˆ
ð	Mð 	Mð 	Mð 	Mð 	Mð 	Mð 	Mõ& •C˜Ð'7Ñ8Ô8Ñ9Ô9Ð9rO   c	           	      ó@  — | j         s|                      ¦   «          |                      ||||||¦  «        }	|	\  }}
}}}|pg }|                     d¦  «         |r|                     | j        ¦  «         n|                     | j        ¦  «         d}|
D �]Š}	 ||         \  }}n# t          $ r Y Œw xY w|rt          j	         
                    |¦  «        }|| j        v rd|z   }�n›|| j        v r	d|z   }d}�n‰|| j        v rN|}d|z   }	 |                      | j        g|z   ||gz   ¦  «         n!# t           $ r}t#          |¦  «        ‚d }~ww xY wŒº|| j        v �rt          j	                             |¦  «        }t          j	                             |¦  «        }	 |                      | j        d|d||g¦  «         t          j	                             t          j	                             |¦  «        ¦  «        \  }}t          j	                             ||d	z   ¦  «        }|                      | j        d|z   |g¦  «         n!# t           $ r}t#          |¦  «        ‚d }~ww xY w�ŒÉt#          d
                     ||¦  «        ¦  «        ‚| j        g|z   |z   }|r|                     d¦  «         |                     |¦  «         |                     d|z   ¦  «         |                     |¦  «         	 |                      |¦  «         �Œk# t           $ r}t#          |¦  «        ‚d }~ww xY w|
S )Nz/cFz/Tcz/TpTz/foz-hz-rr{   z"Don't know how to compile {} to {}z/EHscz/Fo)r   r©   Ú_setup_compileÚappendÚextendrš   r™   ÚKeyErrorr   r   rq   Ú_c_extensionsÚ_cpp_extensionsr¿   Úspawnr‘   r   r   rÀ   Údirnamer’   r³   r´   r<   rc   r�   )r€   Úsourcesr»   ÚmacrosÚinclude_dirsr   Úextra_preargsÚextra_postargsÚdependsÚcompile_infoÚobjectsÚpp_optsÚbuildÚcompile_optsÚadd_cpp_optsÚobjÚsrcr®   Ú	input_optÚ
output_optÚmsgÚh_dirÚrc_dirr¹   rL   Úrc_fileÚargss                              r)   ÚcompilezMSVCCompiler.compile>  s�  € ð Ôð 	Ø�OŠOÑÔÐØ×*Ò*¨:°v¸|Ø+2°G¸^ñMô Mˆà:FÑ7ˆ�˜¨°%à$Ð*¨ˆØ×Ò˜DÑ!Ô!Ð!Øð 	6Ø×Ò Ô :Ñ;Ô;Ð;Ð;à×Ò Ô 4Ñ5Ô5Ð5ð ˆàð A	(ñ A	(ˆCðØ  œ:‘��S�SøÝð ð ð Ø�ðøøøàð +õ ”g—o’o cÑ*Ô*�à�dÔ(Ð(Ð(Ø! C™K�	‘	Ø˜Ô,Ð,Ð,Ø! C™K�	Ø#�‘Ø˜Ô+Ð+Ð+à�	Ø" S™[�
ð,Ø—J’J ¤˜y¨7Ñ2°jÀ)Ð5LÑLÑMÔMÐMÐMøÝ)ð ,ð ,ð ,Ý& sÑ+Ô+Ð+øøøøð,øøøàØ˜Ô+Ð+Ñ+õ œŸš¨Ñ,Ô,�ÝœŸš¨Ñ-Ô-�ð	,à—J’J ¤¨¨u°d¸FÀCÐHÑIÔIÐIÝ œg×.Ò.­r¬w×/?Ò/?ÀÑ/EÔ/EÑFÔF‘G�D˜!Ý œgŸlšl¨6°4¸%±<Ñ@Ô@�Gà—J’J ¤¨°©°gÐ>Ñ?Ô?Ð?Ð?øå)ð ,ð ,ð ,Ý& sÑ+Ô+Ð+øøøøð,øøøáõ #Ð#Gß$*¢F¨3°Ñ$4Ô$4ñ6ô 6ð 6ð ”G�9˜|Ñ+¨gÑ5ˆDØð %Ø—’˜GÑ$Ô$Ð$Ø�KŠK˜	Ñ"Ô"Ð"Ø�KŠK˜ ™Ñ$Ô$Ð$Ø�KŠK˜Ñ'Ô'Ð'ð(Ø—
’
˜4Ñ Ô Ð Ñ øÝ%ð (ð (ð (Ý" 3Ñ'Ô'Ð'øøøøð(øøøð ˆs[   ÂB"Â"
B/Â.B/Ä#D*Ä*
EÄ4EÅEÆB"H8È8
IÉIÉIË&K=Ë=
LÌLÌLc                 óê  — | j         s|                      ¦   «          |                      ||¦  «        \  }}|                      ||¬¦  «        }|                      ||¦  «        r||d|z   gz   }|r	 	 t          j        d| j        d                     |¦  «        ¦  «         |  	                    | j        g|z   ¦  «         d S # t          $ r}t          |¦  «        ‚d }~ww xY wt          j        d|¦  «         d S )N)r»   ú/OUT:úExecuting "%s" %sú úskipping %s (up-to-date))r   r©   Ú_fix_object_argsÚlibrary_filenameÚ
_need_linkr
   r   r‡   r<   rÌ   r   r   )	r€   rÕ   Úoutput_libnamer»   r   Útarget_langÚoutput_filenameÚlib_argsrÞ   s	            r)   Úcreate_static_libzMSVCCompiler.create_static_lib˜  s  € ð Ôð 	Ø�OŠOÑÔÐØ"×3Ò3°G¸ZÑHÔHÑˆ�Ø×/Ò/°Ø;Eð 0ñ Gô Gˆð �?Š?˜7 OÑ4Ô4ð 
	CØ '¨OÑ";Ð!<Ñ<ˆHØð Øð$Ý”	Ð-¨t¬x¸¿ºÀ(Ñ9KÔ9KÑLÔLÐLØ—
’
˜DœH˜:¨Ñ0Ñ1Ô1Ð1Ð1Ð1øÝ%ð $ð $ð $Ý˜s‘m”mÐ#øøøøð$øøøõ ŒIÐ0°/ÑBÔBÐBÐBÐBs   Á/AB= Â=
CÃCÃCc                 ó8  — | j         s|                      ¦   «          |                      ||¦  «        \  }}|                      |||¦  «        }|\  }}}|r%|                      dt          |¦  «        z   ¦  «         t          | |||¦  «        }|� t          j         	                    ||¦  «        }|  
                    ||¦  «        �rÁ| j        ||	f         }d„ |pg D ¦   «         }||z   |z   |z   d|z   gz   }t          j                             |d         ¦  «        }|�Št          j                             t          j                             |¦  «        ¦  «        \  }}t          j         	                    ||                      |¦  «        ¦  «        }|                     d|z   ¦  «         |
r|
|d d…<   |r|                     |¦  «         t          j                             t          j                             |¦  «        ¦  «        }|                      |¦  «         	 t)          j        d| j        d 	                    |¦  «        ¦  «         |                      | j        g|z   ¦  «         d S # t0          $ r}t3          |¦  «        ‚d }~ww xY wt)          j        d|¦  «         d S )	Nz5I don't know what to do with 'runtime_library_dirs': c                 ó   — g | ]}d |z   ‘ŒS )z/EXPORT:rS   )rV   Úsyms     r)   ú
<listcomp>z%MSVCCompiler.link.<locals>.<listcomp>Õ  s   € ÐNÐNÐN°˜:¨Ñ+ÐNÐNÐNrO   rå   r   z/IMPLIB:ræ   rç   rè   )r   r©   ré   Ú_fix_lib_argsÚwarnÚstrr	   r   r   r<   rë   r¤   rÍ   r³   r´   rê   rÇ   rÈ   rq   Úmkpathr
   r   r�   rÌ   r   r   )r€   Útarget_descrÕ   rî   r»   Ú	librariesÚlibrary_dirsÚruntime_library_dirsÚexport_symbolsr   rÑ   rÒ   Ú
build_temprí   Ú
fixed_argsÚlib_optsr§   Úexport_optsÚld_argsÚdll_nameÚdll_extÚimplib_filerÞ   s                          r)   ÚlinkzMSVCCompiler.link²  sµ  € ð Ôð 	Ø�OŠOÑÔÐØ"×3Ò3°G¸ZÑHÔHÑˆ�Ø×'Ò'¨	°<Ø(<ñ>ô >ˆ
à8BÑ5ˆ	�<Ð!5àð 	4Ø�IŠIÐMÝÐ1Ñ2Ô2ñ3ñ 4ô 4ð 4õ # 4Ø#/Ð1EØ#,ñ.ô .ˆð Ð!Ý œgŸlšl¨:°ÑGÔGˆOà�?Š?˜7 OÑ4Ô4ñ #	CØ”m K°Ð$6Ô7ˆGàNÐN¸Ð8LÈ"ÐNÑNÔNˆKà Ñ)¨KÑ7ØñØ")¨OÑ";Ð!<ñ=ˆGõ œŸš¨°¬Ñ4Ô4ˆJØÐ)Ý&(¤g×&6Ò&6Ý”G×$Ò$ _Ñ5Ô5ñ'7ô '7Ñ#�˜7å œgŸlšlØØ×)Ò)¨(Ñ3Ô3ñ5ô 5�ð —’ 
¨[Ñ 8Ñ9Ô9Ð9àð ,Ø+�˜˜˜‘Øð /Ø—’˜~Ñ.Ô.Ð.åœŸš­¬¯ª¸Ñ)IÔ)IÑJÔJˆJØ�KŠK˜
Ñ#Ô#Ð#ð%Ý”	Ð-¨t¬{¸C¿HºHÀWÑ<MÔ<MÑNÔNÐNØ—
’
˜DœK˜=¨7Ñ2Ñ3Ô3Ð3Ð3Ð3øÝ%ð %ð %ð %Ý ‘n”nÐ$øøøøð%øøøõ ŒIÐ0°/ÑBÔBÐBÐBÐBs   ÈAI$ É$
JÉ.I=É=Jc                 óÞ   •— t          j        d¦  «        }	 | j        t           j        d<   t	          ¦   «                              |¦  «        |t           j        d<   S # |t           j        d<   w xY w)Nr   )r   ra   rŽ   r8   ÚsuperrÌ   )r€   rh   Úold_pathÚ	__class__s      €r)   rÌ   zMSVCCompiler.spawn÷  s_   ø€ Ý”9˜VÑ$Ô$ˆð	*Ø!%¤�BŒJ�vÑÝ‘7”7—=’= Ñ%Ô%à!)�BŒJ�vÑÐø �BŒJ�vÑÐ)Ð)Ð)Ð)s   —4A ÁA,c                 ó   — d|z   S )Nz	/LIBPATH:rS   ©r€   r¦   s     r)   Úlibrary_dir_optionzMSVCCompiler.library_dir_option  s   € Ø˜SÑ Ð rO   c                 ó    — t          d¦  «        ‚)Nz:don't know how to set runtime library search path for MSVC)r   r  s     r)   Úruntime_library_dir_optionz'MSVCCompiler.runtime_library_dir_option  s   € Ý$ØJñLô Lð 	LrO   c                 ó,   — |                       |¦  «        S ©N)rê   )r€   r‡   s     r)   Úlibrary_optionzMSVCCompiler.library_option
  s   € Ø×$Ò$ SÑ)Ô)Ð)rO   c                 óä   — |r|dz   |g}n|g}|D ]_}|D ]Z}t           j                             ||                      |¦  «        ¦  «        }t           j                             |¦  «        r|c c S Œ[Œ`d S )NÚ_d)r   r   r<   rê   rJ   )r€   Údirsr‡   r   Ú	try_namesr¦   ÚnameÚlibfiles           r)   Úfind_library_filezMSVCCompiler.find_library_file  s˜   € ð ð 	Ø˜t™ SÐ)ˆIˆIà˜ˆIØð 	ð 	ˆCØ!ð #ð #�Ýœ'Ÿ,š, s¨D×,AÒ,AÀ$Ñ,GÔ,GÑHÔH�Ý”7—>’> 'Ñ*Ô*ð #Ø"�N�N�N�N�Nð#ð#ð �4rO   )r   r   r   r  )r   r…   )NNNr   NNN)Nr   N)
NNNNNr   NNNN)r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úcompiler_typeÚexecutablesrÊ   rË   r¿   rÀ   r¾   r°   r¬   Ústatic_lib_extensionÚshared_lib_extensionÚstatic_lib_formatÚshared_lib_formatÚexe_extensionr}   r©   rÄ   rã   rð   r  rÌ   r  r  r  r  Ú__classcell__)r
  s   @r)   ry   ry   ª   sÆ  ø€ € € € € ð6ð 6ð €Mð €Kð �F€MØ-Ð-Ð-€OØ�W€NØ�W€Nð $ oÑ5Ø$ñ%Ø'5ñ6€Nà€MØ€MØ!ÐØ!ÐØ,2Ð2ÐÐ)Ø€Mð!ð !ð !ð !ðJ ð J ð J ð J ð` $%Ø$&ð:ð :ð :ð :ðD HIØAEðWð Wð Wð Wðz &*Ø !Ø&*ðCð Cð Cð Cð< ØØØ"&Ø ØØØ ØØðCCð CCð CCð CCðJ*ð *ð *ð *ð *ð!ð !ð !ðLð Lð Lð*ð *ð *ðð ð ð ð ð ð ð rO   ry   r  )r  r   r:   r   Údistutils.errorsr   r   r   r   r   Údistutils.ccompilerr   r	   Ú	distutilsr
   Údistutils.utilr   Ú	itertoolsr   r*   rA   ÚPLAT_SPEC_TO_RUNTIMErN   rm   rv   rŒ   ry   rS   rO   r)   ú<module>r,     s‡  ððð ð 
€	€	€	Ø Ð Ð Ð Ø €€€ð?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?à :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ø Ð Ð Ð Ð Ð Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'à Ð Ð Ð Ð Ð ð"ð "ð "ð8ð ð ðB ØØØð	ð Ð ðð ð ð$ð ð ð<ð ð ð ð* ØØØð	ð €ðqð qð qð qð q�9ñ qô qð qð qð qrO   