???<!-- GIF89;a -->
123123123123
.....................................................................................................................................???<!-- GIF89;a -->
123123123123
.....................................................................................................................................3

  \J                 @   s   d dl Z d dlZd dlZddddgZd0Zd1ZdZd2ddZdd Zdd Z	da
dd Zdd Zdd Zd d! Zd"d# Zd$d% Zd&d' Zd(d) Zd*d+ Zd,d Zd-d Zd.d Zd/d ZdS )3    Ncompiler_fixupcustomize_config_varscustomize_compilerget_platform_osxCFLAGSLDFLAGSCPPFLAGS
BASECFLAGS	BLDSHAREDLDSHAREDCCCXX	PY_CFLAGS
PY_LDFLAGSPY_CPPFLAGSPY_CORE_CFLAGSPY_CORE_LDFLAGSZ_OSX_SUPPORT_INITIAL_c             C   s   |d krt jd }|jt j}t jj| \}}tjdkrH|dkrH| d } t jj| sx*|D ]"}t jj	|| }t jj|rZ|S qZW d S | S d S )NPATHZwin32z.exe)
osenvironsplitpathseppathsplitextsysplatformisfilejoin)
executabler   pathsbaseZextpf r#   $/usr/lib64/python3.6/_osx_support.py_find_executable   s    

r%   c             C   s   dd l }ydd l}|j }W n( tk
rD   tdtj f d}Y nX |j|0}d| |jf }tj	|s||j
 jdj S d S Q R X d S )Nr   z/tmp/_osx_support.%szw+bz%s 2>/dev/null >'%s'zutf-8)
contextlibtempfileZNamedTemporaryFileImportErroropenr   getpidclosingnamesystemreaddecodestrip)Zcommandstringr&   r'   fpcmdr#   r#   r$   _read_output7   s    r3   c             C   s   t | ptd| f pdS )Nz/usr/bin/xcrun -find %s )r%   r3   )Ztoolnamer#   r#   r$   _find_build_toolJ   s    r5   c              C   sx   t d krtda ytd} W n tk
r,   Y nHX ztjd| j }W d | j  X |d k	rtdj|jdj	dd d a t S )Nr4   z0/System/Library/CoreServices/SystemVersion.plistz=<key>ProductUserVisibleVersion</key>\s*<string>(.*?)</string>.      )
_SYSTEM_VERSIONr)   OSErrorresearchr.   closer   groupr   )r"   mr#   r#   r$   _get_system_versionS   s    

r@   c             C   s&   x t | D ]}|jtr
| |= q
W d S )N)list
startswith_INITPRE)_config_varskr#   r#   r$   _remove_original_valuesq   s    
rF   c             C   s8   | j |d}||kr,t| | kr,|| t| < || |< d S )Nr4   )getrC   )rD   cvZnewvalueZoldvaluer#   r#   r$   _save_modified_valuex   s    rI   c              C   sT   t  } | r@ytdd | jdD } W n tk
r>   d} Y nX | rPt| dkS dS )	Nc             s   s   | ]}t |V  qd S )N)int).0ir#   r#   r$   	<genexpr>   s    z-_supports_universal_builds.<locals>.<genexpr>r6   r4   
      F)rN   rO   )r@   tupler   
ValueErrorbool)Zosx_versionr#   r#   r$   _supports_universal_builds   s    
rS   c             C   s   dt jkr| S | d j d  }}t|s4td}n<t jj|jdrptd|j	ddf }|rpd|krptd}|s|t
d	||krxTtD ]L}|| kr|t jkr| | j }|d
kr|n|d |d< t| |dj| qW | S )Nr   r   Zclanggccz'%s' --version'z'"'"'zllvm-gcczCannot locate working compilerr   z++ )r   r   r   r%   r5   r   basenamerB   r3   replaceSystemError_COMPILER_CONFIG_VARSrI   r   )rD   ZccZoldccdatarH   Zcv_splitr#   r#   r$   _find_appropriate_compiler   s(    


r\   c             C   sZ   xTt D ]L}|| kr|tjkr| | }tjdd|tjd}tjdd|}t| || qW | S )Nz-arch\s+\w+\srV   )flagsz-isysroot [^ 	]*)_UNIVERSAL_CONFIG_VARSr   r   r;   subASCIIrI   )rD   rH   r]   r#   r#   r$   _remove_universal_flags   s    
ra   c             C   s   dt jkr| S tjd| d d k	rt jd| d jddf }|rx@tD ]8}|| krH|t jkrH| | }tjdd|}t| || qHW | S )	Nr   z-arch\s+ppcr   zNecho 'int main{};' | '%s' -c -arch ppc -x c -o /dev/null /dev/null 2>/dev/nullrU   z'"'"'z-arch\s+ppc\w*\srV   )	r   r   r;   r<   r-   rX   r^   r_   rI   )rD   ZstatusrH   r]   r#   r#   r$   _remove_unsupported_archs   s    
	
rb   c             C   sh   dt jkrdt jd }xNtD ]F}|| krd| | kr| | }tjdd|}|d | }t| || qW | S )N	ARCHFLAGSz-archz-arch\s+\w+\srV   )r   r   r^   r;   r_   rI   )rD   ZarchrH   r]   r#   r#   r$   _override_all_archs  s    


rd   c             C   s|   | j dd}tjd|}|d k	rx|jd}tjj|sxx@tD ]8}|| kr<|tjkr<| | }tj	dd|}t
| || q<W | S )Nr   r4   z-isysroot\s+(\S+)r7   z-isysroot\s+\S+(?:\s|$)rV   )rG   r;   r<   r>   r   r   existsr^   r   r_   rI   )rD   cflagsr?   ZsdkrH   r]   r#   r#   r$   _check_for_unavailable_sdk  s    

rg   c             C   sX  d }}t | } t s d }}nd|k}d|k}|s>dtjkrxx8y| jd}| ||d = W q@ tk
rr   P Y q@X q@W dtjkr| r| tjd j  } |rx8y| jd}| ||d = W q tk
r   P Y qX qW d }d|kr|jd}||d  }n d| kr| jd}| |d  }|rTtjj| rTdd	l	m
} |jd
| |jd | S )NFTz-archz	-isysrootrc   r8   r7   r   )logz4Compiling with an SDK that doesn't seem to exist: %sz$Please check your Xcode installation)rA   rS   r   r   indexrQ   r   r   isdirZ	distutilsrh   warn)Zcompiler_soZcc_argsZ	stripArchZstripSysrootri   Zsysrootidxrh   r#   r#   r$   r   0  sF    	






c             C   s"   t  st|  t|  t|  | S )N)rS   ra   rd   rg   )rD   r#   r#   r$   r   p  s
    c             C   s   t |  t|  t|  | S )N)r\   rb   rd   )rD   r#   r#   r$   r     s    	c             C   s|  | j dd}t p|}|p|}|rr|}d}| j td | j dd}|ry$tdd |jddd	 D }W q tk
r   d}Y qX nd}|dkod|j kr6d}tjd|}tt	t
|}t|dkr|d }n\|dkrd}nN|d k rd}n>|d!krd}n.|d"krd}n|d#kr&d}ntd|f n<|dkrRtjd$krrd}n |d%krrtjd&krnd}nd}|||fS )'NMACOSX_DEPLOYMENT_TARGETr4   Zmacosxr   c             s   s   | ]}t |V  qd S )N)rJ   )rK   rL   r#   r#   r$   rM     s    z#get_platform_osx.<locals>.<genexpr>r6   r   r8   rN   rO   z-archZfatz-arch\s+(\S+)r7   i386ppcx86_64ZintelZfat3ppc64Zfat64Z	universalz%Don't know machine value for archs=%r    PowerPCPower_Macintosh)rN   r   )rN   r   )rN   rO   )rn   ro   )rn   rp   )rn   ro   rp   )rq   rp   )rn   ro   rq   rp   l        )rs   rt   l        )rG   r@   rC   rP   r   rQ   r0   r;   findallsortedsetlenr   maxsize)rD   osnamereleasemachineZmacverZ
macreleaserf   Zarchsr#   r#   r$   r     sP    


$






)r   r   r   r	   r
   r   r   r   r   r   r   r   r   )r
   r   r   r   )N)r   r;   r   __all__r^   rZ   rC   r%   r3   r5   r9   r@   rF   rI   rS   r\   ra   rb   rd   rg   r   r   r   r   r#   r#   r#   r$   <module>   s:      
>(@)