U
    h"
                     @   sZ   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Zd dlZe jdd Z	dd Z
dS )    Nc               	   c   sD   t jt j } }t t  t _t _z
d V  W 5 | | t _t _X d S )N)sysstdoutstderrioStringIO)Z
old_stdoutZ
old_stderr r   F/var/www/html/venv/lib/python3.8/site-packages/triton/runtime/build.pyquiet   s
    
r	   c              
   C   s  t d}tj|dj| |d}tjd}|d krjt	d}	t	d}
|
d k	rV|
n|	}|d krjt
dtt dr~t  }nt  }|d	krd
}t j|dd }|||g }||dddd|g}|dd |D 7 }|dd |D 7 }|dd |D 7 }t|}|dkr|S g }g }tj| d|g||dg |||d}dg}|d|  |d|  |d t| |g|d}t  tjf | W 5 Q R X |S )N
EXT_SUFFIXz{name}{suffix})namesuffixCCclanggcczFFailed to find C compiler. Please specify via CC environment variable.get_default_schemeZposix_localposix_prefix)schemeincludez-O3z-sharedz-fPICz-oc                 S   s   g | ]}d | qS )z-lr   ).0libr   r   r   
<listcomp>-   s     z_build.<locals>.<listcomp>c                 S   s   g | ]}d | qS )z-Lr   r   dirr   r   r   r   .   s     c                 S   s   g | ]}d | qS )z-Ir   r   r   r   r   r   /   s     r   c)r   languagesourcesinclude_dirsextra_compile_argsextra_link_argslibrary_dirs	libraries	build_extz--build-temp=z--build-lib=z-q)r   ext_modulesscript_args)	sysconfigget_config_varospathjoinformatenvirongetshutilwhichRuntimeErrorhasattrr   _get_default_scheme	get_paths
subprocess
check_call
setuptools	Extensionappenddictr	   setup)r   srcsrcdirr   r   r    r   soccr   r   r   Zpy_include_dircc_cmdretr   r   extargsr   r   r   _build   s^    







rA   )
contextlibr   r   r$   r&   r,   r2   r4   contextmanagerr	   rA   r   r   r   r   <module>   s   
	