<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
3
 f:                 @   s   d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZm	Z	m
Z
 d dlmZmZmZmZ d dlmZ ejdkrzd dlZG dd	 d	eZdS )
    N)	sysconfig)newer)	CCompilergen_preprocess_optionsgen_lib_options)DistutilsExecErrorCompileErrorLibError	LinkError)logdarwinc            
       s   e Zd ZdZddgdgdgddgdgddgddZejdd d	krNd
ged
< ddddddgZdZdZ	dZ
dZdZd Z ZZeZejdkrdZ fddZd.ddZdd Zd/d d!Zd0d"d#Zd$d% Zd&d' Zd(d) Zd*d+ Zd1d,d-Z  ZS )2UnixCCompilerZunixNZccz-sharedarz-cr)preprocessorcompilercompiler_socompiler_cxx	linker_so
linker_exearchiverranlib   r   r   z.cz.Cz.ccz.cxxz.cppz.mz.oz.az.soz.dylibz.tbdzlib%s%scygwinz.exec                sF   t | j| j|||\}}}tjd}|r<||kr<|j| |||fS )NLIBDIR)super	__class___fix_lib_argsr   get_config_varremove)self	librarieslibrary_dirsruntime_library_dirsZlibdir)r    2/opt/alt/python36/lib64/python3.6/unixccompiler.pyr   U   s    

zUnixCCompiler._fix_lib_argsc             C   s   | j d ||}|\}}}t||}	| j|	 }
|r>|
jd|g |rN||
d d< |r\|
j| |
j| | js~|d ks~t||r|r| jtj	j
| y| j|
 W n* tk
r } zt|W Y d d }~X nX d S )Nz-or   )Z_fix_compile_argsr   r   extendappendforcer   mkpathospathdirnamespawnr   r   )r   sourceZoutput_fileZmacrosZinclude_dirsextra_preargsextra_postargs
fixed_argsignorepp_optsZpp_argsmsgr#   r#   r$   
preprocess_   s$    




zUnixCCompiler.preprocessc       	      C   sp   | j }tjdkr tj||| }y | j|| |d|g |  W n* tk
rj } zt|W Y d d }~X nX d S )Nr   z-o)r   sysplatform_osx_supportcompiler_fixupr,   r   r   )	r   objsrcZextZcc_argsr/   r2   r   r3   r#   r#   r$   _compiley   s    

zUnixCCompiler._compiler   c             C   s   | j ||\}}| j||d}| j||r| jtjj| | j| j|g | | j	  | j
ry| j| j
|g  W q tk
r } zt|W Y d d }~X qX ntjd| d S )N)
output_dirzskipping %s (up-to-date))_fix_object_argslibrary_filename
_need_linkr(   r)   r*   r+   r,   r   objectsr   r   r	   r   debug)r   r@   Zoutput_libnamer<   rA   target_langoutput_filenamer3   r#   r#   r$   create_static_lib   s    zUnixCCompiler.create_static_libc             C   s  | j ||\}}| j|||}|\}}}t| |||}t|ttd fsPtd|d k	rftjj	||}| j
||r|| j | d|g }|	rdg|d d< |
r|
|d d< |r|j| | jtjj| y|tjkr| jd d  }n| jd d  }|dkrR| jrRd}tjj|d dkrDd}xd|| krB|d7 }q(W | j| ||< tjd	krjtj||}| j||  W n, tk
r } zt|W Y d d }~X nX ntjd
| d S )Nz%'output_dir' must be a string or Nonez-oz-gr   zc++env   =r   zskipping %s (up-to-date))r=   r   r   
isinstancestrtype	TypeErrorr)   r*   joinr?   r@   r%   r(   r+   r   Z
EXECUTABLEr   r   r   basenamer5   r6   r7   r8   r,   r   r
   r   rA   )r   Ztarget_descr@   rC   r<   r    r!   r"   Zexport_symbolsrA   r.   r/   Z
build_temprB   r0   Zlib_optsZld_argsZlinkerir3   r#   r#   r$   link   sH    


zUnixCCompiler.linkc             C   s   d| S )Nz-Lr#   )r   dirr#   r#   r$   library_dir_option   s    z UnixCCompiler.library_dir_optionc             C   s   d|kpd|kS )Ngcczg++r#   )r   Zcompiler_namer#   r#   r$   _is_gcc   s    zUnixCCompiler._is_gccc             C   s   t jjtjd}tjd d dkr,d| S tjd d dkrFd| S tjd d d	krz| j|rnd
d| gS dd| gS tjd d dkstjd d dkrd|gS | j|rtjddkrd| S d| S nd| S d S )NCCr   r   z-L   Zfreebsdz-Wl,-rpath=   zhp-uxz-Wl,+sz+sZirix646Zosf1V5z-rpathGNULDyesz-Wl,--enable-new-dtags,-Rz-Wl,-Rz-R)r)   r*   rM   r   r   r5   r6   rS   )r   rP   r   r#   r#   r$   runtime_library_dir_option   s     
$

z(UnixCCompiler.runtime_library_dir_optionc             C   s   d| S )Nz-lr#   )r   libr#   r#   r$   library_option
  s    zUnixCCompiler.library_optionc             C   s  | j |dd}| j |dd}| j |dd}| j |dd}tjdkrptjd}tjd|}	|	d krfd	}
n
|	jd
}
x|D ]}tj	j
||}tj	j
||}tj	j
||}tj	j
||}tjdko|jds|jdo|jd rBtj	j
|
|d
d  |}tj	j
|
|d
d  |}tj	j
|
|d
d  |}tj	j
|
|d
d  |}tj	j|rT|S tj	j|rf|S tj	j|rx|S tj	j|rx|S qxW d S )Nshared)Zlib_typedylib
xcode_stubstaticr   CFLAGSz-isysroot\s+(\S+)/rF   z/System/z/usr/z/usr/local/)r>   r5   r6   r   r   researchgroupr)   r*   rL   
startswithexists)r   dirsrZ   rA   Zshared_fZdylib_fZxcode_stub_fZstatic_fZcflagsmZsysrootrP   r\   r]   r_   r^   r#   r#   r$   find_library_file  s>    




zUnixCCompiler.find_library_file)NNNNN)Nr   N)
NNNNNr   NNNN)r   )__name__
__module____qualname__Zcompiler_typeZexecutablesr5   r6   Zsrc_extensionsZobj_extensionZstatic_lib_extensionZshared_lib_extensionZdylib_lib_extensionZxcode_stub_lib_extensionZstatic_lib_formatZshared_lib_formatZdylib_lib_formatZxcode_stub_lib_formatZexe_extensionr   r4   r;   rD   rO   rQ   rS   rY   r[   ri   __classcell__r#   r#   )r   r$   r   -   sF   


 

   
6,r   )r)   r5   rb   Z	distutilsr   Zdistutils.dep_utilr   Zdistutils.ccompilerr   r   r   Zdistutils.errorsr   r   r	   r
   r   r6   r7   r   r#   r#   r#   r$   <module>   s   
