File: //lib64/python3.6/distutils/__pycache__/ccompiler.cpython-36.opt-2.pyc
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'