File: //lib64/python3.8/distutils/__pycache__/cygwinccompiler.cpython-38.pyc
U
e5d^@ @ s d Z ddlZddlZddlZddlmZmZmZ ddlZddl m
Z
mZ ddlm
Z
ddlmZ ddlmZmZmZmZ ddlmZ dd lmZ dd
lmZ dd ZG d
d de
ZG dd deZdZdZdZ dd Z!e"dZ#dd Z$dd Z%dd Z&dS )a distutils.cygwinccompiler
Provides the CygwinCCompiler class, a subclass of UnixCCompiler that
handles the Cygwin port of the GNU C compiler to Windows. It also contains
the Mingw32CCompiler class which handles the mingw32 port of GCC (same as
cygwin in no-cygwin mode).
N)PopenPIPEcheck_output)gen_preprocess_optionsgen_lib_options)
UnixCCompiler)
write_file)DistutilsExecErrorCCompilerErrorCompileErrorUnknownFileError)log)LooseVersion)find_executablec C s t jd} | dkr|t j| d | d }|dkr8dgS |dkrFdgS |d krTd
gS |dkrbdgS |d
krpdgS td| dS )zaInclude the appropriate MSVC runtime library if Python was built
with MSVC 7.0 or later.
zMSC v.
Z1300Zmsvcr70Z1310Zmsvcr71Z1400Zmsvcr80Z1500Zmsvcr90Z1600Zmsvcr100zUnknown MS Compiler version %s N)sysversionfind
ValueError)Zmsc_posZmsc_ver r 1/usr/lib64/python3.8/distutils/cygwinccompiler.py get_msvcr? s r c
@ sR e Zd ZdZdZdZdZdZdZdZ dZ
dd
dZdd
ZdddZ
dddZdS )CygwinCCompilerz? Handles the Cygwin port of the GNU C compiler to Windows.
cygwinz.o.az.dllzlib%s%sz%s%sz.exer c C s t | ||| t \}}| d||f |tk rB| d| t \| _| _| _ | | j
d| j| j| j f | jdkrd| _nd| _| jdkrd}nd }| jd
ddd
d| j|f d | jdkrdg| _
| d nt | _
d S )Nz%Python's GCC status: %s (details: %s)zPython's pyconfig.h doesn't seem to support your compiler. Reason: %s. Compiling may fail because of undefined preprocessor macros.z: gcc %s, ld %s, dllwrap %s
z2.10.90gccdllwrap2.13-shared
-mdll -staticzgcc -mcygwin -O -Wallzgcc -mcygwin -mdll -O -Wallzg++ -mcygwin -O -Wallzgcc -mcygwinz%s -mcygwin %sZcompilercompiler_soZcompiler_cxxZ
linker_exeZ linker_so2.91.57Zmsvcrtz,Consider upgrading to a newer version of gcc)r __init__check_config_hZdebug_printCONFIG_H_OKwarnget_versionsgcc_version
ld_versionZdllwrap_version
compiler_type
linker_dllset_executables
dll_librariesr )selfverbosedry_runforceZstatusZdetails
shared_optionr r r r% d sN
zCygwinCCompiler.__init__c
C s |dks|dkrVz| dd|d|g W q tk
rR } zt|W 5 d}~X Y qX nNz"| | j| |d|g | W n* tk
r } zt|W 5 d}~X Y nX dS )z:Compiles the source by spawning GCC and windres if needed..rc.resZwindresz-iz-oN)Zspawnr r r# )r0 objsrcextZcc_argsextra_postargsZpp_optsmsgr r r _compile s
zCygwinCCompiler._compileNc C sP t |
p
g }
t |pg }t |p&g }|| j |dk r|| jksV| jdkrtj|d }tjtj |\}}tj
||d }tj
|d| d }dtj | dg}|D ]}|| q| t
||fd | | jd
kr|
d|g |
d|g n
|| | s(|
d
t| |||||||d| |
|||
dS )zLink the objects.Nr r z.deflibr z
LIBRARY %sZEXPORTSz
writing %sr z--output-libz--defz-s)copyextendr/ Z
EXECUTABLEr- ospathdirnamesplitextbasenamejoinappendZexecuter r link)r0 Ztarget_descZobjectsZoutput_filename
output_dirZ librariesZlibrary_dirsZruntime_library_dirsZexport_symbolsdebugZ
extra_preargsr: Z
build_tempZtarget_langZtemp_dirZdll_nameZ
dll_extensionZdef_fileZlib_filecontentsZsymr r r rG sR
zCygwinCCompiler.link c C s |dkrd}g }|D ]}t jt j|\}}|| jddg krRtd||f |rbt j|}|dkr|t j||| | j q|t j||| j q|S )z#Adds supports for rc and res files.NrK r5 r6 z"unknown file type '%s' (from '%s'))r6 r5 )
r@ rA rC normcaseZsrc_extensionsr rD rF rE
obj_extension)r0 Zsource_filenamesZ strip_dirrH Z obj_namesZsrc_namebaser9 r r r object_filenames s&