§
    WŠtjb.  ã                  ó  — d Z ddlmZ ddlZddlZddlZddlZddlZddlZddl	m
Z
 ddlmZmZ ddlmZ ddlmZ dd	lmZmZ d
dlmZ d
dlmZmZ d„ ZdZ G d„ dej        ¦  «        Z G d„ de¦  «        ZdZdZdZd„ Z dd„Z!dZ"dS )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).
é    )ÚannotationsN)Úcheck_outputé   )ÚDistutilsExecErrorÚDistutilsPlatformError)Ú
write_file)Úget_config_vars)ÚLooseVersionÚsuppress_known_deprecationé   )Úunix)ÚCompileErrorÚErrorc                 ó   — g S )z6No longer needed, but kept for backward compatibility.© r   ó    úf/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/setuptools/_distutils/compilers/C/cygwin.pyÚ	get_msvcrr   !   s   € à€Ir   zxUnable to set runtime library search path on Windows, usually indicated by `runtime_library_dirs` parameter to Extensionc                  ó®   ‡ — e Zd ZdZdZdZdZdZdZdZ	dZ
dZd	Zdˆ fd„	Zed„ ¦   «         Zd„ Z	 	 	 	 	 	 	 	 	 	 dˆ fd„	Zd„ Zˆ fd„Zeˆ fd„¦   «         Zˆ xZS )ÚCompilerz9Handles the Cygwin port of the GNU C compiler to Windows.Úcygwinz.oz.az.dll.az.dllzlib%s%szcyg%s%sz.exeFc                óò  •— t          ¦   «                              ||¬¦  «         t          ¦   «         \  }}|                      d|› d|› d�¦  «         |t          ur|                      d|› d�¦  «         t          dd¦  «        \  | _        | _        t          j
                             d| j        pd	¦  «        | _        t          j
                             d| j        pd
¦  «        | _        | j        | _        | j        | _        d}|                      | j        › d�| j        › d�| j        › d�| j        › d�| j        › d�| j        › d|› �| j        › d�| j        › d|› �¬¦  «         t          ¦   «         | _        d S )N)ÚforcezPython's GCC status: z (details: ú)zCPython's pyconfig.h doesn't seem to support your compiler. Reason: z>. Compiling may fail because of undefined preprocessor macros.ÚCCÚCXXÚgcczg++ú-sharedz -mcygwin -O -Wallz -mcygwin -mdll -O -Wallz	 -mcygwinz
 -mcygwin )ÚcompilerÚcompiler_soÚcompiler_cxxÚcompiler_so_cxxÚ
linker_exeÚ	linker_soÚlinker_exe_cxxÚlinker_so_cxx)ÚsuperÚ__init__Úcheck_config_hÚdebug_printÚCONFIG_H_OKÚwarnr	   ÚccÚcxxÚosÚenvironÚgetÚ
linker_dllÚlinker_dll_cxxÚset_executablesr   Údll_libraries)ÚselfÚverboser   ÚstatusÚdetailsÚshared_optionÚ	__class__s         €r   r(   zCompiler.__init__9   s¯  ø€ Ý‰Œ×Ò˜¨ÐÑ.Ô.Ð.å(Ñ*Ô*‰ˆ�Ø×ÒÐN°ÐNÐNÀGÐNÐNÐNÑOÔOÐOØ�Ð$Ð$Ø�IŠIðOØ"ðOð Oð Oñô ð õ ,¨D°%Ñ8Ô8ÑˆŒ�”õ ”*—.’.  t¤wÐ'7°%Ñ8Ô8ˆŒÝ”:—>’> %¨¬Ð):°UÑ;Ô;ˆŒàœ'ˆŒØ"œhˆÔØ!ˆà×ÒØœÐ3Ð3Ð3Øœ7Ð<Ð<Ð<Ø œHÐ8Ð8Ð8Ø#œxÐAÐAÐAØœ'Ð,Ð,Ð,ØœÐCÐC°MÐCÐCØ"œhÐ1Ð1Ð1Ø!Ô0ÐKÐK¸MÐKÐKð 	ñ 		
ô 		
ð 		
õ '™[œ[ˆÔÐÐr   c                ó¨   — t          j        dt          d¬¦  «         t          ¦   «         5  t	          d¦  «        cd d d ¦  «         S # 1 swxY w Y   d S )Nz�gcc_version attribute of CygwinCCompiler is deprecated. Instead of returning actual gcc version a fixed value 11.2.0 is returned.é   )Ú
stacklevelz11.2.0)Úwarningsr,   ÚDeprecationWarningr   r
   )r6   s    r   Úgcc_versionzCompiler.gcc_version]   s¦   € õ 	ŒðXåØð		
ñ 	
ô 	
ð 	
õ (Ñ)Ô)ð 	*ð 	*Ý Ñ)Ô)ð	*ð 	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*ð 	*ð 	*s   «AÁAÁAc                óœ  — |dv r>	 |                       dd|d|g¦  «         dS # t          $ r}t          |¦  «        ‚d}~ww xY w	 |                      |¦  «        dk    r(|                       | j        |z   |d|gz   |z   ¦  «         dS |                       | j        |z   |d|gz   |z   ¦  «         dS # t          $ r}t          |¦  «        ‚d}~ww xY w)z:Compiles the source by spawning GCC and windres if needed.)ú.rcú.resÚwindresz-iz-oNzc++)Úspawnr   r   Údetect_languager"   r    )r6   ÚobjÚsrcÚextÚcc_argsÚextra_postargsÚpp_optsÚmsgs           r   Ú_compilezCompiler._compilel   s4  € à�/Ð!Ð!ð(Ø—
’
˜I t¨S°$¸Ð<Ñ=Ô=Ð=Ð=Ð=øÝ%ð (ð (ð (Ý" 3Ñ'Ô'Ð'øøøøð(øøøð(Ø×'Ò'¨Ñ,Ô,°Ò5Ð5Ø—J’JØÔ,Ø!ñ"à  cÐ*ñ+ð )ñ)ñô ð ð ð ð —J’JØÔ(¨7Ñ2°c¸4ÀÐ5EÑEÈÑVñô ð ð ð øõ &ð (ð (ð (Ý" 3Ñ'Ô'Ð'øøøøð(øøøs0   †" ¢
A ¬;»A Á?B- Â&B- Â-
CÂ7CÃCNc                óž  •— t          j         |
pg ¦  «        }
t          j         |pg ¦  «        }t          j         |pg ¦  «        }|r|                      t          ¦  «         |                     | j        ¦  «         |��|| j        k    s| j        dk    röt          j         	                    |d         ¦  «        }t          j         
                    t          j                             |¦  «        ¦  «        \  }}t          j                             ||dz   ¦  «        }dt          j                             |¦  «        › �dg}|                     |¦  «         |                      t          ||fd|› �¦  «         |                     |¦  «         |	s|
                     d¦  «         t!          ¦   «                              |||||||d|	|
|||¦  «         dS )	zLink the objects.Nr   r   z.defzLIBRARY ÚEXPORTSzwriting z-s)Úcopyr,   Ú_runtime_library_dirs_msgÚextendr5   Ú
EXECUTABLEr2   r/   ÚpathÚdirnameÚsplitextÚbasenameÚjoinÚexecuter   Úappendr'   Úlink)r6   Útarget_descÚobjectsÚoutput_filenameÚ
output_dirÚ	librariesÚlibrary_dirsÚruntime_library_dirsÚexport_symbolsÚdebugÚextra_preargsrL   Ú
build_tempÚtarget_langÚtemp_dirÚdll_nameÚdll_extensionÚdef_fileÚcontentsr;   s                      €r   r]   zCompiler.link„   sÐ  ø€ õ$ œ	 -Ð"5°2Ñ6Ô6ˆÝ”I˜i˜o¨2Ñ.Ô.ˆ	Ý”)˜G˜M rÑ*Ô*ˆàð 	1Ø�IŠIÕ/Ñ0Ô0Ð0ð 	×Ò˜Ô+Ñ,Ô,Ð,ð Ñ&Ø˜4œ?Ò*Ð*¨d¬oÀÒ.FÐ.Fõ ”w—’ w¨q¤zÑ2Ô2ˆHå(*¬×(8Ò(8Ý”× Ò  Ñ1Ô1ñ)ô )Ñ%ˆX�}õ
 ”w—|’| H¨h¸Ñ.?Ñ@Ô@ˆHð G¥2¤7×#3Ò#3°OÑ#DÔ#DÐFÐFÈ	ÐRˆHØ�OŠO˜NÑ+Ô+Ð+Ø�LŠL� h°Ð%9Ð;PÀhÐ;PÐ;PÑQÔQÐQð
 �NŠN˜8Ñ$Ô$Ð$ð ð 	'Ø× Ò  Ñ&Ô&Ð&å‰Œ�ŠØØØØØØØ ØØØØØØñ	
ô 	
ð 	
ð 	
ð 	
r   c                ó:   — |                       t          ¦  «         g S ©N)r,   rS   ©r6   Údirs     r   Úruntime_library_dir_optionz#Compiler.runtime_library_dir_optionÜ   s   € ð 	�	Š	Õ+Ñ,Ô,Ð,Øˆ	r   c                óˆ   •— t           j                             |¦  «        }t          ¦   «                              |||¦  «        S rp   )r/   rV   Únormcaser'   Ú_make_out_path)r6   ra   Ú	strip_dirÚsrc_nameÚnorm_src_namer;   s        €r   rv   zCompiler._make_out_pathå   s4   ø€ åœ×(Ò(¨Ñ2Ô2ˆÝ‰wŒw×%Ò% j°)¸]ÑKÔKÐKr   c                óL   •‡ — i t          ¦   «         j        ¥ˆ fd„dD ¦   «         ¥S )z3
        Add support for rc and res files.
        c                ó&   •— i | ]}||‰j         z   “ŒS r   )Úobj_extension)Ú.0rJ   r6   s     €r   ú
<dictcomp>z+Compiler.out_extensions.<locals>.<dictcomp>ñ   s#   ø€ ÐHÐHÐH°ˆs�C˜$Ô,Ñ,ÐHÐHÐHr   )rD   rC   )r'   Úout_extensions)r6   r;   s   `€r   r   zCompiler.out_extensionsê   s9   øø€ ð

Ý‰gŒgÔ$ð
àHÐHÐHÐH¸ÐHÑHÔHð
ð 	
r   ©FF)
NNNNNFNNNN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úcompiler_typer|   Ústatic_lib_extensionÚshared_lib_extensionÚdylib_lib_extensionÚstatic_lib_formatÚshared_lib_formatÚdylib_lib_formatÚexe_extensionr(   ÚpropertyrA   rO   r]   rs   rv   r   Ú__classcell__©r;   s   @r   r   r   ,   s8  ø€ € € € € ØCÐCà€MØ€MØÐØ#ÐØ ÐØ!ÐØ!ÐØ ÐØ€Mð")ð ")ð ")ð ")ð ")ð ")ðH ð*ð *ñ „Xð*ð(ð (ð (ð: ØØØ!ØØØØØØðV
ð V
ð V
ð V
ð V
ð V
ðpð ð ðLð Lð Lð Lð Lð
 ð
ð 
ð 
ð 
ñ „Xð
ð 
ð 
ð 
ð 
r   r   c                  ó.   ‡ — e Zd ZdZdZdˆ fd„	Zd„ Zˆ xZS )ÚMinGW32Compilerz:Handles the Mingw32 port of the GNU C compiler to Windows.Úmingw32Fc                óP  •— t          ¦   «                              ||¦  «         d}t          | j        ¦  «        rt	          d¦  «        ‚|                      | j        › d�| j        › d�| j        › d�| j        › d�| j        › | j        › d|› �| j        › | j        › d|› �¬¦  «         d S )Nr   z1Cygwin gcc cannot be used with --compiler=mingw32z	 -O -Wallz -shared -O -Wallú )r   r    r"   r!   r#   r$   r%   r&   )	r'   r(   Úis_cygwinccr-   r   r4   r.   r2   r3   )r6   r7   r   r:   r;   s       €r   r(   zMinGW32Compiler.__init__û   sØ   ø€ Ý‰Œ×Ò˜ %Ñ(Ô(Ð(à!ˆå�t”wÑÔð 	MÝÐKÑLÔLÐLà×ÒØœÐ*Ð*Ð*Øœ7Ð5Ð5Ð5Ø#œxÐ:Ð:Ð:Ø œHÐ/Ð/Ð/Øœ'�|ØœÐ:Ð:¨=Ð:Ð:Ø"œh˜=Ø!Ô0ÐBÐB°=ÐBÐBð 	ñ 		
ô 		
ð 		
ð 		
ð 		
r   c                ó*   — t          t          ¦  «        ‚rp   )r   rS   rq   s     r   rs   z*MinGW32Compiler.runtime_library_dir_option  s   € Ý$Õ%>Ñ?Ô?Ð?r   r€   )r�   r‚   rƒ   r„   r…   r(   rs   rŽ   r�   s   @r   r‘   r‘   ö   s^   ø€ € € € € ØDÐDà€Mð
ð 
ð 
ð 
ð 
ð 
ð&@ð @ð @ð @ð @ð @ð @r   r‘   Úokznot okÚ	uncertainc                 ó„  — ddl m}  dt          j        v r	t          dfS dt          j        v r	t          dfS |                      ¦   «         }	 t          j        |¦  «                             d¬¦  «        }d	}||v r
t          }d
}n	t          }d}||›d|› d|›�fS # t          $ r}t          d|› d|j        › �fcY d}~S d}~ww xY w)aw  Check 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ÚGCCzsys.version mentions 'GCC'ÚClangzsys.version mentions 'Clang'zutf-8)ÚencodingÚ__GNUC__Úmentionszdoes not mentionr”   zcouldn't read 'z': N)Ú	distutilsrš   ÚsysÚversionr+   Úget_config_h_filenameÚpathlibÚPathÚ	read_textÚCONFIG_H_NOTOKÚOSErrorÚCONFIG_H_UNCERTAINÚstrerror)rš   ÚfnÚconfig_hÚ	substringÚcodeÚmention_inflectedÚexcs          r   r)   r)     s$  € ð* $Ð#Ð#Ð#Ð#Ð#ð •”ÐÐÝÐ8Ð8Ð8ð •#”+ÐÐÝÐ:Ð:Ð:ð 
×	(Ò	(Ñ	*Ô	*€BðAÝ”< Ñ#Ô#×-Ò-°wÐ-Ñ?Ô?ˆð ˆ	Ø˜Ð Ð ÝˆDØ *ÐÐå!ˆDØ 2ÐØ˜Ð@Ð@Ð0Ð@Ð@°9Ð@Ð@Ð@Ð@øõ ð Mð Mð MÝ"Ð$K°bÐ$KÐ$K¸S¼\Ð$KÐ$KÐLÐLÐLÐLÐLÐLÐLøøøøðMøøøs   Á
(B Â
B?Â!B:Â4B?Â:B?r-   ústr | shlex._ShlexInstreamÚreturnÚboolc                óš   — t          t          j        | ¦  «        dgz   ¦  «        }|                     ¦   «                              d¦  «        S )zCTry to determine if the compiler that would be used is from cygwin.z-dumpmachines   cygwin)r   ÚshlexÚsplitÚstripÚendswith)r-   Ú
out_strings     r   r•   r•   L  s?   € å�eœk¨"™oœo°Ð0@Ñ@ÑAÔA€JØ×ÒÑÔ×&Ò& yÑ1Ô1Ð1r   )r-   r±   r²   r³   )#r„   Ú
__future__r   rR   r/   r¤   rµ   r¡   r?   Ú
subprocessr   Úerrorsr   r   Ú	file_utilr   rš   r	   r¢   r
   r   Ú r   r   r   r   rS   r   r‘   r+   r§   r©   r)   r•   Úget_versionsr   r   r   ú<module>rÀ      s×  ððð ð #Ð "Ð "Ð "Ð "Ð "à €€€Ø 	€	€	€	Ø €€€Ø €€€Ø 
€
€
€
Ø €€€Ø #Ð #Ð #Ð #Ð #Ð #ðð ð ð ð ð ð ð ð $Ð #Ð #Ð #Ð #Ð #Ø (Ð (Ð (Ð (Ð (Ð (Ø ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ðð ð ðIð ðF
ð F
ð F
ð F
ð F
ˆtŒ}ñ F
ô F
ð F
ðT@ð @ð @ð @ð @�hñ @ô @ð @ð@ €Ø€Ø Ð ð.Að .Að .Aðb2ð 2ð 2ð 2ð €ðð r   