????

Your IP : 18.117.135.125


Current Path : /lib/python3.10/distutils/__pycache__/
Upload File :
Current File : //lib/python3.10/distutils/__pycache__/cygwinccompiler.cpython-310.pyc

o

��bc�?�@s�dZddlZddlZddlZddlmZmZmZddlZddl	m
Z
ddlmZddl
mZmZmZmZddlmZddlmZd	d
�ZGdd�de
�ZGd
d�de�ZdZdZdZdd�Ze�d�Zdd�Zdd�Z dd�Z!dS)adistutils.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)�Popen�PIPE�check_output)�
UnixCCompiler)�
write_file)�DistutilsExecError�CCompilerError�CompileError�UnknownFileError)�LooseVersion)�find_executablecCs�tj�d�}|dkr>tj|d|d�}|dkrdgS|dkr#dgS|d	kr*d
gS|dkr1dgS|d
kr8dgStd|��dS)zaInclude the appropriate MSVC runtime library if Python was built
    with MSVC 7.0 or later.
    zMSC v.�����
�1300�msvcr70�1310�msvcr71�1400�msvcr80�1500�msvcr90�1600�msvcr100zUnknown MS Compiler version %s N)�sys�version�find�
ValueError)�msc_pos�msc_ver�r �0/usr/lib/python3.10/distutils/cygwinccompiler.py�	get_msvcr=s�r"c@sZeZdZdZdZdZdZdZdZdZ	dZ
dd
d�Zdd
�Z				ddd�Z
ddd�ZdS)�CygwinCCompilerz? Handles the Cygwin port of the GNU C compiler to Windows.
    �cygwinz.o�.az.dllzlib%s%sz%s%sz.exercCs�t�||||�t�\}}|�d||f�|tur!|�d|�t�\|_|_|_	|�|j
d|j|j|j	f�|jdkrCd|_nd|_|jdkrNd}nd	}|jd
ddd
d|j|fd�|jdkrodg|_
|�d�dSt�|_
dS)Nz%Python's GCC status: %s (details: %s)z�Python'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.90�gcc�dllwrap�2.13�-shared�
-mdll -staticzgcc -mcygwin -O -Wallzgcc -mcygwin -mdll -O -Wallzg++ -mcygwin -O -Wallzgcc -mcygwinz%s -mcygwin %s��compiler�compiler_so�compiler_cxx�
linker_exe�	linker_so�2.91.57�msvcrtz,Consider upgrading to a newer version of gcc)r�__init__�check_config_h�debug_print�CONFIG_H_OK�warn�get_versions�gcc_version�
ld_version�dllwrap_version�
compiler_type�
linker_dll�set_executables�
dll_librariesr")�self�verbose�dry_run�force�status�details�
shared_optionr r r!r3bsN
����
��


��
�zCygwinCCompiler.__init__c
Cs�|dks|dkr&z
|�dd|d|g�WdSty%}zt|��d}~wwz|�|j||d|g|�WdStyH}zt|��d}~ww)z:Compiles the source by spawning GCC and windres if needed.�.rc�.res�windresz-iz-oN)�spawnrr	r-)r@�obj�src�ext�cc_args�extra_postargs�pp_opts�msgr r r!�_compile�s�����zCygwinCCompiler._compileNcCsHt�|
pg�}
t�|pg�}t�|pg�}|�|j�|dur�||jks)|jdkr�tj�|d�}tj�tj�	|��\}}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&rz.def�libr%z
LIBRARY %s�EXPORTSz
writing %sr'z--output-libz--defz-s)�copy�extendr?�
EXECUTABLEr=�os�path�dirname�splitext�basename�join�append�executerr�link)r@�target_desc�objects�output_filename�
output_dir�	libraries�library_dirs�runtime_library_dirs�export_symbols�debug�
extra_preargsrO�
build_temp�target_lang�temp_dir�dll_name�
dll_extension�def_file�lib_file�contents�symr r r!r`�sB	
���


�zCygwinCCompiler.link�cCs�|durd}g}|D]H}tj�tj�|��\}}||jddgvr)td||f��|r1tj�|�}|dvrE|�tj�||||j	��q
|�tj�|||j	��q
|S)z#Adds supports for rc and res files.NrtrGrHz"unknown file type '%s' (from '%s'))rHrG)
rXrYr[�normcase�src_extensionsr
r\r^r]�
obj_extension)r@�source_filenames�	strip_dirrd�	obj_names�src_name�baserMr r r!�object_filenames�s&���z CygwinCCompiler.object_filenames�rrr)
NNNNNrNNNN)rrt)�__name__�
__module__�__qualname__�__doc__r<rw�static_lib_extension�shared_lib_extension�static_lib_format�shared_lib_format�
exe_extensionr3rRr`r}r r r r!r#Ws"
;
�Nr#c@seZdZdZdZddd�ZdS)�Mingw32CCompilerz@ Handles the Mingw32 port of the GNU C compiler to Windows.
    �mingw32rc	Csxt�||||�|jdkrd}nd}|jdkrd}nd}t�r#td��|jdd	d
dd|j||fd
�g|_t	�|_dS)Nr(r)r*r1z--entry _DllMain@12rtz1Cygwin gcc cannot be used with --compiler=mingw32zgcc -O -Wallzgcc -mdll -O -Wallzg++ -O -Wallr&z%s %s %sr+)
r#r3r:r9�is_cygwingccrr>r=r?r")r@rArBrCrF�entry_pointr r r!r3s.

����zMingw32CCompiler.__init__Nr~)rr�r�r�r<r3r r r r!r�sr��okznot ok�	uncertainc
Cs�ddlm}dtjvrtdfS|��}z(t|�}zd|��vr+td|fW|��WSt	d|fW|��WS|��wt
yV}ztd||jffWYd	}~Sd	}~ww)
awCheck if the current Python installation appears amenable to building
    extensions with GCC.

    Returns a tuple (status, details), where 'status' is one of the following
    constants:

    - CONFIG_H_OK: all is well, go ahead and compile
    - CONFIG_H_NOTOK: doesn't look good
    - CONFIG_H_UNCERTAIN: not sure -- unable to read pyconfig.h

    'details' is a human-readable string explaining the situation.

    Note there are two ways to conclude "OK": either 'sys.version' contains
    the string "GCC" (implying that this Python was built with GCC), or the
    installed "pyconfig.h" contains the string "__GNUC__".
    r)�	sysconfig�GCCzsys.version mentions 'GCC'�__GNUC__z'%s' mentions '__GNUC__'z '%s' does not mention '__GNUC__'zcouldn't read '%s': %sN)
�	distutilsr�rrr6�get_config_h_filename�open�read�close�CONFIG_H_NOTOK�OSError�CONFIG_H_UNCERTAIN�strerror)r��fn�config_h�excr r r!r4Fs$
����r4s(\d+\.\d+(\.\d+)*)cCst|��d}t|�durdSt|dtd�j}z
|��}W|��n|��wt�|�}|dur1dSt	|�
d����S)z�Find the version of an executable by running `cmd` in the shell.

    If the command is not found, or the output does not match
    `RE_VERSION`, returns None.
    rNT)�shell�stdout�)�splitrrrr�r�r��
RE_VERSION�searchr�group�decode)�cmd�
executable�out�
out_string�resultr r r!�_find_exe_versionss

r�cCsgd�}tdd�|D��S)zg Try to find out the versions of gcc, ld and dllwrap.

    If not possible it returns None for it.
    )zgcc -dumpversionzld -vzdllwrap --versioncSsg|]}t|��qSr )r�)�.0r�r r r!�
<listcomp>�sz get_versions.<locals>.<listcomp>)�tuple)�commandsr r r!r8�sr8cCstddg�}|���d�S)z>Try to determine if the gcc that would be used is from cygwin.r&z-dumpmachinescygwin)r�strip�endswith)r�r r r!r��sr�)"r�rXrrU�
subprocessrrr�re�distutils.unixccompilerr�distutils.file_utilr�distutils.errorsrrr	r
�distutils.versionr�distutils.spawnrr"r#r�r6r�r�r4�compiler�r�r8r�r r r r!�<module>s./;1
+

Page not found | The NCLEX Doctor

Page not found!

Sorry, this page is not available...