zmc
2023-12-22 9fdbf60165db0400c2e8e6be2dc6e88138ac719a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
U
G=®d.:ã@spdZddlZddlmZmZmZmZmZddlm    Z    m
Z
ddl m Z ddl mZddlmZGdd    „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ŽeZdZdZdZiZdgZdddgZeeZdZ    dZ
d    Z d
Z Z d Zdd 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.exercCs„t ||||¡d|_d|_d|_d|_ddddg|_ddddg|_d    d
dd g|_d    d
dd g|_    g|_
d
dd g|_ d
dd d g|_ dS) Nz    bcc32.exez ilink32.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úYD:\z\workplace\VsCode\pyvenv\venv\Lib\site-packages\setuptools/_distutils/bcppcompiler.pyr 5s zBCPPCompiler.__init__Nc     Cs–| ||||||¡\}}    }}
} |p$g} |  d¡|rB|  |j¡n |  |j¡|    D]<} z| | \}}Wntk
r€YqRYnXtj |¡}tj | ¡} |     tj 
| ¡¡|dkr¶qR|dkrz|  dd| |g¡WqRt k
r}z t |ƒ‚W5d}~XYqRXqR||jkrd}n||jkr*d}nd}d| }z,|  |jg| |
||g||g¡WqRt k
rŽ}z t |ƒ‚W5d}~XYqRXqR|    S)    Nz-cú.resú.rcZbrcc32z-foÚz-Pú-o)Z_setup_compileÚappendÚextendrrÚKeyErrorÚosÚpathÚnormpathÚmkpathÚdirnameÚspawnrrÚ _c_extensionsÚ_cpp_extensionsr)rÚsourcesÚ
output_dirÚmacrosÚ include_dirsÚdebugÚ extra_preargsÚextra_postargsÚdependsÚobjectsÚpp_optsÚbuildZ compile_optsÚobjÚsrcÚextÚmsgZ    input_optZ
output_optrrrÚcompileQsV ÿÿ 
 
 
 
  ÿþþ
zBCPPCompiler.compilec    
CsŽ| ||¡\}}|j||d}| ||¡r~|dg|}|r:z| |jg|¡WqŠtk
rz}z t|ƒ‚W5d}~XYqŠXn t d|¡dS)N)r-z/uúskipping %s (up-to-date))    Ú_fix_object_argsÚlibrary_filenameÚ
_need_linkr)rrrr r0)    rr4Zoutput_libnamer-r0Ú target_langÚoutput_filenameZlib_argsr:rrrÚcreate_static_lib’s ÿ  zBCPPCompiler.create_static_libc 
Csè| ||¡\}}| |||¡\}}}|r8t dt|ƒ¡|dk    rNtj ||¡}| ||¡rØ|t    j
krŽd}|    r~|j dd…}q´|j dd…}n&d}|    r¦|j dd…}n|jdd…}|dkrÂd}n‚tj |¡\}}tj |¡\}}tj |d¡}tj |d|¡}dg}|pgD]}| d||f¡q| t||fd    |¡ttjj|ƒ}|g}g}|D]>}tj tj |¡¡\}}|d
kr’| |¡n
| |¡q`|D]}| d tj |¡¡q¤| d ¡| |¡| d |g¡| d¡|D]4}| |||    ¡}|dkr| |¡n
| |¡qò| d¡| d¡| d |g¡| d ¡| |¡|
rp|
|dd…<| r€| | ¡| tj |¡¡z| |jg|¡Wn,tk
rÔ}z t|ƒ‚W5d}~XYnXn t d|¡dS)Nz7I don't know what to do with 'runtime_library_dirs': %sZc0w32Zc0d32rrz%s.defZEXPORTSz  %s=_%sz
writing %srz/L%sz/L.ú,z,,Zimport32Zcw32mtr<) r=Z _fix_lib_argsr ÚwarnÚstrr$r%Újoinr?rZ
EXECUTABLErrrrÚsplitÚsplitextr(r!Úexecuter    Úmapr&Únormcaser"Úfind_library_filer'r)rrrr0) rZ target_descr4rAr-Ú    librariesÚ library_dirsÚruntime_library_dirsÚexport_symbolsr0r1r2Ú
build_tempr@Z startup_objZld_argsZdef_fileÚheadÚtailÚmodnamer9Útemp_dirÚcontentsÚsymZobjects2Ú    resourcesÚfileÚbaseÚlrÚlibfiler:rrrÚlink«s‚ ÿÿ
 ÿ
 
 
 
 
 
 
 
 
 
zBCPPCompiler.linkc    Csr|r"|d}|d|d||f}n |d|f}|D]:}|D]0}tj || |¡¡}tj |¡r:|Sq:q2dS)NZ_dZ_bcpp)r$r%rFr>Úexists)    rÚdirsrr0ZdlibZ    try_namesÚdirÚnamer\rrrrL4s
  zBCPPCompiler.find_library_filercCsÆ|dkr d}g}|D]¬}tj tj |¡¡\}}||jddgkrRtd||fƒ‚|rbtj |¡}|dkr„| tj |||¡¡q|dkr¦| tj ||d¡¡q| tj |||j    ¡¡q|S)Nrrrz"unknown file type '%s' (from '%s'))
r$r%rHrKÚsrc_extensionsrÚbasenamer!rFÚ obj_extension)rZsource_filenamesZ    strip_dirr-Z    obj_namesÚsrc_namerZr9rrrÚobject_filenamesNs&ÿ  ÿzBCPPCompiler.object_filenamesc
CsÚ| d||¡\}}}t||ƒ}dg|}    |dk    r>|     d|¡|rN||    dd…<|r\|     |¡|     |¡|js~|dks~t||ƒrÖ|r”| tj     |¡¡z| 
|    ¡Wn2t k
rÔ}
zt |
ƒt |
ƒ‚W5d}
~
XYnXdS)Nz    cpp32.exer r)Z_fix_compile_argsrr!r"rr
r'r$r%r(r)rÚprintr) rÚsourceZ output_filer.r/r1r2Ú_r5Zpp_argsr:rrrÚ
preprocessis&     ÿ
 
 
 
zBCPPCompiler.preprocess)rrr)NNNrNNN)NrN)
NNNNNrNNNN)r)rr)NNNNN)Ú__name__Ú
__module__Ú __qualname__Ú__doc__Ú compiler_typeZ executablesr*r+rbrdZstatic_lib_extensionÚshared_lib_extensionZstatic_lib_formatZshared_lib_formatZ exe_extensionr r;rBr]rLrfrjrrrrr sb
ý
þ
Dû
ó

 
ý
úr )rnr$Údistutils.errorsrrrrrÚdistutils.ccompilerrrÚdistutils.file_utilr    Údistutils.dep_utilr
Ú    distutilsr r rrrrÚ<module>s