U Ä:âeLã@sºddlZddlZddlZddddgZdZdZdZd%d d „Zd d „Zd d„Z da dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zdd„Zdd „Zd!d„Zd"d„Zd#d„Zd$d„ZdS)&éNÚcompiler_fixupÚcustomize_config_varsÚcustomize_compilerÚget_platform_osx) ÚCFLAGSZLDFLAGSZCPPFLAGSZ BASECFLAGSÚ BLDSHAREDÚLDSHAREDÚCCÚCXXZ 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)NÚPATHÚwin32z.exe) ÚosÚenvironÚsplitÚpathsepÚpathÚsplitextÚsysÚplatformÚisfileÚjoin)Ú executablerÚpathsÚbaseÚextÚpÚf©rú1/usr/local/python38/lib/python3.8/_osx_support.pyÚ_find_executables     rc Cs–ddl}zddl}| ¡}Wn(tk rDtdt ¡fdƒ}YnX| |¡<}d||jf}t  |¡s||  ¡  d¡  ¡ndW5QR£SQRXdS)Nrz/tmp/_osx_support.%szw+bz%s 2>/dev/null >'%s'zutf-8) Ú contextlibÚtempfileÚNamedTemporaryFileÚ ImportErrorÚopenr ÚgetpidÚclosingÚnameÚsystemÚreadÚdecodeÚstrip)Z commandstringr r!ÚfpÚcmdrrrÚ _read_output7s ÿÿ  r.cCst|ƒptd|fƒpdS)Nz/usr/bin/xcrun -find %sÚ)rr.)ZtoolnamerrrÚ_find_build_toolJs  ÿþr0cCsxtdkrtdaz tdƒ}Wntk r,YnHXzt d| ¡¡}W5| ¡X|dk rtd | d¡  d¡dd…¡atS)Nr/z0/System/Library/CoreServices/SystemVersion.plistz=ProductUserVisibleVersion\s*(.*?)Ú.éé) Ú_SYSTEM_VERSIONr$ÚOSErrorÚcloseÚreÚsearchr)rÚgroupr)rÚmrrrÚ_get_system_versionSs  ÿ r;cCs"t|ƒD]}| t¡r||=qdS©N)ÚlistÚ startswithÚ_INITPRE)Ú _config_varsÚkrrrÚ_remove_original_valuesqs  rBcCs8| |d¡}||kr,t||kr,||t|<|||<dS)Nr/)Úgetr?)r@ÚcvZnewvalueZoldvaluerrrÚ_save_modified_valuexs  rEcCsTtƒ}|r@ztdd„| d¡Dƒƒ}Wntk r>d}YnX|rPt|dkƒSdS)Ncss|]}t|ƒVqdSr<©Úint©Ú.0ÚirrrÚ Šsz-_supports_universal_builds..r1r/©é éF)r;ÚtuplerÚ ValueErrorÚbool)Z osx_versionrrrÚ_supports_universal_builds€s rRcCsÚdtjkr|S|d ¡d}}t|ƒs4tdƒ}nr.ÚreplaceÚ SystemErrorÚ_COMPILER_CONFIG_VARSrEr)r@ZccZoldccÚdatarDZcv_splitrrrÚ_find_appropriate_compilers,   ÿ ÿ r[cCsVtD]L}||kr|tjkr||}tjdd|tjd}t dd|¡}t|||ƒq|S)Nú -arch\s+\w+\srU)Úflagsz-isysroot\s*\S+)Ú_UNIVERSAL_CONFIG_VARSr rr7ÚsubÚASCIIrE)r@rDr]rrrÚ_remove_universal_flagsÎsracCs„dtjkr|St d|d¡dk r€t d|d dd¡f¡}|r€tD]8}||krF|tjkrF||}t dd|¡}t|||ƒqF|S) Nr z -arch\s+ppcrzNecho 'int main{};' | '%s' -c -arch ppc -x c -o /dev/null /dev/null 2>/dev/nullrSrTz-arch\s+ppc\w*\srU) r rr7r8r(rWr^r_rE)r@ÚstatusrDr]rrrÚ_remove_unsupported_archsÜs þÿ rccCsddtjkr`tjd}tD]F}||krd||kr||}t dd|¡}|d|}t|||ƒq|S)NÚ ARCHFLAGSú-archr\rU)r rr^r7r_rE)r@ZarchrDr]rrrÚ_override_all_archss   rfcCsx| dd¡}t d|¡}|dk rt| d¡}tj |¡sttD]8}||kr:|tjkr:||}t  dd|¡}t |||ƒq:|S)Nrr/z-isysroot\s*(\S+)r2z-isysroot\s*\S+(?:\s|$)rU) rCr7r8r9r rÚexistsr^rr_rE)r@Úcflagsr:ZsdkrDr]rrrÚ_check_for_unavailable_sdks    ric Cs¨d}}t|ƒ}tƒs d}}nd|k}tdd„|Dƒƒ}|sHdtjkr€z| d¡}|||d…=WqHtk r|Yq€YqHXqHdtjkr |s |tjd ¡}|rðdd „t|ƒDƒ}|s¼qð|d }||d krà|||d…=q¤|||d …=q¤d}|}d d „t|ƒDƒ}|s&|}dd „t|ƒDƒ}|D]B}||d krP||d }qnn||t d ƒd…}qnq*|r¤tj   |¡s¤d dl m } |  d|¡|  d¡|S)NFTrecss|]}| d¡r|VqdS)ú -isysrootN©r>)rIÚargrrrrKCs z!compiler_fixup..rdr3cSsg|]\}}| d¡r|‘qS©rjrk©rIrJÚxrrrÚ Us z"compiler_fixup..rrjr2cSsg|]\}}| d¡r|‘qSrmrkrnrrrrpes cSsg|]\}}| d¡r|‘qSrmrkrnrrrrphs )Úlogz4Compiling with an SDK that doesn't seem to exist: %sz$Please check your Xcode installation)r=rRÚanyr rÚindexrPrÚ enumerateÚlenrÚisdirZ distutilsrqÚwarn) Z compiler_soZcc_argsZ stripArchZ stripSysrootrsÚindicesZsysrootZargvarÚidxrqrrrr0sR        ÿ cCs"tƒst|ƒt|ƒt|ƒ|Sr<)rRrarfri©r@rrrr{s cCst|ƒt|ƒt|ƒ|Sr<)r[rcrfrzrrrr¤s cCs|| dd¡}tƒp|}|p|}|rr|}d}| td| dd¡¡}|rˆz$tdd„| d¡dd …Dƒƒ}WqŒtk r„d }YqŒXnd }|d kr6d | ¡kr6d }t d|¡}tt t |ƒƒƒ}t |ƒdkrÚ|d}nZ|dkrèd }nL|dkröd}n>|dkrd}n.|dkrd}n|dkr&d}ntd|fƒ‚n<|dkrRt j dkrrd}n |dkrrt j dkrnd}nd}|||fS) NZMACOSX_DEPLOYMENT_TARGETr/Zmacosxrcss|]}t|ƒVqdSr<rFrHrrrrKÒsz#get_platform_osx..r1rr3)rMrrLreZfatz -arch\s+(\S+)r2)Úi386Úppc)r{Úx86_64Zintel)r{r|r}Zfat3)Úppc64r}Zfat64)r{r|r~r}Ú universalz%Don't know machine value for archs=%rr{lr})ZPowerPCZPower_Macintoshr~r|)rCr;r?rOrrPr+r7ÚfindallÚsortedÚsetrurÚmaxsize)r@ZosnameÚreleaseÚmachineZmacverZ macreleaserhZarchsrrrr¸sT    ÿ$       ÿ    )N)r r7rÚ__all__r^rYr?rr.r0r4r;rBrErRr[rarcrfrirrrrrrrrÚs6ü  >(K)