+
    SBi.                         R t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RIH	t	 ^ RI
Ht ^ RIt^ RIt^ RIt^ RIHt ^ RIHt R t]P*                  P-                  R4       ! R	 R
4      4       tR# )zTests for distutils.sysconfig.N)	sysconfig)new_compiler)UnixCCompiler)trim)	swap_itemc                 j    \         P                  P                  R \        V4      /V 4       V R ,          # )Makefile)jaracopathbuildr   )rootcontentss   &&O/usr/lib/python3.14/site-packages/setuptools/_distutils/tests/test_sysconfig.py_gen_makefiler      s*    
KKz4>2D9*    save_envc                     a  ] tR t^t o R t]P                  P                  R4      ]P                  P                  R4      R 4       4       tR t	R t
]P                  P                  R4      ]P                  P                  R4      ]P                  P                  R	4      R
 4       4       4       t]P                  P                  R4      ]P                  P                  R4      R 4       4       tR tR t]P                  P                  R4      ]P                  P!                  R4      R 4       4       tR tR tR t]P                  P                  R4      R 4       t]P                  P                  R4      R 4       tR tR t]P                  P                  R4      ]P                  P                  R4      R 4       4       t]P                  P                  R4      ]P                  P                  R4      ]P                  P                  RP5                  4       ]P8                  P5                  4       9  RR7      R  4       4       4       tR! tR"tV t R## )$TestSysconfigc                ~    \         P                  ! 4       p\        P                  P	                  V4      '       g   Q hR # N)r   get_config_h_filenameosr
   isfile)selfconfig_hs   & r   test_get_config_h_filename(TestSysconfig.test_get_config_h_filename   s)    224ww~~h''''r   zplatform.system() == 'Windows'z$sys.implementation.name != 'cpython'c                ~    \         P                  ! 4       p\        P                  P	                  V4      '       g   Q hR # r   )r   get_makefile_filenamer   r
   r   )r   makefiles   & r   test_get_makefile_filename(TestSysconfig.test_get_makefile_filename   s+     224ww~~h''''r   c                h    \         P                  ! 4       \         P                  ! VR 7      8w  g   Q hR# ))prefixN)r   get_python_lib)r   tmp_paths   &&r   test_get_python_lib!TestSysconfig.test_get_python_lib%   s$    '')Y-E-EX-VVVVr   c                t    \         P                  ! 4       p\        V\        4      '       g   Q hV'       g   Q hR # r   )r   get_config_vars
isinstancedict)r   cvarss   & r   test_get_config_vars"TestSysconfig.test_get_config_vars(   s*    ))+%&&&&ur   zsysconfig.IS_PYPYzsysconfig.python_buildzplatform.system() == "Windows"c                R   \         P                  ! \        P                  ! R 4      4      pVP	                  4       '       g   Q hVP                  4       '       g   Q h\         P                  ! \        P                  ! 4       4      pVP                  P                  V4      '       g   Q hR# )srcdirN)	pathlibPathr   get_config_varabsoluteis_dirr   parentsamefile)r   r0   r   s   &  r   test_srcdir_simple TestSysconfig.test_srcdir_simple-   sr    
 i66x@A    }}<<	 ? ? AB''////r   znot sysconfig.python_buildc                8   \         P                  ! \        P                  ! R 4      4      pVP	                  RR4      pVP                  4       '       g   Q h\        P                  ! V4      '       g   Q h\        P                  ! \        V4      4      '       g   Q hR# )r0   IncludezPython.hN)r1   r2   r   r3   joinpathis_file_is_python_source_dirstr)r   r0   Python_hs   &  r   test_srcdir_python_build&TestSysconfig.test_srcdir_python_build:   sv     i66x@A ??9j9!!!!..v6666..s6{;;;;r   c                    \         P                  ! R4      p\        P                  ! R4      ;_uu_ 4        \         P                  ! R4      pRRR4       VX8X  g   Q hR#   + '       g   i     L; i)z?
srcdir should be independent of the current working directory
r0   z..N)r   r3   r
   r2   )r   r0   srcdir2s   &  r   test_srcdir_independent_of_cwd,TestSysconfig.test_srcdir_independent_of_cwdG   sL    
 ))(3YYt__..x8G     _s   AA/	c                p    ! R  R4      pRRRRRRRR	R
RRRRRRR/pV! 4       p\         P                  ! 4       ;_uu_ 4       pVP                  4        F.  w  rVVP                  \	        \
        P                  WV4      4       K0  	  \
        P                  ! V4       RRR4       V#   + '       g   i     T# ; i)c                   H   a  ] tR t^St o Rt]P                  tR tR tRt	V t
R# )2TestSysconfig.customize_compiler.<locals>.compilerunixc                    / V n         R # r   exesr   s   &r   __init__;TestSysconfig.customize_compiler.<locals>.compiler.__init__W   s	    	r   c                T    VP                  4        F  w  r#W0P                  V&   K  	  R # r   )itemsrM   )r   kwkvs   &,  r   set_executablesBTestSysconfig.customize_compiler.<locals>.compiler.set_executablesZ   s    HHJDA#$IIaL 'r   rL   N)__name__
__module____qualname____firstlineno__compiler_typer   executablesrO   rV   __static_attributes____classdictcell____classdict__s   @r   compilerrI   S   s$     "M'33K% %r   rb   ARsc_arCCsc_ccCXXsc_cxxARFLAGSz--sc-arflagsCFLAGSz--sc-cflagsCCSHAREDz--sc-ccsharedLDSHAREDsc_ldsharedSHLIB_SUFFIXsc_shutil_suffixN)
contextlib	ExitStackrR   enter_contextr   r   _config_varscustomize_compiler)r   rb   sysconfig_varscompcmkeyvalues   &      r   rt    TestSysconfig.customize_compilerQ   s    		% 		% ''8~m.	
 z!!##r,224
  9+A+A3!NO 5((. $
  $#
 s   AB$$B5	z-not isinstance(new_compiler(), UnixCCompiler)disable_macos_customizationc                   \         P                  ! 4        R \        P                  R&   R\        P                  R&   R\        P                  R&   R\        P                  R&   R\        P                  R	&   R
\        P                  R&   R\        P                  R&   R\        P                  R&   R\        P                  R&   R\        P                  R&   V P	                  4       pVP
                  R,          R8X  g   Q hVP
                  R,          R8X  g   Q hVP
                  R,          R8X  g   Q hVP
                  R,          R8X  g   Q hVP
                  R,          R8X  g   Q hVP
                  R,          R8X  g   Q hVP
                  R,          R 8X  g   Q hVP                  R!8X  g   Q h\        P                  R"8X  d   VP
                  R#,          R8X  g   Q hMR#VP
                  9  g   Q h\        P                  R \        P                  R \        P                  R \        P                  R \        P                  R	 \        P                  R \        P                  R \        P                  R \        P                  R \        P                  R V P	                  4       pVP
                  R,          R$8X  g   Q hVP
                  R,          R%8X  g   Q hVP
                  R,          R&8X  g   Q hVP
                  R,          R'8X  g   Q hVP
                  R,          R(8X  g   Q hVP
                  R,          R)8X  g   Q hVP
                  R,          R*8X  g   Q hVP                  R!8X  g   Q hR#VP
                  9  g   Q hR+# ),env_arrc   env_ccre   env_cppCPPzenv_cxx --env-cxx-flagsrg   env_ldsharedrl   z--env-ldflagsLDFLAGSz--env-arflagsri   z--env-cflagsrj   z--env-cppflagsCPPFLAGS
env_ranlibRANLIBarchiverzenv_ar --env-arflagspreprocessorzenv_cpp --env-cppflagsrb   z"env_cc --env-cflags --env-cppflagscompiler_soz0env_cc --env-cflags --env-cppflags --sc-ccsharedcompiler_cxxz2env_cxx --env-cxx-flags --sc-cflags --env-cppflags
linker_exe	linker_soz6env_ldshared --env-ldflags --env-cflags --env-cppflagsro   darwinranlibzsc_ar --sc-arflagszsc_cc -Ezsc_cc --sc-cflagszsc_cc --sc-cflags --sc-ccsharedzsc_cxx --sc-cflagsrf   rm   N)	r   r)   r   environrt   rM   shared_lib_extensionsysplatform)r   rv   s   & r   test_customize_compiler%TestSysconfig.test_customize_compilerq   s    	!!##

4#

4%

55

5!/

: /

9 /

9-

8!1

:+

8&&(yy$(>>>>yy(,DDDDyy$(LLLLyy'>
 	
 
 IIn%CD	
D yy&(222yy%D
 	
 
 ((,>>>><<8#99X&,666499,,,JJtJJtJJuJJuJJz"JJy!JJy!JJx JJz"JJx &&(yy$(<<<<yy(J666yy$(;;;;yy'+LLLLyy(,@@@@yy&'111yy%666((,>>>>tyy(((r   c                d    \        VR 4      p\        P                  ! V4      pVRRRR/8X  g   Q hR# )zo
            CONFIG_ARGS=  '--arg1=optarg1' 'ENV=LIB'
            VAR=$OTHER
            OTHER=foo
            CONFIG_ARGSz'--arg1=optarg1' 'ENV=LIB'OTHERfooNr   r   parse_makefiler   r%   r   ds   &&  r   test_parse_makefile_base&TestSysconfig.test_parse_makefile_base   s>     
 $$X.]$@'5QQQQr   c                d    \        VR 4      p\        P                  ! V4      pVRRRR/8X  g   Q hR# )zr
            CONFIG_ARGS=  '--arg1=optarg1' 'ENV=\$$LIB'
            VAR=$OTHER
            OTHER=foo
            r   z'--arg1=optarg1' 'ENV=\$LIB'r   r   Nr   r   s   &&  r   "test_parse_makefile_literal_dollar0TestSysconfig.test_parse_makefile_literal_dollar   s>     
 $$X.]$CWeTTTTr   c                    ^ RI pVP                  R4      \         P                  ! R4      8X  g   Q hVP                  R4      \         P                  ! R4      8X  g   Q hR# )    Nrj   r   r   r3   r   global_sysconfigs   & r   test_sysconfig_module#TestSysconfig.test_sysconfig_module   sa    ,..x8I<T<T=
 
 	
 
  ..y9Y=U=U>
 
 	
 
r   z3sysconfig.get_config_var('CUSTOMIZED_OSX_COMPILER')c                "   ^ RI p\         P                  ! R4      '       d   \        P                  ! R4       VP                  R4      \         P                  ! R4      8X  g   Q hVP                  R4      \         P                  ! R4      8X  g   Q hR# )r   NCUSTOMIZED_OSX_COMPILERzcompiler flags customizedrl   re   )r   r3   pytestskipr   s   & r   test_sysconfig_compiler_vars*TestSysconfig.test_sysconfig_compiler_vars   sx    ,##$=>>KK34..z:i>V>V?
 
 	
 
  ..t4	8P8PQU8VVVVr   z*not sysconfig.get_config_var('EXT_SUFFIX')c                    \         P                  ! \        4      ;_uu_ 4        \        P                  ! R 4       RRR4       R#   + '       g   i     R# ; i)SON)r   warnsDeprecationWarningr   r3   rN   s   &r   test_SO_deprecation!TestSysconfig.test_SO_deprecation   s/    \\,--$$T* .---s   AA	c                Z   \         P                  P                  R \        R4      /V4       \        P
                  ! \        P                  VR ,          .\        P                  \        P                  RRR7      pVP                  4       w  r4^ VP                  8X  g   Q RV,           4       hR# )filea[  
                    from distutils.core import Distribution
                    config = Distribution().get_command_obj('config')
                    # try_compile may pass or it may fail if no compiler
                    # is found but it should not raise an exception.
                    rc = config.try_compile('int x;')
                    Tutf-8)stdoutstderruniversal_newlinesencodingzSubprocess failed: N)r	   r
   r   r   
subprocessPopenr   
executablePIPESTDOUTcommunicate
returncode)r   r%   poutserrss   &&   r   .test_customize_compiler_before_get_config_vars<TestSysconfig.test_customize_compiler_before_get_config_vars   s     	   	
 ^^X./??$$#
 ]]_
ALL >"7$">> r   c                   \         P                  ! 4       p/ p\        VR R7      ;_uu_ 4       p\         P                  ! W2R7      pRRR4       VXJ g   Q h\        VR R7      ;_uu_ 4       p\         P                  ! V4      pRRR4       \	        V\
        4      '       g   Q hR#   + '       g   i     Lf; i  + '       g   i     L=; i)r   )r   )gN)r   r   openparse_config_hr*   r+   )r   r   inputfresults   &    r   test_parse_config_h!TestSysconfig.test_parse_config_h  s    224(W----a9F .(W----a0F .&$'''' .- .-s   B#*B6#B3	6C	zplatform.system() != 'Windows'c                    \         P                  ! R 4      P                  R4      '       g   Q h\         P                  ! R 4      R8w  g   Q hR# )
EXT_SUFFIXz.pydN)r   r3   endswithrN   s   &r   test_win_ext_suffix!TestSysconfig.test_win_ext_suffix  s?     ''5>>vFFFF''5???r   z	\PCbuild\z*Need sys.executable to be in a source tree)reasonc                   \         P                  P                  4       pVP                  Vn        Wn        VP                  4        VP                  4       RR.p\        P                  P                  \        P                  P                  \        P                  4      4      p\        P                  ! V/ \        P                  CRV/CR7      pVR8X  g   Q hR# )zAEnsure distutils.sysconfig detects venvs from source tree builds.z-czCimport distutils.sysconfig; print(distutils.sysconfig.python_build)
PYTHONPATH)envTrueN)r	   envsVEnv
clean_optscreate_optsr   
ensure_envexer   r
   dirname	distutils__file__r   check_outputr   )r   r%   r   cmddistutils_pathouts   &&    r   $test_win_build_venv_from_source_tree2TestSysconfig.test_win_build_venv_from_source_tree  s     kk ..GGIQ

 9K9K)LM%%A

AL.A
 f}}r   c                    R pVP                  \        RV4       \        P                  P	                  \        P
                  ! 4       4      '       g   Q hR# )a  
In portable Python installations, the sysconfig will be broken,
pointing to the directories where the installation was built and
not where it currently is. In this case, ensure that the missing
directory isn't used for get_python_inc.

See pypa/distutils#178.
c                 @    V R 8X  d   R# \         P                  ! V 4      # )	INCLUDEPYz/does-not-existr   )names   &r   overrideFTestSysconfig.test_get_python_inc_missing_config_dir.<locals>.override8  s    {"(++D11r   r3   N)setattrr   r   r
   existsget_python_inc)r   monkeypatchr   s   && r   &test_get_python_inc_missing_config_dir4TestSysconfig.test_get_python_inc_missing_config_dir.  s>    	2
 	I'7Bww~~i6689999r    N)!rX   rY   rZ   r[   r   r   markskipifr    r&   r-   xfailr8   rA   rE   rt   usefixturesr   r   r   r   r   r   r   r   r   casefoldr   r   r   r   r^   r_   r`   s   @r   r   r      sU    ( [[89[[>?( @ :(W
 [[+,[[01[[780 9 2 -0 [[+,[[45	< 6 -	<!@ [[GH[[:;9) < I9)v
R
U
. [[MNW OW [[DE+ F+?4( [[89[[>?@ @ :@ [[89[[>?[[ (?(?(AA;  	 @ :": :r   r   )__doc__rp   r   r   r1   r   r   r   distutils.ccompilerr   distutils.unixccompilerr   jaraco.envsr	   r
   r   jaraco.textr   test.supportr   r   r   r   r   r   r   r   <module>r     sb    $   	   
  , 1     "
 $e: e: %e:r   