o ?OgU@s ddlZddlZddlZgdZdZdZdZd-ddZd.d d Zd d Z da d dZ da ddZ ddZddZdaddZddZddZddZddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+d,ZdS)/N)compiler_fixupcustomize_config_varscustomize_compilerget_platform_osx) CFLAGSZLDFLAGSZCPPFLAGSZ BASECFLAGS BLDSHAREDLDSHAREDCCCXXZ PY_CFLAGSZ PY_LDFLAGSZ PY_CPPFLAGSZPY_CORE_CFLAGSZPY_CORE_LDFLAGS)rrr r Z_OSX_SUPPORT_INITIAL_cCs |dur tjd}|tj}tj|\}}tjdkr%|dkr%|d}tj|sC|D]}tj ||}tj|r@|Sq-dS|S)NPATHZwin32z.exe) osenvironsplitpathseppathsplitextsysplatformisfilejoin) executablerpathsbaseZextpfr3/opt/alt/python310/lib64/python3.10/_osx_support.py_find_executables    rFcCs ddl}z ddl}|}Wnty"tdtfd}Ynw||)}|r3d||jf}nd||jf}t |sH| d ndWdS1sTwYdS)Nrz/tmp/_osx_support.%szw+bz %s >'%s' 2>&1z%s 2>/dev/null >'%s'utf-8) contextlibtempfileZNamedTemporaryFile ImportErroropenr getpidclosingnamesystemreaddecodestrip)Z commandstringZcapture_stderrrr fpcmdrrr _read_output7s$   $r,cCs t|p td|fp dS)Nz/usr/bin/xcrun -find %s)rr,)Ztoolnamerrr_find_build_toolMs  r.cCs tdurAdaztddd}Wn tyYtSwztd|}W|n|w|durAd|d dddatS) Nr-z0/System/Library/CoreServices/SystemVersion.plistr)encodingz=ProductUserVisibleVersion\s*(.*?).) _SYSTEM_VERSIONr"OSErrorresearchr'closergroupr)rmrrr_get_system_versionVs"   r:cCsP tdur&t}|r&ztdd|dDaWtSty%daYtSwtS)Ncs|]}t|VqdSNint.0irrr z,_get_system_version_tuple..r0r)_SYSTEM_VERSION_TUPLEr:tupler ValueErrorZ osx_versionrrr_get_system_version_tupleus rHcCs$ t|D] }|tr||=qdSr<)list startswith_INITPRE) _config_varskrrr_remove_original_valuess   rNcCs: ||d}||krt||vr||t|<|||<dS)Nr-)getrK)rLcvZnewvalueZoldvaluerrr_save_modified_values    rQcCs tdurtStd|fd}d}|D]*}|drd}q|dr'd}q|r?|}|dkr4daq|dr?|dd aqtdurFdatS) Nz%s -c -E -v - zEnd of search listz /usr/include/z.sdk/usr/includei)_cache_default_sysrootr, splitlinesrJr)endswith)cccontentsZ in_incdirslinerrr_default_sysroots(     rYcCs t}|r t|dkSdS)N F)rHboolrGrrr_supports_universal_buildssr^cCs t}|r |dkSdS)N) rF)rHrGrrr_supports_arm64_buildssr`cCs dtjvr|S|dd}}t|std}ntj|dr9td| ddf}|r9d|vr9td}|s?t d ||krlt D]&}||vrk|tjvrk||}|d kr\|n|d |d<t ||d |qE|S) Nr rZclangZgccz'%s' --version''"'"'zllvm-gcczCannot locate working compilerr z++ )r r rrr.rbasenamerJr,replace SystemError_COMPILER_CONFIG_VARSrQr)rLrVZoldccdatarPZcv_splitrrr_find_appropriate_compilers0     ricCsX tD]&}||vr)|tjvr)||}tjdd|tjd}tdd|}t|||q|S)N -arch\s+\w+\src)flagsz-isysroot\s*\S+)_UNIVERSAL_CONFIG_VARSr r r5subASCIIrQ)rLrPrkrrr_remove_universal_flagss rocCs dtjvr|Std|ddurAtd|dddf}|rAtD]}||vr@|tjvr@||}tdd|}t|||q$|S) Nr z -arch\s+ppcrzNecho 'int main{};' | '%s' -c -arch ppc -x c -o /dev/null /dev/null 2>/dev/nullrarbz-arch\s+ppc\w*\src) r r r5r6r&rerlrmrQ)rLZstatusrPrkrrr_remove_unsupported_archss"   rpcCsf dtjvr1tjd}tD]#}||vr0d||vr0||}tdd|}|d|}t|||q |S)N ARCHFLAGS-archrjrc)r r rlr5rmrQ)rLZarchrPrkrrr_override_all_archs:s    rscCsz |dd}td|}|dur;|d}tj|s;tD]}||vr:|tjvr:||}t dd|}t |||q|S)Nrr-z-isysroot\s*(\S+)r1z-isysroot\s*\S+(?:\s|$)rc) rOr5r6r8r rexistsrlr rmrQ)rLcflagsr9ZsdkrPrkrrr_check_for_unavailable_sdkKs    rvc Cs d}}t|}tsd}}n d|v}tdd|D}|s%dtjvr@ z|d}|||d=Wn ty=Ynwq&n#tsctt t |D]}||dkrb||dd krb|||d=qKdtjvrs|ss|tjd }|r d d t |D}|sn|d }||d kr|||d=n|||d=qvd}|}dd t |D}|s|}dd t |D}|D]}||d kr||d}n ||t d d}|rtj |stjd|dtjdtj|S)NFTrrcss|] }|dr|VqdS) -isysrootNrJ)r@argrrrrBysz!compiler_fixup..rqr2r1arm64cSg|] \}}|dr|qSrwrxr@rAxrrr z"compiler_fixup..rrwcSr{r|rxr}rrrrrcSr{r|rxr}rrrrrz2Compiling with an SDK that doesn't seem to exist:  z%Please check your Xcode installation )rIr^anyr r indexrFr`reversedrangelenr enumeraterisdirrstderrwriteflush) Z compiler_soZcc_argsZ stripArchZ stripSysrootridxindicesZsysrootZargvarrrrrfsf        rcCs$ tst|t|t||Sr<)r^rorsrvrLrrrrs rcCs t|t|t||Sr<)rirprsrrrrrs rcCsr |dd}tp |}|p|}|r|}d}|td|dd}|rBztdd|ddd D}Wn tyAd }Ynwd }|d krd |vrd }td|}tt t |}t |dkri|d}nK|dkrpd}nD|dkrwd }n=|dkr~d}n6|dkrd}n/|dkrd}n(|dkrd}n!td|f|dkrt j dkrd}n|dvrt j dkrd }nd!}|||fS)"NZMACOSX_DEPLOYMENT_TARGETr-Zmacosxrcsr;r<r=r?rrrrB rCz#get_platform_osx..r0rr2)r[rZrrZfatz -arch\s+(\S+)r1)rzx86_64Z universal2)i386ppc)rrZintel)rrrZfat3)ppc64rZfat64)rrrrZ universalz%Don't know machine value for archs=%rrlr)ZPowerPCZPower_Macintoshrr)rOr:rKrErrFr)r5findallsortedsetrrmaxsize)rLZosnamereleasemachineZmacverZ macreleaseruZarchsrrrrs^   $       rr<)F)r r5r__all__rlrgrKrr,r.r3r:rDrHrNrQrSrYr^r`rirorprsrvrrrrrrrrs<      >(P)