U
e5dU ã @ sà d Z ddlZddlZddlZddddgZdZdZd Zd-d
d„Zd.d
d„Z dd„ Z
dadd„ Zda
dd„ Zdd„ Zdd„ Zdadd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zd%d&„ Zd'd(„ Zd)d„ Zd*d„ Zd+d„ Zd,d„ ZdS )/zShared OS X support functions.é NÚcompiler_fixupÚcustomize_config_varsÚcustomize_compilerÚget_platform_osx)
ÚCFLAGSZLDFLAGSZCPPFLAGSZ
BASECFLAGSÚ BLDSHAREDÚLDSHAREDÚCCÚCXXZ PY_CFLAGSZ
PY_LDFLAGSZPY_CPPFLAGSZPY_CORE_CFLAGSZPY_CORE_LDFLAGS)r r r r
Z_OSX_SUPPORT_INITIAL_c C sŒ |dkrt jd }| t j¡}t j | ¡\}}tjdkrH|dkrH| d } t j | ¡s„|D ]&}t j || ¡}t j |¡rX| S qXdS | S dS )zÚTries to find 'executable' in the directories listed in 'path'.
A string listing directories separated by 'os.pathsep'; defaults to
os.environ['PATH']. Returns the complete filename or None if not found.
NÚPATHZwin32z.exe)
ÚosÚenvironÚsplitÚpathsepÚpathÚsplitextÚsysÚplatformÚisfileÚjoin)Ú
executabler ÚpathsÚbaseZextÚpÚf© r ú$/usr/lib64/python3.8/_osx_support.pyÚ_find_executable s
r Fc
C sª ddl }zddl}| ¡ }W n( tk
rD tdt ¡ f dƒ}Y nX | |¡P}|rfd| |jf }nd| |jf }t |¡s|
¡ d¡ ¡ ndW 5 Q R £ S Q R X dS )z0Output from successful command execution or Noner Nz/tmp/_osx_support.%szw+bz
%s >'%s' 2>&1z%s 2>/dev/null >'%s'zutf-8)
Ú
contextlibÚtempfileZNamedTemporaryFileÚImportErrorÚopenr ÚgetpidÚclosingÚnameÚsystemÚreadÚdecodeÚstrip)Z
commandstringZcapture_stderrr r ÚfpÚcmdr r r Ú_read_output7 s ÿÿ
r+ c C s t | ƒptd| f ƒpdS )z0Find a build tool on current path or using xcrunz/usr/bin/xcrun -find %sÚ )r r+ )Ztoolnamer r r Ú_find_build_toolM s
ÿþr- c C sx t dkrtda ztdƒ} W n tk
r, Y nHX zt d| ¡ ¡}W 5 | ¡ X |dk rtd | d¡ d¡dd… ¡a t S )z*Return the OS X system version as a stringNr, z0/System/Library/CoreServices/SystemVersion.plistz=ProductUserVisibleVersion\s*(.*?)Ú.é é )
Ú_SYSTEM_VERSIONr! ÚOSErrorÚcloseÚreÚsearchr&