관리-도구
편집 파일: 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'