관리-도구
편집 파일: bcppcompiler.cpython-310.pyc
o 6��f.: � @ sp d Z ddlZddlmZmZmZmZmZ ddlm Z m Z ddlmZ ddl mZ 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�CompileError�LibError� LinkError�UnknownFileError)� CCompiler�gen_preprocess_options)� write_file)�newer)�logc @ s� e Zd ZdZdZi ZdgZg d�Zee ZdZ dZ dZd ZZ d Z ddd�Z ddd�Z ddd�Z ddd�Zddd�Z d dd�Z d!dd�Zd S )"�BCPPCompilerzConcrete class that implements an interface to the Borland C/C++ compiler, as defined by the CCompiler abstract class. Zbcppz.c)z.ccz.cppz.cxxz.objz.libz.dllz%s%sz.exer c C sn t �| |||� d| _d| _d| _d | _g d�| _g d�| _g d�| _g d�| _ g | _ g d�| _g d�| _d S ) Nz bcc32.exezilink32.exeztlib.exe)�/tWMz/O2�/q�/g0)r z/Odr r )z/Tpd�/Gnr �/x)r r r )r r r z/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/python310/lib64/python3.10/distutils/bcppcompiler.pyr 5 s zBCPPCompiler.__init__Nc C sn | � ||||||�\}} }} }|pg }|�d� |r!|�| j� n|�| j� | D ]�} z|| \}}W n ty< Y q)w tj�|�}tj�| �} | � tj� | �� |dkrWq)|dkrxz| �dd| |g� W n tyv } zt |��d }~ww q)|| jv r�d}n || jv r�d}nd}d| }z| �| jg| | ||g | |g � W q) ty� } zt |��d }~ww | 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 s^ �� ��� �� ���zBCPPCompiler.compilec C s� | � ||�\}}| j||d�}| �||�r;|dg| }|r z| �| jg| � W d S ty: } zt|��d }~ww t�d|� d S )N)r0 z/u�skipping %s (up-to-date)) �_fix_object_args�library_filename� _need_linkr- r r r r r3 ) r r6 Zoutput_libnamer0 r3 �target_lang�output_filenameZlib_argsr; r r r �create_static_lib� s ���zBCPPCompiler.create_static_libc C s� | � ||�\}}| �|||�\}}}|rt�dt|�� |d ur'tj�||�}| �||��ra|t j krGd}| r?| jd d � }n| jd d � }nd}| rS| j d d � }n| jd d � }|d u rad}n?tj�|�\}}tj�|�\}}tj�|d �}tj�|d| �}dg}|p�g D ]}|�d||f � q�| �t||fd | � ttjj|�}|g}g }|D ]}tj�tj�|��\}}|d kr�|�|� q�|�|� q�|D ] }|�dtj�|� � q�|�d� |�|� |�d |g� |�d� |D ]}| �||| �}|d u �r|�|� q�|�|� q�|�d� |�d� |�d |g� |�d � |�|� | �r2| |d d�<