_d9dZddlZddlZddlmZmZmZmZmZddl m Z m Z ddl m Z ddlmZddlmZej$d eGd d e Zy) zdistutils.bcppcompiler Contains BorlandCCompiler, an implementation of the abstract CCompiler class for the Borland C++ compiler. N)DistutilsExecError CompileErrorLibError LinkErrorUnknownFileError) CCompilergen_preprocess_options) write_file)newer)logzbcppcompiler is deprecated and slated to be removed in the future. Please discontinue use or file an issue with pypa/distutils describing your use case.ceZdZdZdZiZdgZgdZeezZdZ dZ dZ dxZ Z d Zdfd Z dd Z dd Z dd ZddZddZ ddZxZS) BCPPCompilerzConcrete class that implements an interface to the Borland C/C++ compiler, as defined by the CCompiler abstract class. bcppz.c)z.ccz.cppz.cxxz.objz.libz.dllz%s%sz.exect||||d|_d|_d|_d|_gd|_gd|_gd|_gd|_ g|_ gd|_ gd|_ y) Nz bcc32.exez ilink32.exeztlib.exe)/tWMz/O2/q/g0)rz/Odrr)z/Tpd/Gnr/x)rrr)rrrz/r) super__init__cclinkerlibpreprocess_optionscompile_optionscompile_options_debugldflags_sharedldflags_shared_debugldflags_static ldflags_exeldflags_exe_debug)selfverbosedry_runforce __class__s D/usr/lib/python3/dist-packages/setuptools/_distutils/bcppcompiler.pyrzBCPPCompiler.__init__Bsk '51 # "&;%A"9$?! .!:c Z|j||||||\}} }} } |xsg} | jd|r| j|jn| j|j| D]} | | \}}t jj|}t jj| } |jt jj| |dk(r~|dk(r |jdd| |g||jvrd}n||jvrd}nd}d| z} |j|j g| z| z||gz|z|gz| S#t $rYwxYw#t$r}t|d}~wwxYw#t$r}t|d}~wwxYw) Nz-c.res.rcbrcc32z-foz-P-o)_setup_compileappendextendrrKeyErrorospathnormpathmkpathdirnamespawnrr _c_extensions_cpp_extensionsr)r$sources output_dirmacros include_dirsdebug extra_preargsextra_postargsdependsobjectspp_optsbuild compile_optsobjsrcextmsg input_opt output_opts r)compilezBCPPCompiler.compileYs;?:M:M  gw; 7%%* D!     : : ;    4 4 51 (C  :S''""3'C''""3'C KK, -f}e|,JJ%c:;d((( ,,,  J ( WWI"#!*-.% % e Q1 (fa   *,&s++,:& ("3'' (sB3E%3E53.F% E21E25 F> F  F F* F%%F*c2|j||\}}|j||}|j||r+|dg|z}|r |j|jg|zytjd|y#t $r}t |d}~wwxYw)N)r>z/uskipping %s (up-to-date)) _fix_object_argslibrary_filename _need_linkr:rrrr rA) r$rEoutput_libnamer>rA target_langoutput_filenamelib_argsrLs r)create_static_libzBCPPCompiler.create_static_libs!% 5 5gz J*//:/V ??7O 4'.8H $ DHH:01 II0/ B& $sm# $sA== B BBc|j||\}}|j|||\}}}|rtjdt || t j j||}|j||r6|tjk(r$d}| r|jdd}n3|jdd}n#d}| r|jdd}n|jdd}|d}nt j j|\}}t j j!|\}}t j j#|d}t j j|d|z}dg}|xsgD]#}|j%dj'||%|j)t*||fd |zt-t j j.|}|g}g}|D]i}t j j!t j j1|\}}|d k(r|j%|Y|j%|k|D]3}|j%d t j j/|z5|j%d |j3||j3d |g|j%d|D]:}|j5||| }||j%|*|j%|<|j3d|j3d |g|j%d |j3|| r| |dd| r|j3| |j7t j j#| |j9|j:g|zytj@d|y#t<$r}t?|d}~wwxYw)Nz7I don't know what to do with 'runtime_library_dirs': %sc0w32c0d32r/rz%s.defEXPORTSz {}=_{}z writing %sr,z/L%sz/L.,z,,)import32cw32mtrQ)!rR _fix_lib_argsr warningstrr5r6joinrTr EXECUTABLEr#r"r rsplitsplitextr9r2formatexecuter mapr7normcaser3find_library_filer8r:rrrrA) r$ target_descrErWr> libraries library_dirsruntime_library_dirsexport_symbolsrArBrC build_temprV startup_objld_argsdef_fileheadtailmodnamerKtemp_dircontentssymobjects2 resourcesfilebaseellrlibfilerLs r)linkzBCPPCompiler.links}&!% 5 5gz J*:>:L:L |%9; 7L"6 KKI()   ! ggll:GO ??7O 4i222% "44Q7G"..q1G% "77:G"11!4G%WW]]?; d!ww//5 77??71:677<<(W2DE%;)/RACOOJ$5$5c3$?@A Z(H)=|h?VW277++W5H#mGI  ) gg..rww/?/?/EF s&=$$T*NN4(  )$ ?v(8(8(==> ? NN5 ! NN7 # NNC1 2 NN4  ,00sEJ?NN3'NN7+ , NN1 2 NNC? + NN3  NN9 %+ ~. KK8 9 % DKK=723 II0/ B & %n$ %sO O) O$$O)c|r|dz}|dz|dz||f}n|dz|f}|D]]}|D]V}tjj||j|}tjj |sR|ccS_y)N_d_bcpp)r5r6rdrSexists) r$dirsrrAdlib try_namesdirnamers r)rlzBCPPCompiler.find_library_file>s :DwcBIw,I C! #'',,sD,A,A$,GH77>>'*"N # r*c|d}g}|D]>}tjjtjj|\}}||jddgzvrt dj |||rtjj|}|dk(r3|jtjj|||z|dk(r4|jtjj||dz|jtjj|||jzA|S)Nr/r-r,z"unknown file type '{}' (from '{}')) r5r6rgrksrc_extensionsrrhbasenamer2rd obj_extension)r$source_filenames strip_dirr> obj_namessrc_namerrKs r)object_filenameszBCPPCompiler.object_filenamesXs  J ( VH''**277+;+;H+EFKT34..%@A&8??XNww''-f}  j$*!EF  j$-!HI  j$ASAS:S!TU! V"r*c|jd||\}}}t||}dg|z} || jd|z|r|| dd|r| j|| j||js| t ||rC|r.|j tjj| |j| yy#t$r} t| t| d} ~ wwxYw)Nz cpp32.exer0r)_fix_compile_argsr r2r3r'r r8r5r6r9r:rprintr) r$source output_filer?r@rBrC_rFpp_argsrLs r) preprocesszBCPPCompiler.preprocessqs%)$:$:4$V!FL(>-')  " NN4+- . 'GBQK  NN> *v ::,fk0J BGGOOK89 ( 7# 1K & (c "3'' (s6C C-C((C-)rrr)NNNrNNN)NrN) NNNNNrNNNN)r)rr/)NNNNN)__name__ __module__ __qualname____doc__ compiler_type executablesr;r<rrstatic_lib_extensionshared_lib_extensionstatic_lib_formatshared_lib_format exe_extensionrrOrYrrlrr __classcell__)r(s@r)rr'sMKFM-O#_4NM!!,22)M;4HZNRC0!@CL48(r*r)rr5warningserrorsrrrrr ccompilerr r file_utilr dep_utilr _logr warnDeprecationWarningrr*r)rsR 9! 4 h(9h(r*