3 \J @sddlZddlZddlZddddgZd0Zd1ZdZd2ddZddZddZ da ddZ ddZ ddZ d d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd,dZd-dZd.dZd/dZdS)3Ncompiler_fixupcustomize_config_varscustomize_compilerget_platform_osxCFLAGSLDFLAGSCPPFLAGS BASECFLAGS BLDSHAREDLDSHAREDCCCXX PY_CFLAGS PY_LDFLAGS PY_CPPFLAGSPY_CORE_CFLAGSPY_CORE_LDFLAGSZ_OSX_SUPPORT_INITIAL_cCs|dkrtjd}|jtj}tjj|\}}tjdkrH|dkrH|d}tjj|sx*|D]"}tjj ||}tjj|rZ|SqZWdS|SdS)NPATHZwin32z.exe) osenvironsplitpathseppathsplitextsysplatformisfilejoin) executablerpathsbaseZextpfr#$/usr/lib64/python3.6/_osx_support.py_find_executables     r%cCsddl}yddl}|j}Wn(tk rDtdtjfd}YnX|j|0}d||jf}tj |s||j j dj SdSQRXdS)Nrz/tmp/_osx_support.%szw+bz%s 2>/dev/null >'%s'zutf-8) contextlibtempfileZNamedTemporaryFile ImportErroropenrgetpidclosingnamesystemreaddecodestrip)Z commandstringr&r'fpcmdr#r#r$ _read_output7s  r3cCst|ptd|fpdS)Nz/usr/bin/xcrun -find %s)r%r3)Ztoolnamer#r#r$_find_build_toolJsr5cCsxtdkrtday td}Wntk r,YnHXztjd|j}Wd|jX|dk rtdj|jdj dddatS)Nr4z0/System/Library/CoreServices/SystemVersion.plistz=ProductUserVisibleVersion\s*(.*?).) _SYSTEM_VERSIONr)OSErrorresearchr.closergroupr)r"mr#r#r$_get_system_versionSs   r@cCs&x t|D]}|jtr ||=q WdS)N)list startswith_INITPRE) _config_varskr#r#r$_remove_original_valuesqs rFcCs8|j|d}||kr,t||kr,||t|<|||<dS)Nr4)getrC)rDcvZnewvalueZoldvaluer#r#r$_save_modified_valuexs  rIc CsTt}|r@ytdd|jdD}Wntk r>d}YnX|rPt|dkSdS) Ncss|]}t|VqdS)N)int).0ir#r#r$ sz-_supports_universal_builds..r6r4 F)rNrO)r@tupler ValueErrorbool)Z osx_versionr#r#r$_supports_universal_buildss rScCsdtjkr|S|djd}}t|s4td}n/dev/nullrUz'"'"'z-arch\s+ppc\w*\srV) rrr;r<r-rXr^r_rI)rDZstatusrHr]r#r#r$_remove_unsupported_archss  rbcCshdtjkrdtjd}xNtD]F}||krd||kr||}tjdd|}|d|}t|||qW|S)N ARCHFLAGSz-archz -arch\s+\w+\srV)rrr^r;r_rI)rDZarchrHr]r#r#r$_override_all_archss    rdcCs||jdd}tjd|}|dk rx|jd}tjj|sxx@tD]8}||kr<|tjkr<||}tj dd|}t |||qrrexistsr^rr_rI)rDcflagsr?ZsdkrHr]r#r#r$_check_for_unavailable_sdks     rgc CsXd}}t|}ts d}}nd|k}d|k}|s>dtjkrxx8y|jd}|||d=Wq@tk rrPYq@Xq@Wdtjkr| r|tjdj}|rx8y|jd}|||d=Wqtk rPYqXqWd}d|kr|jd}||d}n d|kr|jd}||d}|rTtjj| rTdd l m }|j d ||j d |S) NFTz-archz -isysrootrcr8r7r)logz4Compiling with an SDK that doesn't seem to exist: %sz$Please check your Xcode installation) rArSrrindexrQrrisdirZ distutilsrhwarn)Z compiler_soZcc_argsZ stripArchZ stripSysrootriZsysrootidxrhr#r#r$r0sF            cCs"tst|t|t||S)N)rSrardrg)rDr#r#r$rps cCst|t|t||S)N)r\rbrd)rDr#r#r$rs c Cs||jdd}tp|}|p|}|rr|}d}|jtd|jdd}|ry$tdd|jddd D}Wqtk rd}YqXnd}|dkod |jkr6d }tjd|}tt t |}t |dkr|d}n\|dkrd }nN|d krd}n>|d!krd}n.|d"krd}n|d#kr&d}ntd|fn<|dkrRt j d$krrd}n |d%krrt j d&krnd}nd}|||fS)'NMACOSX_DEPLOYMENT_TARGETr4Zmacosxrcss|]}t|VqdS)N)rJ)rKrLr#r#r$rMsz#get_platform_osx..r6rr8rNrOz-archZfatz -arch\s+(\S+)r7i386ppcx86_64ZintelZfat3ppc64Zfat64Z universalz%Don't know machine value for archs=%r PowerPCPower_Macintosh)rNr)rNr)rNrO)rnro)rnrp)rnrorp)rqrp)rnrorqrpl)rsrtl)rGr@rCrPrrQr0r;findallsortedsetlenrmaxsize)rDosnamereleasemachineZmacverZ macreleaserfZarchsr#r#r$rsP   $            ) rrrr r r r r rrrrr)r r r r )N)rr;r__all__r^rZrCr%r3r5r9r@rFrIrSr\rarbrdrgrrrrr#r#r#r$s: >(@)