
    1\hV                         	 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dS )    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         }|                    t           j                  }t           j                            |           \  }}t          j        dk    r|dk    r| dz   } t           j                            |           sJ|D ]E}t           j        	                    ||           }t           j                            |          r|c S Fd S | S )NPATHwin32z.exe)
osenvironsplitpathseppathsplitextsysplatformisfilejoin)
executabler   pathsbaseextpfs          6/opt/python-3.11.14/usr/lib/python3.11/_osx_support.py_find_executabler)      s    
 |z&!JJrz""E  ,,ID#cVmm&(
7>>*%%  	 	AQ
++Aw~~a    t    Fc                    	 dd l }	 dd l}|                                }n4# t          $ r' t	          dt          j                    d          }Y nw xY w|                    |          5 }|r| d|j        d}n| d|j        d}t          j	        |          s9|
                                                    d                                          nd cd d d            S # 1 swxY w Y   d S )	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   sk   :
 "((** " " "TIKKK " "" 
		B		 Q2 	D%2]]BGGG<CC,9MM2777CC8:	#Prwwyy((..000DQ Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Qs"     .AA)A,C""C&)C&c                 J    	 t          |           pt          d|           pdS )Nz/usr/bin/xcrun -find  )r)   r>   )toolnames    r(   _find_build_toolrB   M   s4    :X&& <XX GHHr*   c                     	 t           da 	 t          dd          } 	 t          j        d|                                           }|                                  n# |                                  w xY w|Cd                    |                    d                              d          d d                   a n# t          $ r Y nw xY wt           S )	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ZZZAI 89:C C 								}"%((1771::+;+;C+@+@!+D"E"E  	 	 	 D	 s   B9 'A A09
CCc                      	 t           Pt                      } | r@	 t          d |                     d          D                       a n# t          $ r da Y nw xY wt           S )Nc              3   4   K   | ]}t          |          V  d S Nint.0is     r(   	<genexpr>z,_get_system_version_tuple.<locals>.<genexpr>   s(      -U-Uc!ff-U-U-U-U-U-Ur*   rE    )_SYSTEM_VERSION_TUPLErO   tupler   
ValueErrorosx_versions    r(   _get_system_version_tupler_   u   s     $)++ 	++(--U-Uk>O>OPS>T>T-U-U-U(U(U%% + + +(*%%%+ ! s   ,A AAc                 f    	 t          |           D ]}|                    t                    r| |=  d S rR   )list
startswith_INITPRE)_config_varsks     r(   _remove_original_valuesrf      sB    7,    <<!! 	 Q   r*   c                 |    	 |                      |d          }||k    rt          |z   | vr|| t          |z   <   || |<   d S )Nr@   )getrc   )rd   cvnewvalueoldvalues       r(   _save_modified_valuerl      sQ    JB''HH8b=#D#D&.X]#Lr*   c                 t   	 t           t           S t          | dd          }d}|                                D ]p}|                    d          rd}|                    d          rd}2|r<|                                }|dk    rda Q|                    d          r
|d d	         a qt           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>   
splitlinesrb   r9   endswith)cccontents
in_incdirslines       r(   _default_sysrootrv      s    G )%%""">EEHJ##%% 
4 
4??+,, 		4JJ__122 	4JJ 	4::<<D~%%),&&122 4)-dsd&%!$!!r*   c                  N    	 t                      } | rt          | dk              ndS )N
      F)r_   boolr]   s    r(   _supports_universal_buildsr|      s/    G ,--K+6A4w&'''EAr*   c                  4    	 t                      } | r| dk    ndS )N)   r   F)r_   r]   s    r(   _supports_arm64_buildsr      s'    C
 ,--K%0;;'!!e;r*   c                    	 dt           j        v r| S | d                                         d         x}}t          |          st	          d          }nnt           j                            |                              d          r<t          d|	                    dd          d          }|rd|v rt	          d          }|st          d	          ||k    rjt          D ]b}|| v r\|t           j        vrN| |                                         }|d
k    r|n|dz   |d<   t          | |d                    |                     c| S )Nr   r   clanggccr,   '"'"'z' --versionzllvm-gcczCannot locate working compilerr   z++ )r   r   r   r)   rB   r   basenamerb   r>   replaceSystemError_COMPILER_CONFIG_VARSrl   r!   )rd   rr   oldccdatari   cv_splits         r(   _find_appropriate_compilerr      su   A  rz d#))++A..BB + g&&			"			(	(	/	/ +| "

3	 : : : := > > 	+J$&&!'**B 1/1 1 	1 
U{{ ( 	K 	KB\!!b
&:&:'+1133$&%KKbbR$Y$\2sxx7I7IJJJr*   c                     	 t           D ]e}|| v r_|t          j        vrQ| |         }t          j        dd|t          j                  }t          j        dd|          }t          | ||           f| S )N-arch\s+\w+\sr   )flagsz-isysroot\s*\S+)_UNIVERSAL_CONFIG_VARSr   r   rI   subASCIIrl   )rd   ri   r   s      r(   _remove_universal_flagsr     s}    ?$ : :"BJ"6"6 $EF+S%rxHHHEF-sE::E r5999r*   c                 \   	 dt           j        v r| S t          j        d| d                   t          j        d| d                             dd          d          }|rKt          D ]C}|| v r=|t           j        vr/| |         }t          j        dd	|          }t          | ||           D| 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   rl   )rd   statusri   r   s       r(   _remove_unsupported_archsr     s    7 rz	yh!788D  4 ((i8888;< <  	B - B B%%"BJ*>*>(,EF#6UCCE(r5AAAr*   c                     	 dt           j        v rat           j        d         }t          D ]G}|| v rAd| |         v r7| |         }t          j        dd|          }|dz   |z   }t          | ||           H| S )N	ARCHFLAGS-archr   r   )r   r   r   rI   r   rl   )rd   archri   r   s       r(   _override_all_archsr   :  s    < bj  z+&( 	> 	>B\!!gb1A&A&A$R(/e<<d*$\2u===r*   c                 `   	 |                      dd          }t          j        d|          }||                    d          }t          j                            |          sKt          D ]C}|| v r=|t          j        vr/| |         }t          j	        dd|          }t          | ||           D| S )Nr   r@   z-isysroot\s*(\S+)rF   z-isysroot\s*\S+(?:\s|$)r   )rh   rI   rJ   rL   r   r   existsr   r   r   rl   )rd   cflagsrN   sdkri   r   s         r(   _check_for_unavailable_sdkr   K  s    5 h++F
	&//A}ggajjw~~c"" 	B, B B%%"BJ*>*>(,EF#=sEJJE(r5AAAr*   c                    	 dx}}t          |           } t                      sdx}}nd|v }t          d |D                       }|sdt          j        v r2	 	 |                     d          }| ||dz   = n# t          $ r Y nw xY w0n]t                      sOt          t          t          |                               D ]%}| |         dk    r| |dz            dk    r| ||dz   = &dt          j        v r)|s'| t          j        d                                         z   } |rC	 d	 t          |           D             }|sn&|d
         }| |         dk    r	| ||dz   = n| ||dz   = Bd }|}d t          |          D             }|s| }d t          |           D             }|D ]8}||         dk    r||dz            } n||         t          d          d          } |rt          j                            |          s`t          j                            d| d           t          j                            d           t          j                                         | S )NFTr   c              3   D   K   | ]}|                     d           |V  dS )	-isysrootNrb   )rV   args     r(   rX   z!compiler_fixup.<locals>.<genexpr>y  s3      QQ3S^^K5P5PQ3QQQQQQr*   r   rG   rF   arm64c                 B    g | ]\  }}|                     d           |S r   r   rV   rW   xs      r(   
<listcomp>z"compiler_fixup.<locals>.<listcomp>  s-    XXXSQqall;>W>WXqXXXr*   r   r   c                 B    g | ]\  }}|                     d           |S r   r   r   s      r(   r   z"compiler_fixup.<locals>.<listcomp>  s-    LLLSQq!,,{2K2KLqLLLr*   c                 B    g | ]\  }}|                     d           |S r   r   r   s      r(   r   z"compiler_fixup.<locals>.<listcomp>  s-    TTT1!,,{:S:ST1TTTr*   z2Compiling with an SDK that doesn't seem to exist: 
z%Please check your Xcode installation
)ra   r|   anyr   r   indexr\   r   reversedrangelenr   	enumerater   isdirr   stderrwriteflush)	compiler_socc_args	stripArchstripSysrootr   idxindicessysrootargvars	            r(   r   r   f  s     %$I{##K%'' R $('	LLw&	QQ'QQQQQ +K2:--	#))'22eAg..   	 #%% +E#k"2"23344 	+ 	+C37**{3q5/AW/L/LCE	*bj    "BJ{$;$A$A$C$CC /
	/XXIk$:$:XXXG AJE5![00eAg..  eAg.
	/ GFLLIg..LLLG UTT	+ 6 6TTT  #;+%%SUmGESk#k"2"2"3"34G rw}}W-- 
YgYYYZZZ
ABBB
s   A5 5
BBc                 ~    	 t                      st          |            t          |            t          |            | S rR   )r|   r   r   r   rd   s    r(   r   r     sM    0 &'' .
 	 --- %%% |,,,r*   c                 b    	 t          |            t          |            t          |            | S rR   )r   r   r   r   s    r(   r   r     s=     |,,, l+++ %%%r*   c                 f   	 |                      dd          }|r	d|vr|dz  }t                      p|}|p|}|rt|}d}|                      t          dz   |                      dd                    }|rH	 t          d |                    d          dd	         D                       }n# t
          $ r d
}Y nw xY wd
}|dk    rd|                                v rd}t          j        d|          }t          t          t          |                              }t          |          dk    r	|d         }nz|dk    rd}nq|dk    rd}nh|dk    rd}n_|dk    rd}nV|dk    rd}nM|dk    rd}nDt          d|          |dk    rt          j        dk    rd}n|dv rt          j        dk    rd }nd!}|||fS )"NMACOSX_DEPLOYMENT_TARGETr@   rE   z.0macosxr   c              3   4   K   | ]}t          |          V  d S rR   rS   rU   s     r(   rX   z#get_platform_osx.<locals>.<genexpr>  s(      "N"Na3q66"N"N"N"N"N"Nr*   r   rG   )ry      rx   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   )rh   rO   rc   r[   r   r\   r9   rI   findallsortedsetr   r   maxsize)rd   osnamereleasemachinemacver
macreleaser   archss           r(   r   r     sW   * 8"==F #V## 	$$&&0&J!zF ;  !!(8"3$0$4$4Xr$B$BD D 	!%""N"N:3C3CC3H3H13M"N"N"NNN

 % % %$


% !J'!!w&,,..'@'@ GJ/88E&U,,--E5zzQ(---&/)),,,!333 ---!<<<% j>CeEG G G  {e##"666 {e##!GW%%s   34B( (B76B7rR   )F)r   rI   r   __all__r   r   rc   r)   r>   rB   rH   rO   rZ   r_   rf   rl   ro   rv   r|   r   r   r   r   r   r   r   r   r   r   rY   r*   r(   <module>r      s   $ 				 				 



  A  ?  #   4Q Q Q Q,     <  ! ! !&            " " "2B B B< < <; ; ;|  % % %P  "  6M M M`& & &R  (P& P& P& P& P&r*   