Ë
    nûàg;.  ã                   ó  — d 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
 ddlmZ ddlmZ ddlZdd	lmZ dd
lmZ  ej(                  d¬«      d„ «       Z ej(                  d¬«      d„ «       Z G d„ dej.                  «      Zy)z"Tests for distutils.unixccompiler.é    N)Ú	sysconfig)Úconsolidate_linker_args)ÚDistutilsPlatformError)ÚUnixCCompiler)Ú_clear_cached_macosx_veré   )Úsupport)ÚEnvironmentVarGuardT)Úautousec                 óâ   — | j                  t        dt        j                  «       | j                  t        dt        j                  «       | j                  t        dt        j
                  «       y )NÚplatformÚget_config_varÚget_config_vars)ÚsetattrÚsysr   r   r   r   )Úmonkeypatchs    úl/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/setuptools/_distutils/tests/test_unixccompiler.pyÚsave_valuesr      sJ   € à×Ñœ˜Z¬¯©Ô6Ø×Ñœ	Ð#3´Y×5MÑ5MÔNØ×Ñœ	Ð#4´i×6OÑ6OÕPó    c                 óN   —  G d„ dt         «      } |«       | j                  _        y )Nc                   ó   — e Zd Zd„ Zy)ú)compiler_wrapper.<locals>.CompilerWrapperc                 ó$   — | j                  d«      S )Nz/foo)Úruntime_library_dir_option©Úselfs    r   Ú	rpath_fooz3compiler_wrapper.<locals>.CompilerWrapper.rpath_foo   s   € Ø×2Ñ2°6Ó:Ð:r   N)Ú__name__Ú
__module__Ú__qualname__r   © r   r   ÚCompilerWrapperr      s   „ ó	;r   r"   )r   ÚinstanceÚcc)Úrequestr"   s     r   Úcompiler_wrapperr&      s!   € ô;œ-ô ;ñ *Ó+€G×ÑÕr   c                   ó\  — e Zd Zej                  j                  d«      d„ «       Zej                  j                  d«      d„ «       Zej                  j                  d«      ej                  j                  d«      d„ «       «       Z	ej                  j                  d«      d„ «       Z
d„ Zd„ Zy	)
ÚTestUnixCCompilerzplatform.system == "Windows"c                 óV  ‡ ‡‡— dt         _        dŠd}d}d|fd|fd|fd|fd	|fd
|fd|fd|fd|fd|fd|fdg}ˆfd„Šˆˆˆ fd„}|D ]<  \  }}|\  }} ||||«       |€
 |d||«       |€
 ||d|«       |�Œ0|�Œ3 |dd|«       Œ> t        j                  }	dt         _        d„ }
|
t        _        ‰ j                  j                  «       ddgk(  sJ ‚d„ }
|
t        _        ‰ j                  j                  «       ddgk(  sJ ‚d„ }
|
t        _        ‰ j                  j                  «       ddgk(  sJ ‚|	t        _        dt         _        d„ }
|
t        _        ‰ j                  j                  «       t        ddg«      k(  sJ ‚d„ }
|
t        _        ‰ j                  j                  «       t        ddg«      k(  sJ ‚dt         _        d„ }
|
t        _        ‰ j                  j                  «       dk(  sJ ‚dt         _        d „ }
|
t        _        ‰ j                  j                  «       t        ddg«      k(  sJ ‚dt         _        d!„ }
|
t        _        ‰ j                  j                  «       t        ddg«      k(  sJ ‚dt         _        d"„ }
|
t        _        ‰ j                  j                  «       dk(  sJ ‚y )#NÚdarwinÚMACOSX_DEPLOYMENT_TARGETz-Wl,-rpath,/fooz-L/foo)NN)NÚ11)Ú10N)ú10.3N)z10.3.1N)ú10.5N)z10.5.1N)r.   r.   )r.   r/   )r/   r.   )r/   r,   ))z10.4r-   Nc                 ó   •‡ — ˆˆ fd„}|S )Nc                 ó   •— | ‰k(  r‰S y©NÚxxxr!   )ÚvarÚdarwin_ver_varÚsyscfg_macosx_vers    €€r   ÚgcvzRTestUnixCCompiler.test_runtime_libdir_option.<locals>.make_darwin_gcv.<locals>.gcvC   s   ø€ Ø˜.Ò(Ø,Ð,Ør   r!   )r6   r7   r5   s   ` €r   Úmake_darwin_gcvzETestUnixCCompiler.test_runtime_libdir_option.<locals>.make_darwin_gcvB   s   ù€ õð
 ˆJr   c                 ó4  •— t         j                  }d| ›d|›d�}t        j                  }|j	                  ‰«      }t        «         ‰| «      t        _        |�||‰<   n‰|v r|j                  ‰«       |�$‰	j                  j                  «       |k(  sHJ |«       ‚t        j                  t        ‰dz   ¬«      5  ‰	j                  j                  «        d d d «       |�||‰<   n‰|v r|j                  ‰«       |t        _        t        «        y # 1 sw Y   Œ<xY w)NzmacOS version = (sysconfig=z, env=ú)z	 mismatch)Úmatch)ÚosÚenvironr   r   Úgetr   Úpopr$   r   ÚpytestÚraisesr   )
r6   Úenv_macosx_verÚexpected_flagÚenvÚmsgÚold_gcvÚold_env_macosx_verr5   r8   r   s
          €€€r   Údo_darwin_testzDTestUnixCCompiler.test_runtime_libdir_option.<locals>.do_darwin_testJ   s  ø€ Ü—*‘*ˆCØ/Ð0AÐ/DÀFÈ>ÐJ\Ð\]Ð^ˆCô  ×.Ñ.ˆGØ!$§¡¨Ó!8Ðô %Ô&Ù'6Ð7HÓ'IŒIÔ$ØÐ)Ø&4��NÒ#Ø 3Ñ&Ø—‘˜Ô'ð Ð(Ø—w‘w×(Ñ(Ó*¨mÒ;Ð@¸SÓ@Ð;ä—]‘]Ü*°.À<Ñ2Oôñ (ð —G‘G×%Ñ%Ô'÷(ð "Ð-Ø&8��NÒ#Ø 3Ñ&Ø—‘˜Ô'Ø'.ŒIÔ$Ü$Õ&÷(ð (ús   Â8DÄDÚ zhp-uxc                  ó   — yr2   r!   ©Úvs    r   r7   z9TestUnixCCompiler.test_runtime_libdir_option.<locals>.gcv{   ó   € Ør   z+sc                  ó   — y)NÚgccr!   rK   s    r   r7   z9TestUnixCCompiler.test_runtime_libdir_option.<locals>.gcv�   rM   r   z-Wl,+sc                  ó   — y)Nzg++r!   rK   s    r   r7   z9TestUnixCCompiler.test_runtime_libdir_option.<locals>.gcv‡   rM   r   Úbarc                 ó   — | dk(  ry| dk(  ryy )NÚCCrO   ÚGNULDÚyesr!   rK   s    r   r7   z9TestUnixCCompiler.test_runtime_libdir_option.<locals>.gcv’   s   € Ø�DŠyØØ�g’Øð r   z-Wl,--enable-new-dtagsc                 ó   — | dk(  ry| dk(  ryy )NrS   zgcc -pthread -B /barrT   rU   r!   rK   s    r   r7   z9TestUnixCCompiler.test_runtime_libdir_option.<locals>.gcvž   s   € Ø�DŠyØ-Ø�g’Øð r   c                 ó   — | dk(  ry| dk(  ryy )NrS   rO   rT   Únor!   rK   s    r   r7   z9TestUnixCCompiler.test_runtime_libdir_option.<locals>.gcv­   s   € Ø�DŠyØØ�g’Øð r   z
-Wl,-R/fooc                 ó   — | dk(  ry| dk(  ryy )NrS   zx86_64-pc-linux-gnu-gcc-4.4.2rT   rU   r!   rK   s    r   r7   z9TestUnixCCompiler.test_runtime_libdir_option.<locals>.gcvº   s   € Ø�DŠyØ6Ø�g’Øð r   c                 ó   — | dk(  ry| dk(  ryy )NrS   r$   rT   rU   r!   rK   s    r   r7   z9TestUnixCCompiler.test_runtime_libdir_option.<locals>.gcvÉ   s   € Ø�DŠyØØ�g’Øð r   c                 ó   — | dk(  ry| dk(  ryy )NrS   r$   rT   rX   r!   rK   s    r   r7   z9TestUnixCCompiler.test_runtime_libdir_option.<locals>.gcvØ   s   € Ø�DŠyØØ�g’Øð r   )r   r   r   r   r$   r   r   )r   Údarwin_rpath_flagÚdarwin_lib_flagÚdarwin_test_casesrH   Úmacosx_versrC   r6   rB   rF   r7   r5   r8   s   `          @@r   Útest_runtime_libdir_optionz,TestUnixCCompiler.test_runtime_libdir_option#   s+  ú€ ð  ŒŒØ3ˆØ-ÐØ"ˆð ˜?Ð+ØÐ,Ð-Ø˜?Ð+Ø˜_Ð-Ø˜Ð/ØÐ.Ð/ØÐ0Ð1Ø˜Ð/ØÐ0Ð1Ø˜Ð/ØÐ.Ð/Ø"ð
Ðô	ö	'ðB +<ò 		6Ñ&ˆK˜Ø0;Ñ-Ð˜~ÙÐ,¨n¸mÔLà Ð(Ù˜r >°=ÔAØÐ%ÙÐ0°"°mÔDØ Ñ(¨^Ñ-CÙ˜r 2 }Õ5ð		6ô ×*Ñ*ˆð ŒŒò	ð $'Œ	Ô Ø�w‰w× Ñ Ó" t¨XÐ&6Ò6Ð6Ð6ò	ð $'Œ	Ô Ø�w‰w× Ñ Ó" x°Ð&:Ò:Ð:Ð:ò	ð $'Œ	Ô Ø�w‰w× Ñ Ó" x°Ð&:Ò:Ð:Ð:à#*Œ	Ô ð ŒŒò	ð $'Œ	Ô Ø�w‰w× Ñ Ó"Ô&=Ø$Øð?
ó 'ò ð 	ð ò
	ð $'Œ	Ô Ø�w‰w× Ñ Ó"Ô&=Ø$Øð?
ó 'ò ð 	ð ð ŒŒò	ð $'Œ	Ô Ø�w‰w× Ñ Ó" lÒ2Ð2Ð2ð ŒŒò	ð $'Œ	Ô Ø�w‰w× Ñ Ó"Ô&=Ø$Øð?
ó 'ò ð 	ð ð ŒŒò	ð $'Œ	Ô Ø�w‰w× Ñ Ó"Ô&=Ø$Øð?
ó 'ò ð 	ð ð ŒŒò	ð $'Œ	Ô Ø�w‰w× Ñ Ó" lÒ2Ð2Ñ2r   c                 ó&  — d„ }t         j                  dœd„}|t         _        |t         _        t        «       5 }d|d<   |d= t        j                  | j
                  «       d d d «       | j
                  j                  d   dk(  sJ ‚y # 1 sw Y   Œ(xY w)Nc                 ó   — | dk(  ryy©NÚLDSHAREDú*gcc-4.2 -bundle -undefined dynamic_lookup úgcc-4.2r!   rK   s    r   r7   z9TestUnixCCompiler.test_cc_overrides_ldshared.<locals>.gcvå   ó   € Ø�JŠØCØr   ©Ú_origc                 óZ   — |r#t        t        t        j                  |«      «      S  | «       S ©N©ÚlistÚmapr   r   ©ri   Úargss     r   Úgcvsz:TestUnixCCompiler.test_cc_overrides_ldshared.<locals>.gcvsê   ó$   € ÙÜœC¤	× 8Ñ 8¸$Ó?Ó@Ð@Ù“7ˆNr   Úmy_ccrS   rd   r   ©r   r   r   r
   Úcustomize_compilerr$   Ú	linker_so©r   r7   rq   rD   s       r   Útest_cc_overrides_ldsharedz,TestUnixCCompiler.test_cc_overrides_ldsharedá   s‡   € ò	ô
 (×7Ñ7ô 	ð
 $'Œ	Ô Ø$(Œ	Ô!Ü Ó"ð 	2 cØˆC�‰IØ�J�Ü×(Ñ(¨¯©Ô1÷	2ð �w‰w× Ñ  Ñ# wÒ.Ð.Ñ.÷		2ð 	2ús   ¸(BÂBÚdisable_macos_customizationc           
      ó:  — d„ }t         j                  dœd„}|t         _        |t         _        t        j                  j                  | j                  dd¬«      5 }t        j                  j                  | j                  dd¬«      5  t        j                  j                  | j                  d	d¬«      5  t        «       5 }d
|d<   d|d<   |d= t        j                  | j                  «       | j                  j                  dd ddgk(  sJ ‚| j                  j                  dg dd¬«       |j                  d   d   }g d¢}|dd |k(  sJ ‚	 ddd«       ddd«       ddd«       ddd«       y# 1 sw Y   Œ"xY w# 1 sw Y   Œ&xY w# 1 sw Y   Œ*xY w# 1 sw Y   yxY w)z�
        Ensure that setting CC env variable also changes default linker
        correctly when building C++ extensions.

        pypa/distutils#126
        c                 ó4   — | dk(  ry| dk(  ry| dk(  ry| dk(  ryy	)
Nrd   re   ÚLDCXXSHAREDz*g++-4.2 -bundle -undefined dynamic_lookup ÚCXXzg++-4.2rS   rf   rI   r!   rK   s    r   r7   zKTestUnixCCompiler.test_cc_overrides_ldshared_for_cxx_correctly.<locals>.gcv  s.   € Ø�JŠØCØ�mÒ#ØCØ�e’Ø Ø�d’Ø Ør   rh   c                 óZ   — |r#t        t        t        j                  |«      «      S  | «       S rk   rl   ro   s     r   rq   zLTestUnixCCompiler.test_cc_overrides_ldshared_for_cxx_correctly.<locals>.gcvs  rr   r   ÚspawnN)Úreturn_valueÚ
_need_linkTÚmkpathzccache my_ccrS   Úmy_cxxr}   rd   r   é   Úccachers   za.outzc++)Útarget_lang)rƒ   z-bundlez
-undefinedÚdynamic_lookupé   )r   r   r   ÚmockÚpatchÚobjectr$   r
   ru   rv   ÚlinkÚ	call_args)r   r7   rq   Ú
mock_spawnrD   r�   Úexpecteds          r   Ú,test_cc_overrides_ldshared_for_cxx_correctlyz>TestUnixCCompiler.test_cc_overrides_ldshared_for_cxx_correctly÷   s{  € ò		ô (×7Ñ7ô 	ð
 $'Œ	Ô Ø$(Œ	Ô!ä�J‰J×Ñ˜dŸg™g w¸TÐÓBð	-ØFPÜ�J‰J×Ñ˜dŸg™g |À$ÐÓGñ	-ô �J‰J×Ñ˜dŸg™g x¸dÐÓCñ	-ô  Ó!ð		-ð &)à&ˆC�‰IØ!ˆC�‰JØ�J�Ü×(Ñ(¨¯©Ô1Ø—7‘7×$Ñ$ Q qÐ)¨h¸Ð-@Ò@Ð@Ð@Ø�G‰G�L‰L˜˜r 7¸ˆLÔ>Ø"×,Ñ,¨QÑ/°Ñ2ˆIÚLˆHØ˜R˜a�= HÒ,Ð,Ñ,÷	-÷ 	-÷ 	-÷ 	-÷ 	-ñ 	-ú÷ 	-ð 	-ú÷ 	-ð 	-ú÷ 	-ð 	-úsU   Á-FÂ-FÂ4E9Â?BE-	ÅE9ÅFÅFÅ-E6Å2E9Å9FÅ>FÆF	Æ
FÆFc                 ó*  — d„ }t         j                  dœd„}|t         _        |t         _        t        «       5 }d|d<   d|d<   t        j                  | j
                  «       d d d «       | j
                  j                  d   d	k(  sJ ‚y # 1 sw Y   Œ(xY w)
Nc                 ó   — | dk(  ryyrc   r!   rK   s    r   r7   z5TestUnixCCompiler.test_explicit_ldshared.<locals>.gcv(  rg   r   rh   c                 óZ   — |r#t        t        t        j                  |«      «      S  | «       S rk   rl   ro   s     r   rq   z6TestUnixCCompiler.test_explicit_ldshared.<locals>.gcvs-  rr   r   rs   rS   zmy_ld -bundle -dynamicrd   r   Úmy_ldrt   rw   s       r   Útest_explicit_ldsharedz(TestUnixCCompiler.test_explicit_ldshared#  s‰   € ò
	ô
 (×7Ñ7ô 	ð
 $'Œ	Ô Ø$(Œ	Ô!Ü Ó"ð 	2 cØˆC�‰IØ6ˆC�
‰OÜ×(Ñ(¨¯©Ô1÷	2ð �w‰w× Ñ  Ñ# wÒ.Ð.Ñ.÷		2ð 	2ús   ¸*B	Â	Bc                 ó¢   — d| j                   _        t        j                  | j	                  «       «       | j                   j                  d«       y )NÚscratchÚabort)r$   Ú
output_dirr<   ÚchdirÚmkdtempÚhas_functionr   s    r   Útest_has_functionz#TestUnixCCompiler.test_has_function:  s4   € ð 'ˆ�‰ÔÜ
�‰�—‘“Ô Ø�‰×Ñ˜WÕ%r   c                 óJ  — t        «       }d„ |_        |j                  t        j                  dd„ «       t
        j                  dk7  rdnd}d}|j                  |d«      j                  d	d
«      d|› �k(  sJ ‚|j                  t        |«      d«      j                  d	d
«      d|› �k(  sJ ‚|j                  t        j                  dd„ «       |j                  |d«      j                  d	d
«      dk(  sJ ‚|j                  t        |«      d«      j                  d	d
«      dk(  sJ ‚y )Nc                 ó   — | S rk   r!   )Údirs    r   ú<lambda>z:TestUnixCCompiler.test_find_library_file.<locals>.<lambda>D  s   € ¨S€ r   Úexistsc                 ó
   — d| v S )NÚexistingr!   ©Úds    r   r¡   z:TestUnixCCompiler.test_find_library_file.<locals>.<lambda>E  s
   € ¸Àq¸€ r   Úcygwinzlibabc.dylibz
cygabc.dll)z/foo/bar/missingz/foo/bar/existingÚabcú\ú/z/foo/bar/existing/c                 ó"   — d| v xr
 d| v xr d| vS )Nr¤   z.az.dll.ar!   r¥   s    r   r¡   z:TestUnixCCompiler.test_find_library_file.<locals>.<lambda>U  s   € �j A�oÒI¨$°!¨)ÒI¸ÈÐ8I€ r   z/foo/bar/existing/libabc.a)
r   Ú_library_rootr   r<   Úpathr   r   Úfind_library_fileÚreplaceÚreversed)r   r   ÚcompilerÚlibnameÚdirss        r   Útest_find_library_filez(TestUnixCCompiler.test_find_library_fileB  s4  € Ü “?ˆÙ!0ˆÔØ×ÑœBŸG™G XÑ/HÔIä$'§L¡L°HÒ$<‘.À,ˆØ8ˆà×&Ñ& t¨UÓ3×;Ñ;¸DÀ#ÓFØ# G 9Ð-ò.ð	
ð.ð ×&Ñ&¤x°£~°uÓ=×EÑEÀdÈCÓPØ# G 9Ð-ò.ð	
ð.ð 	×ÑÜ�G‰GØÙIô	
ð ×&Ñ& t¨UÓ3×;Ñ;¸DÀ#ÓFØ+ò,ð	
ð,ð ×&Ñ&¤x°£~°uÓ=×EÑEÀdÈCÓPØ+ò,ð	
ñ,r   N)r   r   r    r@   ÚmarkÚskipifr`   rx   Úusefixturesr�   r•   r�   r´   r!   r   r   r(   r(   "   s¶   „ Ø‡[�[×ÑÐ6Ó7ñ{3ó 8ð{3ðz ‡[�[×ÑÐ6Ó7ñ/ó 8ð/ð* ‡[�[×ÑÐ6Ó7Ø‡[�[×ÑÐ:Ó;ñ(-ó <ó 8ð(-ðT ‡[�[×ÑÐ6Ó7ñ/ó 8ð/ò,&ó
r   r(   )Ú__doc__r<   r   Úunittest.mockr‰   Ú	distutilsr   Údistutils.compatr   Údistutils.errorsr   Údistutils.unixccompilerr   Údistutils.utilr   r@   rI   r	   Úcompat.py39r
   Úfixturer   r&   ÚTempdirManagerr(   r!   r   r   ú<module>rÂ      s}   ðÙ (ã 	Û 
Ý Ý Ý 4Ý 3Ý 1Ý 3ã å Ý ,ð €‡�˜ÔñQó ðQð €‡�˜Ôñ,ó ð,ô|
˜×.Ñ.õ |
r   