Your IP : 3.22.68.228
U
i�fI� � @ s� d Z ddlZddlZddlZddlT ddlmZ ddlmZ ddl m
Z
ddlmZm
Z
ddlmZmZ dd lmZ G d
d� d�ZdZdd
d�Zdddddd�Zdd� Zddd�Zdd� Zdd� ZdS )z�distutils.ccompiler
Contains CCompiler, an abstract base class that defines the interface
for the Distutils compiler abstraction model.� N)�*)�spawn)� move_file)�mkpath)�newer_pairwise�newer_group)�split_quoted�execute)�logc
@ s e Zd ZdZdZdZdZdZdZdZ dZ
dZdddddd�ZdddgZ
dqdd �Zd
d� Zdd
� Zdd� Zdd� Zdrdd�Zdd� Zdd� Zdd� Zdd� Zdd� Zdd� Zd d!� Zd"d#� Zd$d%� Zd&d'� Zd(d)� Zd*d+� Zd,d-� Z d.d/� Z!dsd0d1�Z"d2d3� Z#d4d5� Z$d6d7� Z%d8d9� Z&dtd:d;�Z'dud<d=�Z(d>d?� Z)dvd@dA�Z*dBZ+dCZ,dDZ-dwdEdF�Z.dxdGdH�Z/dydIdJ�Z0dzdKdL�Z1dMdN� Z2dOdP� Z3dQdR� Z4d{dSdT�Z5d|dUdV�Z6d}dXdY�Z7d~dZd[�Z8dd\d]�Z9d�d_d`�Z:d�dbdc�Z;ddde� Z<dfdg� Z=d�dhdi�Z>djdk� Z?dldm� Z@d�dodp�ZAdS )�� CCompilera� Abstract base class to define the interface that must be implemented
by real compiler classes. Also has some utility methods used by
several compiler classes.
The basic idea behind a compiler abstraction class is that each
instance can be used for all the compile/link steps in building a
single project. Thus, attributes common to all of those compile and
link steps -- include directories, macros to define, libraries to link
against, etc. -- are attributes of the compiler instance. To allow for
variability in how individual files are treated, most of those
attributes may be varied on a per-compilation or per-link basis.
N�czc++Zobjc)�.cz.ccz.cppz.cxxz.mr c C sb || _ || _|| _d | _g | _g | _g | _g | _g | _g | _ | j
�� D ]}| �|| j
| � qFd 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 �8/opt/alt/python38/lib64/python3.8/distutils/ccompiler.py�__init__U s zCCompiler.__init__c K s<