관리-도구
편집 파일: bcppcompiler.cpython-38.opt-1.pyc
U i�fW: � @ sx d Z ddlZddlmZmZmZmZmZmZ ddl m Z mZmZ ddl mZ ddlmZ ddlmZ G dd � d e �ZdS ) z�distutils.bcppcompiler Contains BorlandCCompiler, an implementation of the abstract CCompiler class for the Borland C++ compiler. � N)�DistutilsExecError�DistutilsPlatformError�CompileError�LibError� LinkError�UnknownFileError)� CCompiler�gen_preprocess_options�gen_lib_options)� write_file)�newer)�logc @ s� e Zd ZdZdZi ZdgZdddgZee ZdZ dZ d Zd ZZ dZdd d�Zddd�Zddd�Zd dd�Zd!dd�Zd"dd�Zd#dd�ZdS )$�BCPPCompilerzConcrete class that implements an interface to the Borland C/C++ compiler, as defined by the CCompiler abstract class. Zbcppz.cz.ccz.cppz.cxxz.objz.libz.dllz%s%sz.exer c C s� t �| |||� d| _d| _d| _d | _ddddg| _ddddg| _d d ddg| _d d ddg| _ g | _ d ddg| _d dddg| _d S ) Nz bcc32.exezilink32.exeztlib.exez/tWMz/O2z/qz/g0z/Odz/Tpdz/Gnz/xz/r) r �__init__�cc�linker�libZpreprocess_options�compile_options�compile_options_debug�ldflags_shared�ldflags_shared_debugZldflags_static�ldflags_exe�ldflags_exe_debug)�self�verboseZdry_run�force� r �;/opt/alt/python38/lib64/python3.8/distutils/bcppcompiler.pyr 5 s zBCPPCompiler.__init__Nc C s� | � ||||||�\}} }} }|p$g }|�d� |rB|�| j� n|�| j� | D �]<} z|| \}}W n tk r� Y qRY nX tj�|�}tj�| �} | � tj� | �� |dkr�qR|dk�rz| �dd| |g� W qR tk �r } zt |��W 5 d }~X Y qRX qR|| jk�rd}n|| jk�r*d}nd}d| }z,| �| jg| | ||g | |g � W qR tk �r� } zt |��W 5 d }~X Y qRX qR| S ) Nz-c�.res�.rcZbrcc32z-fo� z-P�-o)Z_setup_compile�append�extendr r �KeyError�os�path�normpath�mkpath�dirname�spawnr r � _c_extensions�_cpp_extensionsr )r Zsources� output_dir�macros�include_dirs�debug� extra_preargs�extra_postargsZdepends�objects�pp_optsZbuildZcompile_opts�obj�src�ext�msgZ input_optZ output_optr r r �compileQ sV �� ��� zBCPPCompiler.compilec C s� | � ||�\}}| j||d�}| �||�r~|dg| }|r:z| �| jg| � W q� tk rz } zt|��W 5 d }~X Y q�X nt�d|� d S )N)r- z/u�skipping %s (up-to-date)) �_fix_object_args�library_filename� _need_linkr* r r r r r0 ) r r3 Zoutput_libnamer- r0 �target_lang�output_filenameZlib_argsr8 r r r �create_static_lib� s �zBCPPCompiler.create_static_libc C s� | � ||�\}}| �|||�\}}}|r8t�dt|�� |d k rNtj�||�}| �||��r�|t j kr�d}| r~| jd d � }q�| jd d � }n&d}| r�| j d d � }n| jd d � }|d kr�d}n�tj�|�\}}tj�|�\}}tj�|d �}tj�|d| �}dg}|�pg D ]}|�d||f � �q| �t||fd | � ttjj|�}|g}g }|D ]>}tj�tj�|��\}}|d k�r�|�|� n |�|� �q`|D ]}|�dtj�|� � �q�|�d� |�|� |�d |g� |�d� |D ]4}| �||| �}|d k�r|�|� n |�|� �q�|�d� |�d� |�d |g� |�d � |�|� | �rp| |d d�<