U ,aU@sddlZddlZddlZddddgZdZdZdZd,d d Zd-d d ZddZ da ddZ da ddZ ddZddZdaddZddZddZddZd d!Zd"d#Zd$d%Zd&d'Zd(dZd)dZd*dZd+dZdS).Ncompiler_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|dkrtjd}|tj}tj|\}}tjdkrH|dkrH|d}tj|s|D]&}tj ||}tj|rX|SqXdS|SdS)NPATHZwin32z.exe) osenvironsplitpathseppathsplitextsysplatformisfilejoin) executablerpathsbaseZextpfr1/opt/alt/python38/lib64/python3.8/_osx_support.py_find_executables     rFc Csddl}zddl}|}Wn(tk rDtdtfd}YnX||P}|rfd||jf}nd||jf}t |s| d ndW5QRSQRXdS)Nrz/tmp/_osx_support.%szw+bz %s >'%s' 2>&1z%s 2>/dev/null >'%s'zutf-8) contextlibtempfileZNamedTemporaryFile ImportErroropenr getpidclosingnamesystemreaddecodestrip)Z commandstringZcapture_stderrrrfpcmdrrr _read_output7s   r+cCst|ptd|fpdS)Nz/usr/bin/xcrun -find %s)rr+)Ztoolnamerrr_find_build_toolMs  r-cCsxtdkrtdaz td}Wntk r,YnHXztd|}W5|X|dk rtd|d dddatS)Nr,z0/System/Library/CoreServices/SystemVersion.plistz=ProductUserVisibleVersion\s*(.*?).) _SYSTEM_VERSIONr!OSErrorcloseresearchr&rgroupr)rmrrr_get_system_versionVs   r8cCsLtdkrHt}|rHztdd|dDaWntk rFdaYnXtS)Ncss|]}t|VqdSNint.0irrr sz,_get_system_version_tuple..r.r)_SYSTEM_VERSION_TUPLEr8tupler ValueErrorZ osx_versionrrr_get_system_version_tupleus rDcCs"t|D]}|tr||=qdSr9)list startswith_INITPRE) _config_varskrrr_remove_original_valuess  rJcCs8||d}||kr,t||kr,||t|<|||<dS)Nr,)getrG)rHcvZnewvalueZoldvaluerrr_save_modified_values  rMcCstdk r tStd|fd}d}|D]T}|drzEnd of search listz /usr/include/z.sdk/usr/includei)_cache_default_sysrootr+ splitlinesrFr(endswith)cccontentsZ in_incdirslinerrr_default_sysroots$    rUcCst}|rt|dkSdS)N F)rDboolrCrrr_supports_universal_buildssrZcCst}|r|dkSdS)N) rF)rDrCrrr_supports_arm64_buildssr\cCsdtjkr|S|dd}}t|s4td}n/dev/nullr]r^z-arch\s+ppc\w*\sr_) r r r4r5r%rarhrirM)rHZstatusrLrgrrr_remove_unsupported_archss  rlcCsddtjkr`tjd}tD]F}||krd||kr||}tdd|}|d|}t|||q|S)N ARCHFLAGS-archrfr_)r r rhr4rirM)rHZarchrLrgrrr_override_all_archs:s   rocCsx|dd}td|}|dk rt|d}tj|sttD]8}||kr:|tjkr:||}t dd|}t |||q:|S)Nrr,z-isysroot\s*(\S+)r/z-isysroot\s*\S+(?:\s|$)r_) rKr4r5r6r rexistsrhr rirM)rHcflagsr7ZsdkrLrgrrr_check_for_unavailable_sdkKs    rrc Csd}}t|}ts d}}nd|k}tdd|D}|sHdtjkrz|d}|||d=WqHtk r|YqYqHXqHnFtstt t |D].}||dkr||dd kr|||d=qdtjkr|s|tjd }|r@d d t |D}|s q@|d }||d kr0|||d=q|||d=qd}|}dd t |D}|sv|}dd t |D}|D]B}||d kr||d}qn||t d d}qqz|rtj |sd dlm} | d|| d|S)NFTrncss|]}|dr|VqdS) -isysrootNrF)r=argrrrr?ys z!compiler_fixup..rmr0r/arm64cSsg|]\}}|dr|qSrsrtr=r>xrrr s z"compiler_fixup..rrscSsg|]\}}|dr|qSrwrtrxrrrrzs cSsg|]\}}|dr|qSrwrtrxrrrrzs )logz4Compiling with an SDK that doesn't seem to exist: %sz$Please check your Xcode installation)rErZanyr r indexrBr\reversedrangelenr enumeraterisdirZ distutilsr{warn) Z compiler_soZcc_argsZ stripArchZ stripSysrootr}idxindicesZsysrootZargvarr{rrrrfsZ       cCs"tst|t|t||Sr9)rZrkrorrrHrrrrs cCst|t|t||Sr9)rerlrorrrrrs cCs|dd}tp|}|p|}|r|}d}|td|dd}|rz$tdd|ddd D}Wqtk rd }YqXnd }|d krFd |krFd }td|}tt t |}t |dkr|d}nj|dkrd}n\|dkrd }nN|dkrd}n>|dkrd}n.|dkr&d}n|dkr6d}ntd|fn<|dkrbt j dkrd}n |dkrt j dkr~d }nd!}|||fS)"NZMACOSX_DEPLOYMENT_TARGETr,Zmacosxrcss|]}t|VqdSr9r:r<rrrr?sz#get_platform_osx..r.rr0)rWrrVrnZfatz -arch\s+(\S+)r/)rvx86_64Z universal2)i386ppc)rrZintel)rrrZfat3)ppc64rZfat64)rrrrZ universalz%Don't know machine value for archs=%rrlr)ZPowerPCZPower_Macintoshrr)rKr8rGrArrBr(r4findallsortedsetrrmaxsize)rHZosnamereleasemachineZmacverZ macreleaserqZarchsrrrrsX    $            )N)F)r r4r__all__rhrcrGrr+r-r1r8r@rDrJrMrOrUrZr\rerkrlrorrrrrrrrrrs@      >(Q)