
    z%iU                         	 d dl Z d dlZd dlZg dZdZdZdZddZddZd Z	da
d	 Zdad
 Zd Zd Zdad Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zy)    N)compiler_fixupcustomize_config_varscustomize_compilerget_platform_osx)CFLAGSLDFLAGSCPPFLAGS
BASECFLAGS	BLDSHAREDLDSHAREDCCCXX	PY_CFLAGS
PY_LDFLAGSPY_CPPFLAGSPY_CORE_CFLAGSPY_CORE_LDFLAGS)r   r   r   r   _OSX_SUPPORT_INITIAL_c                    	 |t         j                  d   }|j                  t         j                        }t         j                  j                  |       \  }}t        j                  dk(  r
|dk7  r| dz   } t         j                  j                  |       sK|D ]E  }t         j                  j                  ||       }t         j                  j                  |      sC|c S  y | S )NPATHwin32z.exe)
osenvironsplitpathseppathsplitextsysplatformisfilejoin)
executabler   pathsbaseextpfs          @/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/_osx_support.py_find_executabler)      s    
 |zz&!JJrzz"E  ,ID#cVm&(
77>>*% 	AQ
+Aww~~a 		
     c                    	 dd l }	 dd l}|j                         }|j                  |      5 }|r| d|j                  d}n| d|j                  d}t        j                  |      s-|j                         j                  d      j                         nd cd d d        S # t        $ r$ t	        dt        j                         d      }Y w xY w# 1 sw Y   y xY w)	Nr   z/tmp/_osx_support.zw+bz >'z' 2>&1z 2>/dev/null >''utf-8)
contextlibtempfileNamedTemporaryFileImportErroropenr   getpidclosingnamesystemreaddecodestrip)commandstringcapture_stderrr.   r/   fpcmds         r(   _read_outputr>   7   s    :
 "((*
 
		B	 Q2%2BGG<C,9277CC8:		#rwwy(..0DQ Q	  "IIK ""Q Qs   B! A+C!*CCCc                 B    	 t        |       xs t        d|       xs dS )Nz/usr/bin/xcrun -find  )r)   r>   )toolnames    r(   _find_build_toolrB   M   s*    :X& X GHr*   c                  l   	 t         da 	 t        dd      } 	 t        j                  d| j	                               }| j                          |2dj                  |j                  d      j                  d      d d       a t         S t         S # | j                          w xY w# t        $ r Y t         S w xY w)	Nr@   z0/System/Library/CoreServices/SystemVersion.plistr-   )encodingz=<key>ProductUserVisibleVersion</key>\s*<string>(.*?)</string>.      )
_SYSTEM_VERSIONr2   researchr7   closer!   groupr   OSError)r'   ms     r(   _get_system_versionrO   V   s    4 	FGRYZAII 89:C 	}"%((1771:+;+;C+@!+D"E ? 	  	  	s   B" $B B"	B32B3c                      	 t         4t               } | r(	 t        d | j                  d      D              a t         S t         S # t        $ r
 da Y t         S w xY w)Nc              3   2   K   | ]  }t        |        y wNint.0is     r(   	<genexpr>z,_get_system_version_tuple.<locals>.<genexpr>   s     -Uc!f-U   rE    )_SYSTEM_VERSION_TUPLErO   tupler   
ValueErrorosx_versions    r(   _get_system_version_tupler`   u   sg     $)++(--Uk>O>OPS>T-U(U% !     +(*%  +s   !A AAc                 X    	 t        |       D ]  }|j                  t              s| |=  y rR   )list
startswith_INITPRE)_config_varsks     r(   _remove_original_valuesrg      s,    7,  <<!Q r*   c                 l    	 | j                  |d      }||k7  rt        |z   | vr|| t        |z   <   || |<   y )Nr@   )getrd   )re   cvnewvalueoldvalues       r(   _save_modified_valuerm      sB    JB'HH8b=#D&.X]#Lr*   c                 8   	 t         t         S t        | dd      }d}|j                         D ]\  }|j                  d      rd}|j                  d      rd}+|s.|j	                         }|dk(  rda F|j                  d      sX|d d	 a ^ t         da t         S )
Nz -c -E -v - </dev/nullTFz#include <...>zEnd of search listz/usr/include/z.sdk/usr/includei)_cache_default_sysrootr>   
splitlinesrc   r9   endswith)cccontents
in_incdirslines       r(   _default_sysrootrw      s    G )%%">EHJ##% 
4??+,J__12J::<D~%),&12)-ds&
4 %!$!!r*   c                  <    	 t               } | rt        | dk\        S dS )N
      F)r`   boolr^   s    r(   _supports_universal_buildsr}      s&    G ,-K+64w&'AEAr*   c                  *    	 t               } | r| dk\  S dS )N)   r   F)r`   r^   s    r(   _supports_arm64_buildsr      s!    C
 ,-K%0;'!;e;r*   c                 0   	 dt         j                  v r| S | d   j                         d   x}}t        |      st	        d      }n^t         j
                  j                  |      j                  d      r0t        d|j                  dd      d      }|rd|v rt	        d      }|st        d	      ||k7  rat        D ]X  }|| v s|t         j                  vs| |   j                         }|d
k7  r|n|dz   |d<   t        | |dj                  |             Z | S )Nr   r   clanggccr,   '"'"'z' --versionzllvm-gcczCannot locate working compilerr   z++ )r   r   r   r)   rB   r   basenamerc   r>   replaceSystemError_COMPILER_CONFIG_VARSrm   r!   )re   rs   oldccdatarj   cv_splits         r(   _find_appropriate_compilerr      s!   A  rzz d#))+A..BB g&			"		(	(	/ "

3	 := >J$&!'*B/1 	1 
U{ ( 	KB\!b

&:'+113$&%KbR$Y$\2sxx7IJ		K r*   c                     	 t         D ]j  }|| v s|t        j                  vs| |   }t        j                  dd|t        j
                        }t        j                  dd|      }t        | ||       l | S )N-arch\s+\w+\sr   )flagsz-isysroot\s*\S+)_UNIVERSAL_CONFIG_VARSr   r   rI   subASCIIrm   )re   rj   r   s      r(   _remove_universal_flagsr     sq    ?$ :"BJJ"6 $EFF+S%rxxHEFF-sE:E r59: r*   c                 V   	 dt         j                  v r| S t        j                  d| d         zt        j                  d| d   j                  dd      d      }|rLt        D ]C  }|| v s|t         j                  vs| |   }t        j                  dd	|      }t        | ||       E | S )
Nr   z-arch\s+ppcr   zecho 'int main{};' | 'r,   r   z6' -c -arch ppc -x c -o /dev/null /dev/null 2>/dev/nullz-arch\s+ppc\w*\sr   )	r   r   rI   rJ   r6   r   r   r   rm   )re   statusrj   r   s       r(   _remove_unsupported_archsr     s    7 rzz	yyh!78D  4 ((i8;<  - B%"BJJ*>(,EFF#6UCE(r5A	B r*   c                     	 dt         j                  v r\t         j                  d   }t        D ]@  }|| v sd| |   v s| |   }t        j                  dd|      }|dz   |z   }t        | ||       B | S )N	ARCHFLAGS-archr   r   )r   r   r   rI   r   rm   )re   archrj   r   s       r(   _override_all_archsr   :  s    < bjj zz+&( 	>B\!gb1A&A$R(/e<d*$\2u=	> r*   c                 T   	 | j                  dd      }t        j                  d|      }|||j                  d      }t        j
                  j                  |      sLt        D ]C  }|| v s|t        j                  vs| |   }t        j                  dd|      }t        | ||       E | S )Nr   r@   z-isysroot\s*(\S+)rF   z-isysroot\s*\S+(?:\s|$)r   )ri   rI   rJ   rL   r   r   existsr   r   r   rm   )re   cflagsrN   sdkrj   r   s         r(   _check_for_unavailable_sdkr   K  s    5 h+F
		&/A}ggajww~~c", B%"BJJ*>(,EFF#=sEJE(r5AB r*   c                    	 dx}}t        |       } t               sdx}}nd|v }t        d |D              }|sdt        j                  v r	 	 | j                  d      }| ||dz   = t               s?t        t        t        |                   D ]  }| |   dk(  s| |dz      dk(  s| ||dz   = ! dt        j                  v r&|s$| t        j                  d   j                         z   } |rR	 t        |       D cg c]  \  }}|j                  d	      s| }}}|sn|d
   }| |   d	k(  r	| ||dz   = n| ||dz   = Qd }	|}
t        |      D cg c]  \  }}|j                  d	      s| }}}|s1| }
t        |       D cg c]  \  }}|j                  d	      s| }}}|D ]&  }|
|   d	k(  r
|
|dz      }	 n|
|   t        d	      d  }	 n |	rt        j                  j                  |	      s`t         j"                  j%                  d|	 d       t         j"                  j%                  d       t         j"                  j'                          | S # t        $ r Y w xY wc c}}w c c}}w c c}}w )NFTr   c              3   D   K   | ]  }|j                  d       s|  yw)	-isysrootN)rc   )rV   args     r(   rX   z!compiler_fixup.<locals>.<genexpr>y  s     Q3S^^K5P3Qs     r   rG   rF   arm64r   r   z2Compiling with an SDK that doesn't seem to exist: 
z%Please check your Xcode installation
)rb   r}   anyr   r   indexr]   r   reversedrangelenr   	enumeraterc   r   isdirr   stderrwriteflush)compiler_socc_args	stripArchstripSysrootr   idxrW   xindicessysrootargvars              r(   r   r   f  s     %$I{#K%' $('	Lw&	Q'QQK2::-#))'2eAg.	  $%E#k"234 	+C37*{3q5/AW/LCE	*	+ bjj  "BJJ{$;$A$A$CC$-k$:XSQqall;>WqXGXAJE5![0eAg.  eAg.  GF%g.LSQq!,,{2KqLGL )+ 6T1!,,{:S1TT #;+%SUmGSk#k"2"34G rww}}W-

MgYVXYZ

AB

e    Y  M Us6   I 8III%'I% I+I+	IIc                 ^    	 t               st        |        t        |        t        |        | S rR   )r}   r   r   r   re   s    r(   r   r     s3    0 &'
 	 - % |,r*   c                 J    	 t        |        t        |        t        |        | S rR   )r   r   r   r   s    r(   r   r     s+     |, l+ %r*   c                    	 | j                  dd      }t               xs |}|xs |}|r,|}d}| j                  t        dz   | j                  dd            }|r&	 t        d |j	                  d      dd D              }nd	}|d
k\  rd|j                         v rd}t        j                  d|      }t        t        t        |                  }t        |      dk(  r|d   }nu|dk(  rd}nm|dk(  rd}ne|dk(  rd}n]|dk(  rd}nU|dk(  rd}nM|dk(  rd}nEt        d|      |dk(  rt        j                  dk\  rd}n|dv rt        j                  dk\  rd}nd }|||fS # t
        $ r d	}Y w xY w)!NMACOSX_DEPLOYMENT_TARGETr@   macosxr   c              3   2   K   | ]  }t        |        y wrR   rS   rU   s     r(   rX   z#get_platform_osx.<locals>.<genexpr>  s     "Na3q6"NrY   rE   r   rG   )rz      ry   r   fatz-arch\s+(\S+)rF   )r   x86_64
universal2)i386ppc)r   r   intel)r   r   r   fat3)ppc64r   fat64)r   r   r   r   	universalz#Don't know machine value for archs=r   l        r   )PowerPCPower_Macintoshr   r   )ri   rO   rd   r\   r   r]   r9   rI   findallsortedsetr   r   maxsize)re   osnamereleasemachinemacver
macreleaser   archss           r(   r   r     s   * 8"=F$&0&J!zF !!(8"3$0$4$4Xr$BD%""N:3C3CC3H13M"NN

 !J'!w&,,.'@ GJJ/8E&U,-E5zQ(--&/),,!33 --!<<% >CEG G  {{e#"66 {{e#!GW%%a  %$
%s   $E E*)E*rR   )F)r   rI   r   __all__r   r   rd   r)   r>   rB   rH   rO   r[   r`   rg   rm   rp   rw   r}   r   r   r   r   r   r   r   r   r   r   rZ   r*   r(   <module>r      s    $ 	 	 
A  ?  #4Q, <  !&    "2B<;|%P"6M`&R(K&r*   