AlkantarClanX12
Current Path : /opt/alt/python35/lib64/python3.5/distutils/__pycache__/ |
Current File : //opt/alt/python35/lib64/python3.5/distutils/__pycache__/bcppcompiler.cpython-35.opt-2.pyc |
���]W: � @ s� d d l Z d d l m Z m Z m Z m Z m Z m Z d d l m Z m Z m Z d d l m Z d d l m Z d d l m Z Gd d � d e � Z d S) � N)�DistutilsExecError�DistutilsPlatformError�CompileError�LibError� LinkError�UnknownFileError)� CCompiler�gen_preprocess_options�gen_lib_options)� write_file)�newer)�logc @ s e Z d Z d Z i Z d g Z d d d g Z e e Z d Z d Z d Z d Z Z d Z d d d d d � Z d d d d d d d d d � Z d d d d d � Z d d d d d d d d d d d d � Z d d d � Z d d d d � Z d d d d d d d � Z d S)�BCPPCompilerZbcppz.cz.ccz.cppz.cxxz.objz.libz.dllz%s%sz.exer c C s� t j | | | | � d | _ d | _ d | _ d | _ d d d d g | _ d d d d g | _ d d d d g | _ d d d d g | _ g | _ d d d g | _ d d d d g | _ 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�verbose�dry_run�force� r �1/opt/alt/python35/lib64/python3.5/bcppcompiler.pyr 5 s zBCPPCompiler.__init__Nc C s | j | | | | | | � \ } } } } } | p6 g } | j d � | r_ | j | j � n | j | j � x�| D]�} y | | \ } } Wn t k r� wv Yn Xt j j | � } t j j | � } | j t j j | � � | d k r� qv | d k rTy | j d d | | g � Wqv t k rP} z t | � � WYd d } ~ Xqv Xqv | | j k rld } n | | j k r�d } n d } d | } y4 | j | j g | | | | g | | g � Wqv t k r�} z t | � � WYd d } ~ Xqv Xqv W| 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� | d g | } | rU y | j | j g | � Wq� t k r� } z t | � � WYd d } ~ Xq� Xn t j d | � d S)Nr+ z/uzskipping %s (up-to-date)) �_fix_object_args�library_filename� _need_linkr( r r r r r. ) r r1 Zoutput_libnamer+ r. �target_lang�output_filenameZlib_argsr6 r r r �create_static_lib� s "zBCPPCompiler.create_static_libc C s� | j | | � \ } } | j | | | � \ } } } | rR t j d t | � � | d k rs t j j | | � } | j | | � r�| t j k r� d } | r� | j d d � } q| j d d � } n5 d } | r� | j d d � } n | j d d � } | d k rd } n� t j j | � \ } } t j j | � \ } } t j j | d � } t j j | d | � } d g } x+ | p�g D] } | j d | | f � q�W| j t | | f d | � t t j j | � } | g } g } x[ | D]S } t j j t j j | � � \ } } | d k r:| j | � q�| j | � q�Wx+ | D]# } | j d t j j | � � qRW| j d � | j | � | j d | g � | j d � xL | D]D } | j | | | � } | d k r�| j | � q�| j | � q�W| j d � | j d � | j d | g � | j d � | j | � | r_| | d d � <| rr| j | � | j t j j | � � y | j | j g | � Wq�t k r�} z t | � � WYd d } ~ Xq�Xn t j d | � 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)) r8 Z _fix_lib_argsr �warn�strr# r$ �joinr: r Z EXECUTABLEr r r r �split�splitextr'