o 0¦i.: ã @ sn d dl Z d dlmZmZmZmZmZ d dlmZm Z d dl mZ d dlm Z d dlmZ G dd„ deƒZdS ) é N)ÚDistutilsExecErrorÚCompileErrorÚLibErrorÚ LinkErrorÚUnknownFileError)Ú CCompilerÚgen_preprocess_options)Ú write_file)Únewer)Úlogc @ s¼ e Zd Z dZi ZdgZg d¢Zee ZdZdZ dZ d ZZdZ dd d„Z dd d„Z ddd„Z ddd„Zddd„Z ddd„Z d dd„ZdS )!ÚBCPPCompilerZbcppz.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…<