Your IP : 3.22.68.228
3
\7� � @ s� d dl Z d dlZd dlZd dlT d dlmZ d dlmZ d dlm Z d dl
mZmZ d dl
mZmZ d dlmZ G d d
� d
�Zd,Zd-dd�Zd.d/d0d1d2d �Zd!d"� Zd3d#d$�Zd%d&� Zd'd(� ZdS )4� N)�*)�spawn)� move_file)�mkpath)�newer_pairwise�newer_group)�split_quoted�execute)�logc
@ s e Zd ZdZdZdZdZdZdZdZ dZ
dddddd�ZdddgZdpdd�Z
d d
� Zdd� Zd
d� Zdd� Zdqdd�Zdd� Zdd� Zdd� Zdd� Zdd� Zdd� Zdd � Zd!d"� Zd#d$� Zd%d&� Zd'd(� Zd)d*� Zd+d,� Zd-d.� Z drd/d0�Z!d1d2� Z"d3d4� Z#d5d6� Z$d7d8� Z%dsd9d:�Z&dtd;d<�Z'd=d>� Z(dud?d@�Z)dAZ*dBZ+dCZ,dvdDdE�Z-dwdFdG�Z.dxdHdI�Z/dydJdK�Z0dLdM� Z1dNdO� Z2dPdQ� Z3dzdRdS�Z4d{dTdU�Z5d|dWdX�Z6d}dYdZ�Z7d~d[d\�Z8dd^d_�Z9d�dadb�Z:dcdd� Z;dedf� Z<d�dgdh�Z=didj� Z>dkdl� Z?d�dndo�Z@dS )�� CCompilerN�czc++Zobjc)z.cz.ccz.cppz.cxxz.mr c C sf || _ || _|| _d | _g | _g | _g | _g | _g | _g | _ x$| j
j� D ]}| j|| j
| � qHW d S )N)
�dry_run�force�verbose�
output_dir�macros�include_dirs� libraries�library_dirs�runtime_library_dirs�objects�executables�keys�set_executable)�selfr r
r �key� r �+/usr/lib64/python3.6/distutils/ccompiler.py�__init__U s zCCompiler.__init__c K s@ x:|D ]2}|| j kr(td|| jjf ��| j||| � qW d S )Nz$unknown executable '%s' for class %s)r �
ValueError� __class__�__name__r )r �kwargsr r r r �set_executablesy s
zCCompiler.set_executablesc C s, t |t�rt| |t|�� nt| ||� d S )N)�
isinstance�str�setattrr )r r �valuer r r r � s
zCCompiler.set_executablec C s0 d}x&| j D ]}|d |kr |S |d7 }qW d S )Nr � )r )r �name�i�defnr r r �_find_macro� s zCCompiler._find_macroc C sd x^|D ]V}t |t�oFt|�dkoFt |d t�s:|d d koFt |d t�std| d d ��qW d S )Nr( � r zinvalid macro definition '%s': z.must be tuple (string,), (string, string), or z(string, None))r( r- )r$ �tuple�lenr% � TypeError)r Zdefinitionsr+ r r r �_check_macro_definitions� s
z"CCompiler._check_macro_definitionsc C s. | j |�}|d k r| j|= | jj||f� d S )N)r, r �append)r r) r'