Edit File: bcppcompiler.cpython-36.pyc
3 � \W:������������������@���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�j|�|||��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����./usr/lib64/python3.6/distutils/bcppcompiler.pyr���5���s����zBCPPCompiler.__init__Nc �������������C���s���|�j�||||||�\}} }} }|p$g�}|jd��|rB|j|�j��n|j|�j���xD| D��]:} y|| �\}}W�n�tk r����wVY�nX�tjj|�}tjj| �} |�j tjj | ���|dkr�qV|dk�ry|�jdd| |g��W�qV�tk �r�}�zt |��W�Y�d�d�}~X�qVX�qV||�jk�rd}n||�jk�r,d}nd}d| �}y,|�j|�jg|�| �||g�|�|g���W�qV�tk �r��}�zt |��W�Y�d�d�}~X�qVX�qVW�| S�) Nz-cz.resz.rcZbrcc32z-fo��z-Pz-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���sF���� (zBCPPCompiler.compilec������� ������C���s����|�j�||�\}}|�j||d�}|�j||�r~|dg|�}|r:y|�j|�jg|���W�q��tk rz�}�zt|��W�Y�d�d�}~X�q�X�ntjd|��d�S�)N)r*���z/uzskipping %s (up-to-date)) �_fix_object_args�library_filename� _need_linkr'���r���r���r���r ���r-���) r���r0���Zoutput_libnamer*���r-����target_lang�output_filenameZlib_argsr5���r���r���r����create_static_lib����s����zBCPPCompiler.create_static_libc������� ������C���s���|�j�||�\}}|�j|||�\}}}|r8tjdt|���|d�k rNtjj||�}|�j||��r�|t j kr�d}| r~|�jd�d���}q�|�jd�d���}n&d}| r�|�j d�d���}n|�jd�d���}|d�kr�d}n�tjj|�\}}tjj|�\}}tjj|d��}tjj|d|��}dg}x&|�pg�D�]}|jd||f����qW�|�jt||fd |���ttjj|�}|g}g�}xF|D�]>}tjjtjj|��\}}|d k�r�|j|��n |j|���qfW�x$|D�]}|jdtjj|�����q�W�|jd��|j|��|jd |g��|jd��x<|D�]4}|�j||| �}|d�k�r(|j|��n |j|���q�W�|jd��|jd��|jd |g��|jd ��|j|��| �r�| |d�d�<�|�r�|j|��|�jtjj|���y|�j|�jg|���W�n,�tk �r��}�zt|��W�Y�d�d�}~X�nX�ntjd|��d�S�)Nz7I don't know what to do with 'runtime_library_dirs': %sZc0w32Zc0d32r���r���z%s.defZEXPORTSz %s=_%sz writing %sz.resz/L%sz/L.�,z,,Zimport32Zcw32mtzskipping %s (up-to-date)) r7���Z _fix_lib_argsr ����warn�strr"���r#����joinr9���r���Z EXECUTABLEr���r���r���r����split�splitextr&���r���Zexecuter����mapr$����normcaser ����find_library_filer%���r'���r���r���r���r-���) r���Ztarget_descr0���r;���r*���Z librariesZlibrary_dirsZruntime_library_dirsZexport_symbolsr-���r.���r/���Z build_tempr:���Zstartup_objZld_argsZdef_file�head�tail�modnamer4���Ztemp_dir�contentsZsymZobjects2Z resources�file�base�lr����libfiler5���r���r���r����link����s|���� zBCPPCompiler.linkc������� ������C���sv���|r"|d�}|d�|d�||f}n|d�|f}xB|D�]6}x0|D�](}t�jj||�j|��}t�jj|�r>|S�q>W�q4W�d�S�d�S�)NZ_dZ_bcpp)r"���r#���r@���r8����exists) r����dirsr���r-���ZdlibZ try_names�dir�namerM���r���r���r���rE���4��s���� zBCPPCompiler.find_library_filer���c�������������C���s����|d�krd}g�}x�|D�]�}t�jjt�jj|��\}}||�jddg�krTtd||f���|rdt�jj|�}|dkr�|jt�jj|||����q|dkr�|jt�jj||d����q|jt�jj|||�j ����qW�|S�)Nr���z.rcz.resz"unknown file type '%s' (from '%s')) r"���r#���rB���rD����src_extensionsr����basenamer���r@���� obj_extension)r���Zsource_filenamesZ strip_dirr*���Z obj_namesZsrc_namerK���r4���r���r���r����object_filenamesN��s"����� zBCPPCompiler.object_filenamesc�������������C���s����|�j�d�||�\}}}t||�}dg|�} |d�k r>| jd|���|rN|| d�d�<�|r\| j|��| j|��|�js~|d�ks~t||�r�|r�|�jtjj |���y|�j | ��W�n2�tk r��} �zt| ��t | ��W�Y�d�d�} ~ X�nX�d�S�)Nz cpp32.exez-or���)Z_fix_compile_argsr ���r���r ���r���r���r%���r"���r#���r&���r'���r����printr���)r����sourceZoutput_filer+���r,���r.���r/����_r1���Zpp_argsr5���r���r���r���� preprocessi��s$���� zBCPPCompiler.preprocess)r���r���r���)NNNr���NNN)Nr���N) NNNNNr���NNNN)r���)r���r���)NNNNN)�__name__� __module__�__qualname__�__doc__Z compiler_typeZexecutablesr(���r)���rS���rU���Zstatic_lib_extensionZshared_lib_extensionZstatic_lib_formatZshared_lib_formatZ exe_extensionr���r6���r<���rN���rE���rV���rZ���r���r���r���r���r������sJ��� �� � B�� ��������� | � ����r���)r^���r"���Zdistutils.errorsr���r���r���r���r���r���Zdistutils.ccompilerr���r ���r ���Zdistutils.file_utilr���Zdistutils.dep_utilr���Z distutilsr ���r���r���r���r���r����<module>���s���