a DOg U@sddlZddlZddlZgdZdZdZdZd-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|durtjd}|tj}tj|\}}tjdkrH|dkrH|d}tj|s|D]&}tj ||}tj|rX|SqXdS|SdS)NPATHwin32z.exe) osenvironsplitpathseppathsplitextsysplatformisfilejoin) executablerpathsbaseextpfr$/usr/lib64/python3.9/_osx_support.py_find_executables     rFcCsddl}zddl}|}Wn&tyBtdtfd}Yn0||R}|rdd||jf}nd||jf}t |s| d ndWdS1s0YdS)Nrz/tmp/_osx_support.%szw+bz %s >'%s' 2>&1z%s 2>/dev/null >'%s'zutf-8) contextlibtempfileNamedTemporaryFile ImportErroropenr getpidclosingnamesystemreaddecodestrip)Z commandstringZcapture_stderrr r!fpcmdrrr _read_output7s    r.cCst|ptd|fpdS)Nz/usr/bin/xcrun -find %s)rr.)Ztoolnamerrr_find_build_toolMs  r0cCs~tdurzdaz td}Wnty*YnP0ztd|}W|n |0|durzd|d dddatS)Nr/z0/System/Library/CoreServices/SystemVersion.plistz=ProductUserVisibleVersion\s*(.*?).) _SYSTEM_VERSIONr$OSErrorresearchr)closergroupr)rmrrr_get_system_versionVs   r;cCsJtdurFt}|rFztdd|dDaWntyDdaYn0tS)Ncss|]}t|VqdSNint.0irrr z,_get_system_version_tuple..r1r)_SYSTEM_VERSION_TUPLEr;tupler ValueErrorZ osx_versionrrr_get_system_version_tupleus  rHcCs"t|D]}|tr||=qdSr<)list startswith_INITPRE) _config_varskrrr_remove_original_valuess  rNcCs8||d}||kr,t||vr,||t|<|||<dS)Nr/)getrK)rLcvZnewvalueZoldvaluerrr_save_modified_values  rQcCstdur tStd|fd}d}|D]T}|drzEnd of search listz /usr/include/z.sdk/usr/includei)_cache_default_sysrootr. splitlinesrJr+endswith)cccontentsZ in_incdirslinerrr_default_sysroots$    rYcCst}|rt|dkSdS)N F)rHboolrGrrr_supports_universal_buildssr^cCst}|r|dkSdS)N) rF)rHrGrrr_supports_arm64_buildssr`cCsdtjvr|S|dd}}t|s4td}n/dev/nullrarbz-arch\s+ppc\w*\src) r rr6r7r(rerlrmrQ)rLstatusrPrkrrr_remove_unsupported_archss  rqcCsddtjvr`tjd}tD]F}||vrd||vr||}tdd|}|d|}t|||q|S)N ARCHFLAGS-archrjrc)r rrlr6rmrQ)rLZarchrPrkrrr_override_all_archs:s   rtcCsx|dd}td|}|durt|d}tj|sttD]8}||vr:|tjvr:||}t dd|}t |||q:|S)Nrr/z-isysroot\s*(\S+)r2z-isysroot\s*\S+(?:\s|$)rc) rOr6r7r9r rexistsrlrrmrQ)rLcflagsr:ZsdkrPrkrrr_check_for_unavailable_sdkKs    rwc Csd}}t|}ts d}}nd|v}tdd|D}|sHdtjvrz|d}|||d=WqHtyzYqYqH0qHnFtstt t |D].}||dkr||dd kr|||d=qdtjvr|s|tjd }|r>d d t |D}|sq>|d }||d kr.|||d=q|||d=qd}|}dd t |D}|st|}dd t |D}|D]B}||d kr||d}qn||t d d}qqx|rtj |sd dlm} | d|| d|S)NFTrscss|]}|dr|VqdS) -isysrootNrJ)r@argrrrrByrCz!compiler_fixup..rrr3r2arm64cSsg|]\}}|dr|qSrxryr@rAxrrr rCz"compiler_fixup..rrxcSsg|]\}}|dr|qSr|ryr}rrrrrCcSsg|]\}}|dr|qSr|ryr}rrrrrC)logz4Compiling with an SDK that doesn't seem to exist: %sz$Please check your Xcode installation)rIr^anyr rindexrFr`reversedrangelenr enumeraterisdirZ distutilsrwarn) Z compiler_soZcc_argsZ stripArchZ stripSysrootridxindicesZsysrootZargvarrrrrrfsZ        rcCs"tst|t|t||Sr<)r^rortrwrLrrrrs rcCst|t|t||Sr<)rirqrtrrrrrs rcCs|dd}tp|}|p|}|r|}d}|td|dd}|rz$tdd|ddd D}Wqtyd }Yq0nd }|d krDd |vrDd }td|}tt t |}t |dkr|d}nj|dkrd}n\|dkrd }nN|dkrd}n>|dkrd}n.|dkr$d}n|dkr4d}ntd|fn<|dkr`t j dkrd}n |dvrt j dkr|d }nd!}|||fS)"NZMACOSX_DEPLOYMENT_TARGETr/Zmacosxrcss|]}t|VqdSr<r=r?rrrrBrCz#get_platform_osx..r1rr3)r[rrZrsZfatz -arch\s+(\S+)r2)r{x86_64Z universal2)i386ppc)rrZintel)rrrZfat3)ppc64rZfat64)rrrr universalz%Don't know machine value for archs=%rrlr)ZPowerPCZPower_Macintoshrr)rOr;rKrErrFr+r6findallsortedsetrrmaxsize)rLZosnamereleasemachineZmacverZ macreleaservZarchsrrrrsX    $             r)N)F)r r6r__all__rlrgrKrr.r0r4r;rDrHrNrQrSrYr^r`rirorqrtrwrrrrrrrrs8      >(Q)