o
    灛i"
                     @   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   sR    t jt j} }t t t _t _zd V  W | |t _t _d S | |t _t _w )N)sysstdoutstderrioStringIO)
old_stdout
old_stderr r	   V/sda-disk/www/egybert/egybert_env/lib/python3.10/site-packages/triton/runtime/build.pyquiet   s   "r   c              
   C   s  t d}tj|dj| |d}tjd}|d u r5t	d}	t	d}
|
d ur+|
n|	}|d u r5t
dtt dr?t  }nt  }|d	krId
}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di | W d    |S 1 sw   Y  |S )N
EXT_SUFFIXz{name}{suffix})namesuffixCCclanggcczFFailed to find C compiler. Please specify via CC environment variable.get_default_schemeposix_localposix_prefix)schemeincludez-O3z-sharedz-fPICz-oc                 S      g | ]}d | qS )z-lr	   ).0libr	   r	   r
   
<listcomp>-       z_build.<locals>.<listcomp>c                 S   r   )z-Lr	   r   dirr	   r	   r
   r   .   r   c                 S   r   )z-Ir	   r   r	   r	   r
   r   /   r   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_argsr	   )	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   py_include_dircc_cmdretr"   r#   extargsr	   r	   r
   _build   sd   







rG   )
contextlibr   r   r)   r+   r1   r7   r9   contextmanagerr   rG   r	   r	   r	   r
   <module>   s    
	