B
    ›³ëb/  ã               @   sf   d Z ddlZddlZddlZddlZddlZddlZddl	m
Z
 ddlmZ dgZdd„ Zdd	„ ZdS )
zÄTool-specific initialization for clang++.

There normally shouldn't be any need to import this module directly.
It will usually be imported through the generic SCons.Tool.Tool()
selection method.
é    N)Úget_clang_install_dirs)Úmsvc_setup_env_oncezclang++c          	   C   sl  t j | ¡\}}t jj | ¡ |  t¡p*d| d< | d dkr^t j d¡| d< d| d< d	| d
< nz| d dkrtd| d
< nd| d dkrŠd| d
< nN| d dkrØt jj	| td t
| d ƒd}|rØtj |¡}|  d|¡ t| ƒ | d rXt jj| | d dgddtjd}| ¡ dkrdS |j |j ¡ }W dQ R X | ¡ }t d|¡}|rX| d¡| d< d| d< d| d< dS )zFAdd Builders and construction variables for clang++ to an Environment.zclang++ZCXXZPLATFORMZaixz$CXXFLAGS -mminimal-tocZ
SHCXXFLAGSé   Z&STATIC_AND_SHARED_OBJECTS_ARE_THE_SAMEz
$OBJSUFFIXZSHOBJSUFFIXZhpuxz.pic.oZsunosZwin32r   )Zdefault_pathsÚPATHz	--versionÚdevnull)ÚstdinÚstderrÚstdoutNz%clang +version +([0-9]+(?:\.[0-9]+)+)Z
CXXVERSIONz-MMD -MF ${TARGET}.dZ
CCDEPFLAGSZclangZNINJA_DEPFILE_PARSE_FORMAT)ÚSConsZToolZcreateObjBuildersZcxxÚgenerateÚDetectÚ	compilersZUtilZCLVarZfind_program_pathr   ÚosÚpathÚdirnameZAppendENVPathr   ZActionZ_subprocÚ
subprocessÚPIPEÚwaitr	   ÚreadlineÚdecodeÚreÚsearchÚgroup)ÚenvZ
static_objZ
shared_objZclangxxZclangxx_bin_dirÚpipeÚlineÚmatch© r   ú1lib/python3.7/site-packages/SCons/Tool/clangxx.pyr   /   s@    




r   c             C   s
   |   t¡S )N)r   r   )r   r   r   r   Úexists`   s    r   )Ú__doc__Úos.pathr   r   r   Z
SCons.Toolr
   Z
SCons.UtilZSCons.Tool.cxxZSCons.Tool.clangCommonr   ZSCons.Tool.MSCommonr   r   r   r   r   r   r   r   Ú<module>   s   1