§
    Ÿj{  ã                   óü   — d 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	m
Z
mZmZmZ ddlmZmZ ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ  ej        d¦  «        Zd„ Z  G d„ de¦  «        Z!dS )z¶distutils.command.build_ext

Implements the Distutils 'build_ext' command, for building extension
modules (currently limited to C extensions, should accommodate C++
extensions ASAP).é    Né   )ÚCommand)ÚDistutilsOptionErrorÚDistutilsSetupErrorÚCCompilerErrorÚDistutilsErrorÚCompileErrorÚDistutilsPlatformError)Úcustomize_compilerÚget_python_version)Úget_config_h_filename)Únewer_group)Ú	Extension)Úget_platform)Úlogé   )Ú
py37compat)Ú	USER_BASEz3^[a-zA-Z_][a-zA-Z_0-9]*(\.[a-zA-Z_][a-zA-Z_0-9]*)*$c                  ó&   — ddl m}   | ¦   «          d S )Nr   ©Úshow_compilers)Ú	ccompilerr   r   s    út/var/www/finuniver-perm.ru/html/student/venv/lib/python3.11/site-packages/setuptools/_distutils/command/build_ext.pyr   r   #   s(   € Ø*Ð*Ð*Ð*Ð*Ð*à€NÑÔÐÐÐó    c                   ó   — e Zd ZdZdej        z  Zddddd e¦   «         z  fdd	d
dez   fddddddez   fddddddddddgZg d¢Z	ddde
fgZd „ Zd!„ Zd"„ Zd#„ Zd$„ Zd%„ Zd&„ Zd'„ Zd(„ Zej        d)„ ¦   «         Zd*„ Zd+„ Zd,„ Zd-„ Zd.„ Zd/„ Zd0„ Zd1„ ZdS )2Ú	build_extz8build C/C++ extensions (compile/link to build directory)z (separated by '%s'))z
build-lib=Úbz(directory for compiled extension modules)zbuild-temp=Útz1directory for temporary files (build by-products)z
plat-name=Úpz>platform name to cross-compile for, if supported (default: %s))ÚinplaceÚiziignore build-lib and put compiled extensions into the source directory alongside your pure Python moduleszinclude-dirs=ÚIz.list of directories to search for header files)zdefine=ÚDzC preprocessor macros to define)zundef=ÚUz!C preprocessor macros to undefine)z
libraries=Úlz!external C libraries to link withzlibrary-dirs=ÚLz.directories to search for external C libraries)zrpath=ÚRz7directories to search for shared C libraries at runtime)zlink-objects=ÚOz2extra explicit link objects to include in the link)ÚdebugÚgz'compile/link with debugging information)ÚforceÚfz2forcibly build everything (ignore file timestamps))z	compiler=Úczspecify the compiler type)z	parallel=Újznumber of parallel build jobs)úswig-cppNz)make SWIG create C++ files (default is C))z
swig-opts=Nz!list of SWIG command line options)zswig=Nzpath to the SWIG executable)ÚuserNz#add user include, library and rpath)r    r)   r+   r/   r0   zhelp-compilerNzlist available compilersc                 ó,  — d | _         d | _        d | _        d | _        d| _        d | _        d | _        d | _        d | _        d | _	        d | _
        d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _        d S )Nr   )Ú
extensionsÚ	build_libÚ	plat_nameÚ
build_tempr    ÚpackageÚinclude_dirsÚdefineÚundefÚ	librariesÚlibrary_dirsÚrpathÚlink_objectsr)   r+   ÚcompilerÚswigÚswig_cppÚ	swig_optsr0   Úparallel©Úselfs    r   Úinitialize_optionszbuild_ext.initialize_optionsn   sœ   € ØˆŒØˆŒØˆŒØˆŒØˆŒØˆŒà ˆÔØˆŒØˆŒ
ØˆŒØ ˆÔØˆŒ
Ø ˆÔØˆŒ
ØˆŒ
ØˆŒØˆŒ	ØˆŒØˆŒØˆŒ	ØˆŒˆˆr   c           
      óN  — ddl m} |                      ddddddd	d
¦  «         | j        €| j        j        | _        | j        j        | _        |                     ¦   «         }|                     d¬¦  «        }| j	        €| j        j	        pg | _	        t          | j	        t          ¦  «        r)| j	                             t          j        ¦  «        | _	        t          j        t          j        k    rB| j	                             t          j                             t          j        d¦  «        ¦  «         | j	                             |                     t          j        j        ¦  «        ¦  «         ||k    r<| j	                             |                     t          j        j        ¦  «        ¦  «         |                      d¦  «         |                      d¦  «         | j        €g | _        | j        €g | _        nCt          | j        t          ¦  «        r)| j                             t          j        ¦  «        | _        | j        €g | _        nCt          | j        t          ¦  «        r)| j                             t          j        ¦  «        | _        t          j        dk    �rä| j                             t          j                             t          j        d¦  «        ¦  «         t          j        t          j        k    rB| j                             t          j                             t          j        d¦  «        ¦  «         | j        r+t          j                             | j        d¦  «        | _        n*t          j                             | j        d¦  «        | _        | j	                             t          j                             t?          ¦   «         ¦  «        ¦  «         | j                             t          j        ¦  «         | j         dk    rd}n| j         dd …         }t          j                             t          j        d¦  «        }|r t          j                             ||¦  «        }| j                             |¦  «         t          j!        d d…         dk    ru|j"        sT| j                             t          j                             t          j        ddtG          ¦   «         z   d¦  «        ¦  «         n| j                             d¦  «         | $                    d¦  «        rO|j"        s.| j                             | $                    d¦  «        ¦  «         n| j                             d¦  «         | j%        r+| j%                             d¦  «        }d „ |D ¦   «         | _%        | j&        r| j&                             d¦  «        | _&        | j'        €g | _'        n| j'                             d!¦  «        | _'        | j(        rÖt          j                             tR          d¦  «        }t          j                             tR          d¦  «        }t          j         *                    |¦  «        r| j	                             |¦  «         t          j         *                    |¦  «        r4| j                             |¦  «         | j                             |¦  «         t          | j+        t          ¦  «        r9	 tY          | j+        ¦  «        | _+        d S # tZ          $ r t]          d"¦  «        ‚w xY wd S )#Nr   )Ú	sysconfigÚbuild)r3   r3   )r5   r5   )r>   r>   )r)   r)   )r+   r+   )rB   rB   )r4   r4   r   )Úplat_specificÚincluder:   r=   ÚntÚlibsÚDebugÚReleaseÚwin32é   ÚPCbuildé   ÚcygwinÚlibÚpythonÚconfigú.ÚPy_ENABLE_SHAREDÚLIBDIRú,c                 ó   — g | ]}|d f‘ŒS )Ú1© )Ú.0Úsymbols     r   ú
<listcomp>z.build_ext.finalize_options.<locals>.<listcomp>ý   s   € Ð?Ð?Ð?¨V˜F C˜=Ð?Ð?Ð?r   ú zparallel should be an integer)/Ú	distutilsrG   Úset_undefined_optionsr6   ÚdistributionÚext_packageÚext_modulesr2   Úget_python_incr7   Ú
isinstanceÚstrÚsplitÚosÚpathsepÚsysÚexec_prefixÚbase_exec_prefixÚappendÚpathÚjoinÚextendÚensure_string_listr:   r;   r<   ÚnameÚprefixr)   r5   Údirnamer   r4   ÚplatformÚpython_buildr   Úget_config_varr8   r9   rA   r0   r   ÚisdirrB   ÚintÚ
ValueErrorr   )	rD   rG   Ú
py_includeÚplat_py_includeÚsuffixÚnew_libÚdefinesÚuser_includeÚuser_libs	            r   Úfinalize_optionszbuild_ext.finalize_options†   s  € Ø'Ð'Ð'Ð'Ð'Ð'à×"Ò"ØØ&Ø(Ø$ØØØ$Ø&ñ		
ô 		
ð 		
ð Œ<ÐØÔ,Ô8ˆDŒLàÔ+Ô7ˆŒð ×-Ò-Ñ/Ô/ˆ
Ø#×2Ò2ÀÐ2ÑCÔCˆØÔÐ$Ø $Ô 1Ô >Ð DÀ"ˆDÔÝ�dÔ'­Ñ-Ô-ð 	DØ $Ô 1× 7Ò 7½¼
Ñ CÔ CˆDÔõ Œ?�cÔ2Ò2Ð2ØÔ×$Ò$¥R¤W§\¢\µ#´/À9Ñ%MÔ%MÑNÔNÐNð 	Ô× Ò  ×!1Ò!1µ"´'´/Ñ!BÔ!BÑCÔCÐCØ˜jÒ(Ð(ØÔ×$Ò$ _×%:Ò%:½2¼7¼?Ñ%KÔ%KÑLÔLÐLà×Ò Ñ,Ô,Ð,Ø×Ò Ñ/Ô/Ð/ð Œ>Ð!ØˆDŒNØÔÐ$Ø "ˆDÔÐÝ˜Ô)­3Ñ/Ô/ð 	DØ $Ô 1× 7Ò 7½¼
Ñ CÔ CˆDÔàŒ:ÐØˆDŒJˆJÝ˜œ
¥CÑ(Ô(ð 	6Øœ×)Ò)­"¬*Ñ5Ô5ˆDŒJõ
 Œ7�dŠ?‰?ð Ô×$Ò$¥R¤W§\¢\µ#´/À6Ñ%JÔ%JÑKÔKÐKÝÔ#¥s¤zÒ1Ð1ØÔ!×(Ò(­¬¯ªµcÔ6JÈFÑ)SÔ)SÑTÔTÐTØŒzð KÝ"$¤'§,¢,¨t¬ÀÑ"HÔ"H�”�å"$¤'§,¢,¨t¬À	Ñ"JÔ"J�”ð Ô×$Ò$¥R¤W§_¢_Õ5JÑ5LÔ5LÑ%MÔ%MÑNÔNÐNØÔ×$Ò$¥SÔ%9Ñ:Ô:Ð:ð Œ~ Ò(Ð(Ø ��ð œ¨¨¨Ô+�Ý”g—l’l¥3¤?°IÑ>Ô>ˆGØð 8Ýœ'Ÿ,š, w°Ñ7Ô7�ØÔ×$Ò$ WÑ-Ô-Ð-õ Œ<˜˜˜Ô˜xÒ'Ð'ØÔ)ð 	.àÔ!×(Ò(Ý”G—L’LÝœ
 E¨8Õ6HÑ6JÔ6JÑ+JÈHñô ñô ð ð ð Ô!×(Ò(¨Ñ-Ô-Ð-ð
 ×#Ò#Ð$6Ñ7Ô7ð 	.ØÔ)ð .àÔ!×(Ò(¨×)AÒ)AÀ(Ñ)KÔ)KÑLÔLÐLÐLð Ô!×(Ò(¨Ñ-Ô-Ð-ð Œ;ð 	@Ø”k×'Ò'¨Ñ,Ô,ˆGØ?Ð?°wÐ?Ñ?Ô?ˆDŒKð
 Œ:ð 	/Øœ×)Ò)¨#Ñ.Ô.ˆDŒJàŒ>Ð!ØˆDŒNˆNà!œ^×1Ò1°#Ñ6Ô6ˆDŒNð Œ9ð 	,Ýœ7Ÿ<š<­	°9Ñ=Ô=ˆLÝ”w—|’|¥I¨uÑ5Ô5ˆHÝŒw�}Š}˜\Ñ*Ô*ð 7ØÔ!×(Ò(¨Ñ6Ô6Ð6ÝŒw�}Š}˜XÑ&Ô&ð ,ØÔ!×(Ò(¨Ñ2Ô2Ð2Ø”
×!Ò! (Ñ+Ô+Ð+å�d”m¥SÑ)Ô)ð 	LðLÝ # D¤MÑ 2Ô 2�”��øÝð Lð Lð LÝ*Ð+JÑKÔKÐKðLøøøð	Lð 	Ls   Û-\ Ü\"c                 óv  — ddl m} | j        sd S | j                             ¦   «         rb|                      d¦  «        }| j                             |                     ¦   «         pg ¦  «         | j	         
                    |j        ¦  «          || j        | j        | j        | j        ¬¦  «        | _        t!          | j        ¦  «         t"          j        dk    r6| j        t)          ¦   «         k    r| j                             | j        ¦  «         | j        �| j                             | j        ¦  «         | j        �(| j        D ] \  }}| j                             ||¦  «         Œ!| j        �$| j        D ]}| j                             |¦  «         Œ| j        �| j                             | j        ¦  «         | j	        �| j                             | j	        ¦  «         | j        �| j                             | j        ¦  «         | j         �| j         !                    | j         ¦  «         |  "                    ¦   «          d S )Nr   )Únew_compilerÚ
build_clib)r>   ÚverboseÚdry_runr+   rK   )#r   r‡   r2   rd   Úhas_c_librariesÚget_finalized_commandr:   rs   Úget_library_namesr;   rp   rˆ   r>   r‰   rŠ   r+   r   rk   ru   r4   r   Ú
initializer7   Úset_include_dirsr8   Údefine_macror9   Úundefine_macroÚset_librariesÚset_library_dirsr<   Úset_runtime_library_dirsr=   Úset_link_objectsÚbuild_extensions)rD   r‡   rˆ   ru   ÚvalueÚmacros         r   Úrunzbuild_ext.run  s3  € Ø,Ð,Ð,Ð,Ð,Ð,ð Œð 	ØˆFð
 Ô×,Ò,Ñ.Ô.ð 	<Ø×3Ò3°LÑAÔAˆJØŒN×!Ò! *×">Ò">Ñ"@Ô"@Ð"FÀBÑGÔGÐGØÔ×$Ò$ ZÔ%:Ñ;Ô;Ð;ð %˜Ø”]Ø”LØ”LØ”*ð	
ñ 
ô 
ˆŒõ 	˜4œ=Ñ)Ô)Ð)õ Œ7�dŠ?ˆ?˜tœ~µ±´Ò?Ð?ØŒM×$Ò$ T¤^Ñ4Ô4Ð4ð ÔÐ(ØŒM×*Ò*¨4Ô+<Ñ=Ô=Ð=ØŒ;Ð"à!%¤ð 8ð 8‘��uØ”×*Ò*¨4°Ñ7Ô7Ð7Ð7ØŒ:Ð!Øœð 4ð 4�Ø”×,Ò,¨UÑ3Ô3Ð3Ð3ØŒ>Ð%ØŒM×'Ò'¨¬Ñ7Ô7Ð7ØÔÐ(ØŒM×*Ò*¨4Ô+<Ñ=Ô=Ð=ØŒ:Ð!ØŒM×2Ò2°4´:Ñ>Ô>Ð>ØÔÐ(ØŒM×*Ò*¨4Ô+<Ñ=Ô=Ð=ð 	×ÒÑÔÐÐÐr   c                 ó‚  — t          |t          ¦  «        st          d¦  «        ‚t          |¦  «        D �]	\  }}t          |t          ¦  «        rŒt          |t
          ¦  «        rt          |¦  «        dk    rt          d¦  «        ‚|\  }}t          j        d|¦  «         t          |t          ¦  «        rt                               |¦  «        st          d¦  «        ‚t          |t          ¦  «        st          d¦  «        ‚t	          ||d         ¦  «        }dD ]*}|                     |¦  «        }|�t          |||¦  «         Œ+|                     d
¦  «        |_        d|v rt          j        d¦  «         |                     d¦  «        }|r©g |_        g |_        |D ]˜}	t          |	t
          ¦  «        rt          |	¦  «        dv st          d¦  «        ‚t          |	¦  «        dk    r!|j                             |	d         ¦  «         Œkt          |	¦  «        dk    r|j                             |	¦  «         Œ™|||<   �Œd	S )a¬  Ensure that the list of extensions (presumably provided as a
        command option 'extensions') is valid, i.e. it is a list of
        Extension objects.  We also support the old-style list of 2-tuples,
        where the tuples are (ext_name, build_info), which are converted to
        Extension instances here.

        Raise DistutilsSetupError if the structure is invalid anywhere;
        just returns otherwise.
        z:'ext_modules' option must be a list of Extension instancesr   zMeach element of 'ext_modules' option must be an Extension instance or 2-tuplezvold-style (ext_name, build_info) tuple found in ext_modules for extension '%s' -- please convert to Extension instancezRfirst element of each tuple in 'ext_modules' must be the extension name (a string)zOsecond element of each tuple in 'ext_modules' must be a dictionary (build info)Úsources)r7   r;   r:   Úextra_objectsÚextra_compile_argsÚextra_link_argsNr<   Údef_filez9'def_file' element of build info dict no longer supportedÚmacros)r   r   z9'macros' element of build info dict must be 1- or 2-tupler   r   )rh   Úlistr   Ú	enumerater   ÚtupleÚlenr   Úwarningri   Úextension_name_reÚmatchÚdictÚgetÚsetattrÚruntime_library_dirsÚdefine_macrosÚundef_macrosrp   )
rD   r2   r!   ÚextÚext_nameÚ
build_infoÚkeyÚvalr    r˜   s
             r   Úcheck_extensions_listzbuild_ext.check_extensions_list\  s™  € õ ˜*¥dÑ+Ô+ð 	Ý%ØLñô ð õ   
Ñ+Ô+ð J	 ñ J	 ‰FˆAˆsÝ˜#�yÑ)Ô)ð Øõ ˜c¥5Ñ)Ô)ð ­S°©X¬X¸ª]¨]Ý)ð4ñô ð ð
 $'Ñ ˆH�jåŒKð:ð ñ	ô ð õ ˜x­Ñ-Ô-ð Õ2C×2IÒ2IÈ(Ñ2SÔ2Sð Ý)ð<ñô ð õ
 ˜j­$Ñ/Ô/ð Ý)ð8ñô ð õ ˜H j°Ô&;Ñ<Ô<ˆCðð 
+ð 
+�ð !—n’n SÑ)Ô)�Ø�?Ý˜C  cÑ*Ô*Ð*øð (2§~¢~°gÑ'>Ô'>ˆCÔ$Ø˜ZÐ'Ð'Ý”ØRñô ð ð  —^’^ HÑ-Ô-ˆFØð 8Ø$&�Ô!Ø#%�Ô Ø#ð 	8ð 	8�EÝ& u­eÑ4Ô4ð ½¸U¹¼ÀvÐ9MÐ9MÝ1ð4ñô ð õ ˜5‘z”z Q’�ØÔ(×/Ò/°°a´Ñ9Ô9Ð9Ð9Ý˜U™œ qš˜ØÔ)×0Ò0°Ñ7Ô7Ð7øàˆJ�q‰M‰MðUJ	 ð J	 r   c                 ó†   — |                       | j        ¦  «         g }| j        D ]}|                     |j        ¦  «         Œ|S ©N)r³   r2   rs   r›   )rD   Ú	filenamesr®   s      r   Úget_source_fileszbuild_ext.get_source_files·  sO   € Ø×"Ò" 4¤?Ñ3Ô3Ð3Øˆ	ð ”?ð 	*ð 	*ˆCØ×Ò˜Sœ[Ñ)Ô)Ð)Ð)ØÐr   c                 ó¬   — |                       | j        ¦  «         g }| j        D ]/}|                     |                      |j        ¦  «        ¦  «         Œ0|S rµ   )r³   r2   rp   Úget_ext_fullpathru   )rD   Úoutputsr®   s      r   Úget_outputszbuild_ext.get_outputsÀ  s\   € ð 	×"Ò" 4¤?Ñ3Ô3Ð3ð
 ˆØ”?ð 	<ð 	<ˆCØ�NŠN˜4×0Ò0°´Ñ:Ô:Ñ;Ô;Ð;Ð;Øˆr   c                 óœ   — |                       | j        ¦  «         | j        r|                      ¦   «          d S |                      ¦   «          d S rµ   )r³   r2   rB   Ú_build_extensions_parallelÚ_build_extensions_serialrC   s    r   r–   zbuild_ext.build_extensionsÎ  sR   € à×"Ò" 4¤?Ñ3Ô3Ð3ØŒ=ð 	,Ø×+Ò+Ñ-Ô-Ð-Ð-Ð-à×)Ò)Ñ+Ô+Ð+Ð+Ð+r   c                 óà  ‡ ‡— ‰ j         }‰ j         du rt          j        ¦   «         }	 ddlm} n# t
          $ r d }Y nw xY w|€‰                      ¦   «          d S  ||¬¦  «        5 Šˆˆ fd„‰ j        D ¦   «         }t          ‰ j        |¦  «        D ]F\  }}‰  	                    |¦  «        5  | 
                    ¦   «          d d d ¦  «         n# 1 swxY w Y   ŒG	 d d d ¦  «         d S # 1 swxY w Y   d S )NTr   )ÚThreadPoolExecutor)Úmax_workersc                 óF   •— g | ]}‰                      ‰j        |¦  «        ‘ŒS r]   )ÚsubmitÚbuild_extension)r^   r®   ÚexecutorrD   s     €€r   r`   z8build_ext._build_extensions_parallel.<locals>.<listcomp>ä  s7   ø€ ð ð ð Ø?B�—’ Ô 4°cÑ:Ô:ðð ð r   )rB   rk   Ú	cpu_countÚconcurrent.futuresrÀ   ÚImportErrorr¾   r2   ÚzipÚ_filter_build_errorsÚresult)rD   ÚworkersrÀ   Úfuturesr®   ÚfutrÅ   s   `     @r   r½   z$build_ext._build_extensions_parallelÖ  sÀ  øø€ Ø”-ˆØŒ=˜DÐ Ð Ý”l‘n”nˆGð	Ø=Ð=Ð=Ð=Ð=Ð=Ð=øÝð 	ð 	ð 	ØˆGˆGˆGð	øøøð ˆ?Ø×)Ò)Ñ+Ô+Ð+ØˆFàÐ¨GÐ4Ñ4Ô4ð 	!¸ðð ð ð ð ØFJÄoðñ ô ˆGõ   ¤°Ñ9Ô9ð !ð !‘��SØ×.Ò.¨sÑ3Ô3ð !ð !Ø—J’J‘L”L�Lð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !øð!ð		!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!ð 	!ð 	!sC   §. ®=¼=Á$AC#Â(C	Â=C#Ã	CÃC#ÃCÃC#Ã#C'Ã*C'c                 óž   — | j         D ]D}|                      |¦  «        5  |                      |¦  «         d d d ¦  «         n# 1 swxY w Y   ŒEd S rµ   )r2   rÊ   rÄ   )rD   r®   s     r   r¾   z"build_ext._build_extensions_serialë  s›   € Ø”?ð 	*ð 	*ˆCØ×*Ò*¨3Ñ/Ô/ð *ð *Ø×$Ò$ SÑ)Ô)Ð)ð*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *øð	*ð 	*s   ŸAÁA	ÁA	c              #   óÊ   K  — 	 d V — d S # t           t          t          f$ rA}|j        s‚ |                      d                     |j        |¦  «        ¦  «         Y d }~d S d }~ww xY w)Nz"building extension "{}" failed: {})r   r   r	   ÚoptionalÚwarnÚformatru   )rD   r®   Úes      r   rÊ   zbuild_ext._filter_build_errorsð  s‡   è è € ð	PØˆEˆEˆEˆEˆEøÝ¥µÐ=ð 	Pð 	Pð 	PØ”<ð ØØ�IŠIÐ:×AÒAÀ#Ä(ÈAÑNÔNÑOÔOÐOÐOÐOÐOÐOÐOÐOøøøøð	Pøøøs   „
 ŠA"¡6AÁA"c                 óö  — |j         }|�t          |t          t          f¦  «        st	          d|j        z  ¦  «        ‚t          |¦  «        }|                      |j        ¦  «        }||j        z   }| j	        s-t          ||d¦  «        st          j        d|j        ¦  «         d S t          j        d|j        ¦  «         |                      ||¦  «        }|j        pg }|j        d d …         }|j        D ]}|                     |f¦  «         Œ| j                             || j        ||j        | j        ||j        ¬¦  «        }|d d …         | _        |j        r|                     |j        ¦  «         |j        pg }|j        p| j                             |¦  «        }	| j                             |||                      |¦  «        |j        |j         ||  !                    |¦  «        | j        | j        |	¬¦
  «
         d S )Nzjin 'ext_modules' option (extension '%s'), 'sources' must be present and must be a list of source filenamesÚnewerz$skipping '%s' extension (up-to-date)zbuilding '%s' extension)Ú
output_dirr    r7   r)   Úextra_postargsÚdepends)r:   r;   r«   rØ   Úexport_symbolsr)   r5   Útarget_lang)"r›   rh   r¡   r£   r   ru   Úsortedr¹   rÙ   r+   r   r   r)   ÚinfoÚswig_sourcesr�   r¬   r­   rp   r>   Úcompiler5   r7   Ú_built_objectsrœ   rs   rž   ÚlanguageÚdetect_languageÚlink_shared_objectÚget_librariesr;   r«   Úget_export_symbols)
rD   r®   r›   Úext_pathrÙ   Ú
extra_argsr    r9   Úobjectsrá   s
             r   rÄ   zbuild_ext.build_extensionù  s!  € Ø”+ˆØˆ?¥*¨Wµt½U°mÑ"DÔ"Dˆ?Ý%ð-à/2¬xñ8ñô ð õ ˜‘/”/ˆà×(Ò(¨¬Ñ2Ô2ˆØ˜CœKÑ'ˆØ”
ð 	:�k¨'°8¸WÑEÔEð 	:ÝŒIÐ<¸c¼hÑGÔGÐGØˆFåŒHÐ.°´Ñ9Ô9Ð9ð
 ×#Ò# G¨SÑ1Ô1ˆð  Ô+Ð1¨rˆ
àÔ" 1 1 1Ô%ˆØÔ%ð 	$ð 	$ˆEØ�MŠM˜5˜(Ñ#Ô#Ð#Ð#à”-×'Ò'ØØ”ØØÔ)Ø”*Ø%Ø”Kð (ñ 
ô 
ˆð & a a aœjˆÔð
 Ôð 	.Ø�NŠN˜3Ô,Ñ-Ô-Ð-ØÔ(Ð.¨Bˆ
ð ”<ÐI 4¤=×#@Ò#@ÀÑ#IÔ#IˆàŒ×(Ò(ØØØ×(Ò(¨Ñ-Ô-ØÔ)Ø!$Ô!9Ø%Ø×2Ò2°3Ñ7Ô7Ø”*Ø”Ø ð 	)ñ 	
ô 	
ð 	
ð 	
ð 	
r   c                 óú  — g }g }i }| j         rt          j        d¦  «         | j         sd| j        v s	d|j        v rd}nd}|D ]{}t          j                             |¦  «        \  }}	|	dk    r<|                     |dz   |z   ¦  «         |                     |¦  «         |d         ||<   Œf|                     |¦  «         Œ||s|S | j        p|  	                    ¦   «         }
|
dg}| 
                    | j        ¦  «         | j         r|                     d¦  «         | j        s|j        D ]}|                     |¦  «         Œ|D ];}||         }t          j        d	||¦  «         |                      |d
||gz   ¦  «         Œ<|S )züWalk the list of source files in 'sources', looking for SWIG
        interface (.i) files.  Run SWIG on all that are found, and
        return a modified 'sources' list with SWIG source files replaced
        by the generated C (or C++) files.
        z/--swig-cpp is deprecated - use --swig-opts=-c++z-c++z.cppz.cz.iÚ_wrapéÿÿÿÿz-pythonzswigging %s to %sz-o)r@   r   r¥   rA   rk   rq   Úsplitextrp   r?   Ú	find_swigrs   rÝ   Úspawn)rD   r›   Ú	extensionÚnew_sourcesrÞ   Úswig_targetsÚ
target_extÚsourceÚbaser®   r?   Úswig_cmdÚoÚtargets                 r   rÞ   zbuild_ext.swig_sourcesJ  sÔ  € ð ˆØˆØˆð Œ=ð 	KÝŒKÐIÑJÔJÐJð ŒMð	à˜$œ.Ð(Ð(Ø˜)Ô-Ð-Ð-àˆJˆJàˆJàð 	+ð 	+ˆFÝœ'×*Ò*¨6Ñ2Ô2‰KˆT�3Ø�dŠ{ˆ{Ø×"Ò" 4¨'¡>°JÑ#>Ñ?Ô?Ð?Ø×#Ò# FÑ+Ô+Ð+Ø'2°2¤�˜VÑ$Ð$à×"Ò" 6Ñ*Ô*Ð*Ð*àð 	ØÐàŒyÐ,˜DŸNšNÑ,Ô,ˆØ˜)Ð$ˆØ�Š˜œÑ'Ô'Ð'ØŒ=ð 	$Ø�OŠO˜FÑ#Ô#Ð#ð Œ~ð 	#ØÔ(ð #ð #�Ø—’ Ñ"Ô"Ð"Ð"à"ð 	:ð 	:ˆFØ! &Ô)ˆFÝŒHÐ(¨&°&Ñ9Ô9Ð9Ø�JŠJ�x 4¨°Ð"8Ñ8Ñ9Ô9Ð9Ð9àÐr   c                 ó  — t           j        dk    rdS t           j        dk    rMdD ]H}t           j                             d|z  d¦  «        }t           j                             |¦  «        r|c S ŒIdS t          dt           j        z  ¦  «        ‚)z›Return the name of the SWIG executable.  On Unix, this is
        just "swig" -- it should be in the PATH.  Tries a bit harder on
        Windows.
        Úposixr?   rK   )z1.3z1.2z1.1z	c:\swig%szswig.exez>I don't know how to find (much less run) SWIG on platform '%s')rk   ru   rq   rr   Úisfiler
   )rD   ÚversÚfns      r   rí   zbuild_ext.find_swigƒ  s˜   € õ
 Œ7�gÒÐØ�6ÝŒW˜Š_ˆ_ð .ð "ð "�Ý”W—\’\ ,°Ñ"5°zÑBÔB�Ý”7—>’> "Ñ%Ô%ð Ø�I�I�Iðð "�zå(ð#Ý%'¤Wñ-ñô ð r   c                 ó*  — |                       |¦  «        }|                     d¦  «        }|                      |d         ¦  «        }| j        sDt	          j        j        |dd…         |gz   Ž }t          j                             | j        |¦  «        S d                     |dd…         ¦  «        }|                      d¦  «        }t          j         	                    | 
                    |¦  «        ¦  «        }t          j                             ||¦  «        S )z¡Returns the path of the filename for a given extension.

        The file is located in `build_lib` or directly in the package
        (inplace option).
        rW   rë   Nr   Úbuild_py)Úget_ext_fullnamerj   Úget_ext_filenamer    rk   rq   rr   r3   rŒ   ÚabspathÚget_package_dir)rD   r¯   ÚfullnameÚmodpathÚfilenamer6   rþ   Úpackage_dirs           r   r¹   zbuild_ext.get_ext_fullpathœ  sç   € ð ×(Ò(¨Ñ2Ô2ˆØ—.’. Ñ%Ô%ˆØ×(Ò(¨°¬Ñ5Ô5ˆàŒ|ð 	:õ ”w”| W¨S¨b¨S¤\°X°JÑ%>Ð?ˆHÝ”7—<’< ¤°Ñ9Ô9Ð9ð —(’(˜7 1 R 4œ=Ñ)Ô)ˆØ×-Ò-¨jÑ9Ô9ˆÝ”g—o’o h×&>Ò&>¸wÑ&GÔ&GÑHÔHˆõ Œw�|Š|˜K¨Ñ2Ô2Ð2r   c                 ó.   — | j         €|S | j         dz   |z   S )zSReturns the fullname of a given extension name.

        Adds the `package.` prefixNrW   )r6   )rD   r¯   s     r   rÿ   zbuild_ext.get_ext_fullname·  s#   € ð Œ<ÐØˆOà”< #Ñ%¨Ñ0Ð0r   c                 óz   — ddl m} |                     d¦  «        } |d¦  «        }t          j        j        |Ž |z   S )z¦Convert the name of an extension (eg. "foo.bar") into the name
        of the file from which it will be loaded (eg. "foo/bar.so", or
        "foo\bar.pyd").
        r   ©rz   rW   Ú
EXT_SUFFIX)rG   rz   rj   rk   rq   rr   )rD   r¯   rz   ræ   Ú
ext_suffixs        r   r   zbuild_ext.get_ext_filenameÀ  sJ   € ð
 	/Ð.Ð.Ð.Ð.Ð.à—>’> #Ñ&Ô&ˆØ#�^ LÑ1Ô1ˆ
ÝŒwŒ|˜XÐ&¨Ñ3Ð3r   c                 óv  — |j                              d¦  «        d         }	 |                     d¦  «         d|z   }nO# t          $ rB d|                     d¦  «                             dd¦  «                             d¦  «        z   }Y nw xY wd	|z   }||j        vr|j                             |¦  «         |j        S )
a  Return the list of symbols that a shared extension has to
        export.  This either uses 'ext.export_symbols' or, if it's not
        provided, "PyInit_" + module_name.  Only relevant on Windows, where
        the .pyd file (DLL) must export the module "PyInit_" function.
        rW   rë   ÚasciiÚ_ÚU_Úpunycodeó   -ó   _ÚPyInit)ru   rj   ÚencodeÚUnicodeEncodeErrorÚreplaceÚdecoderÚ   rp   )rD   r®   ru   r€   Úinitfunc_names        r   rå   zbuild_ext.get_export_symbolsË  sÕ   € ð Œx�~Š~˜cÑ"Ô" 2Ô&ˆð	 ð �KŠK˜Ñ Ô Ð ð ˜4‘ZˆFˆFøõ "ð 	Xð 	Xð 	XØ˜DŸKšK¨
Ñ3Ô3×;Ò;¸DÀ$ÑGÔG×NÒNÈwÑWÔWÑWˆFˆFˆFð	Xøøøð
 ! 6Ñ)ˆØ Ô 2Ð2Ð2ØÔ×%Ò% mÑ4Ô4Ð4ØÔ!Ð!s   ¢= ½A	B	ÂB	c                 ó  — t           j        dk    rYddlm} t	          | j        |¦  «        s=d}| j        r|dz   }|t           j        dz	  t           j        dz	  dz  fz  }|j        |gz   S nŠdd	l	m
} d
} |d¦  «        r\t          t           d¦  «        rd}nDt           j        dk    rd}n1dt          j        v r# |d¦  «        dk    rd}n |d¦  «        dk    rd}|r |d¦  «        }|j        d|z   gz   S |j        t          j        ¦   «         z   S )zÓReturn the list of libraries to link against when building a
        shared extension.  On most platforms, this is just 'ext.libraries';
        on Windows, we add the Python library (eg. python20.dll).
        rO   r   )ÚMSVCCompilerz
python%d%dÚ_dé   é   éÿ   r	  FrX   ÚgetandroidapilevelTrS   Ú_PYTHON_HOST_PLATFORMÚANDROID_API_LEVELr   ÚMACHDEPÚ	LDVERSIONrU   )rm   rx   Ú_msvccompilerr  rh   r>   r)   Ú
hexversionr:   rG   rz   Úhasattrrk   Úenvironr   Ú	pythonlib)rD   r®   r  Útemplater(  rz   Úlink_libpythonÚ	ldversions           r   rä   zbuild_ext.get_librariesà  sm  € õ Œ<˜7Ò"Ð"Ø4Ð4Ð4Ð4Ð4Ð4å˜dœm¨\Ñ:Ô:ð 
3Ø'�Ø”:ð /Ø'¨$™�HØ$Ý”N bÑ(Ý”^ rÑ)¨TÑ1ð(ñ �	ð ”}¨	 {Ñ2Ð2ð
3ð( 3Ð2Ð2Ð2Ð2Ð2à"ˆNØˆ~Ð0Ñ1Ô1ð .å�3Ð 4Ñ5Ô5ð 	.Ø%)�N�NÝ”\ XÒ-Ð-Ø%)�N�NØ,µ´
Ð:Ð:à%�~Ð&9Ñ:Ô:¸aÒ?Ð?Ø)-˜˜Ø'˜¨	Ñ2Ô2°hÒ>Ð>Ø)-˜àð >Ø*˜N¨;Ñ7Ô7�	Ø”}¨°9Ñ(<Ð'=Ñ=Ð=àŒ}�zÔ3Ñ5Ô5Ñ5Ð5r   ) Ú__name__Ú
__module__Ú__qualname__Údescriptionrk   rl   Úsep_byr   Úuser_optionsÚboolean_optionsr   Úhelp_optionsrE   r…   r™   r³   r·   r»   r–   r½   r¾   Ú
contextlibÚcontextmanagerrÊ   rÄ   rÞ   rí   r¹   rÿ   r   rå   rä   r]   r   r   r   r   )   s  € € € € € àL€Kð( $ b¤jÑ0€FàGØQàØðØ*˜l™nœnñ-ð	
ð	
ð ØØ<¸vÑEð	
ð
 	<Ø<Ø@àØØ<¸vÑEð	
ð
 	SØTØAØLØ7Ø;ØGØAØ6Ø=ðK&€LðP HÐGÐG€Oð 
˜$Ð :¸NÐKð€Lðð ð ð0RLð RLð RLðh@ ð @ ð @ ðDY ð Y ð Y ðvð ð ðð ð ð,ð ,ð ,ð!ð !ð !ð**ð *ð *ð
 ÔðPð Pñ ÔðPðO
ð O
ð O
ðb7ð 7ð 7ðrð ð ð23ð 3ð 3ð61ð 1ð 1ð	4ð 	4ð 	4ð"ð "ð "ð*56ð 56ð 56ð 56ð 56r   r   )"Ú__doc__r4  rk   Úrerm   Úcorer   Úerrorsr   r   r   r   r	   r
   rG   r   r   r   Údep_utilr   rï   r   Úutilr   Údistutils._logr   Ú r   Úsiter   rß   r¦   r   r   r]   r   r   ú<module>r?     s”  ððð ð Ð Ð Ð Ø 	€	€	€	Ø 	€	€	€	Ø 
€
€
€
Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ?Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ø -Ð -Ð -Ð -Ð -Ð -Ø "Ð "Ð "Ð "Ð "Ð "Ø !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð ð �B”JÐUÑVÔVÐ ðð ð ðl6ð l6ð l6ð l6ð l6�ñ l6ô l6ð l6ð l6ð l6r   