§
    ZQdŸ{  ã                   óØ   — 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T 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  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)Ú*)Úcustomize_compilerÚget_python_version)Úget_config_h_filename)Únewer_group)Ú	Extension)Úget_platform)Úlog)Ú	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)Údistutils.ccompilerr   r   s    ú2/usr/lib/python3.11/distutils/command/build_ext.pyr   r      s(   € Ø2Ð2Ð2Ð2Ð2Ð2Ø€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'   r(   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_optsr(   Úparallel©Úselfs    r   Úinitialize_optionszbuild_ext.initialize_optionsj   sœ   € ØˆŒØˆŒØˆŒØˆŒØˆŒØˆŒà ˆÔØˆŒØˆŒ
ØˆŒØ ˆÔØˆŒ
Ø ˆÔØˆŒ
ØˆŒ
ØˆŒØˆŒ	ØˆŒØˆŒØˆŒ	ØˆŒˆˆr   c           
      ó$  — 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?          ¦   «         ¦  «        ¦  «         tA          t          dd ¦  «        }|r| 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    rµt          j#         $                    t          j                             t          j        d¦  «        ¦  «        rT| j                             t          j                             t          j        ddtK          ¦   «         z   d¦  «        ¦  «         n| j                             d¦  «         	 | j(        r+| j(                             d"¦  «        }d#„ |D ¦   «         | _(        | j)        r| j)                             d"¦  «        | _)        | j*        €g | _*        n| j*                             d$¦  «        | _*        | j+        rÖt          j                             tX          d¦  «        }t          j                             tX          d¦  «        }	t          j         -                    |¦  «        r| j	                             |¦  «         t          j         -                    |	¦  «        r4| j                             |	¦  «         | j                             |	¦  «         t          | j.        t          ¦  «        r9	 t_          | j.        ¦  «        | _.        d S # t`          $ r tc          d%¦  «        ‚w xY wd S )&Nr   )Ú	sysconfigÚbuild)r+   r+   )r-   r-   )r6   r6   )r!   r!   )r#   r#   )r:   r:   )r,   r,   é   )Úplat_specificÚincluder2   r5   ÚntÚlibsÚDebugÚReleaseÚ_homeÚwin32é   ÚPCbuildé   ÚcygwinÚbinÚlibÚpythonÚconfigú.FÚ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)2Ú	distutilsr?   Úset_undefined_optionsr.   ÚdistributionÚext_packageÚext_modulesr*   Úget_python_incr/   Ú
isinstanceÚstrÚsplitÚosÚpathsepÚsysÚexec_prefixÚbase_exec_prefixÚappendÚpathÚjoinÚextendÚensure_string_listr2   r3   r4   ÚnameÚprefixr!   r-   Údirnamer   Úgetattrr,   ÚplatformÚ
executableÚ
startswithr   Úget_config_varÚpython_buildr0   r1   r9   r(   r   Úisdirr:   ÚintÚ
ValueErrorÚDistutilsOptionError)
r<   r?   Ú
py_includeÚplat_py_includeÚ	_sys_homeÚsuffixÚnew_libÚdefinesÚuser_includeÚuser_libs
             r   Úfinalize_optionszbuild_ext.finalize_options‚   s   € Ø'Ð'Ð'Ð'Ð'Ð'à×"Ò" 7Ø#=Ø#?Ø#;Ø#5Ø#5Ø#;Ø#=ñ	%ô 	%ð 	%ð Œ<ÐØÔ,Ô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Ò(Ð(ØÔ×$Ò$Ø×%Ò%¥b¤g¤oÑ6Ô6ñ8ô 8ð 8ð 	×Ò Ñ,Ô,Ð,Ø×Ò Ñ/Ô/Ð/ð Œ>Ð!Øˆ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Ý¥ W¨dÑ3Ô3ˆIØð 4ØÔ!×(Ò(¨Ñ3Ô3Ð3ð Œ~ Ò(Ð(Ø ��ð œ¨¨¨Ô+�Ý”g—l’l¥3¤?°IÑ>Ô>ˆGØð 8Ýœ'Ÿ,š, w°Ñ7Ô7�ØÔ×$Ò$ WÑ-Ô-Ð-õ Œ<˜˜˜Ô˜xÒ'Ð'ÝŒ~×(Ò(­¬¯ªµc´oÀuÑ)MÔ)MÑNÔNð .àÔ!×(Ò(­¬¯ªµc´jÀ%Ø6>ÕASÑAUÔAUÑ6UØ6>ñ*@ô *@ñ Aô Að Að Að
 Ô!×(Ò(¨Ñ-Ô-Ð-ð
	.ð Œ;ð 	@Ø”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   Û[3 Û3\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)r6   ÚverboseÚdry_runr#   rD   )#r   r‡   r*   r_   Úhas_c_librariesÚget_finalized_commandr2   rn   Úget_library_namesr3   rk   rˆ   r6   r‰   rŠ   r#   r   rf   rp   r,   r
   Ú
initializer/   Úset_include_dirsr0   Údefine_macror1   Úundefine_macroÚset_librariesÚset_library_dirsr4   Úset_runtime_library_dirsr5   Úset_link_objectsÚbuild_extensions)r<   r‡   rˆ   rp   ÚvalueÚmacros         r   Úrunzbuild_ext.run  s2  € Ø4Ð4Ð4Ð4Ð4Ð4ð Œð 	ØˆFð
 Ô×,Ò,Ñ.Ô.ð 	<Ø×3Ò3°LÑAÔAˆJØŒN×!Ò! *×">Ò">Ñ"@Ô"@Ð"FÀBÑGÔGÐGØÔ×$Ò$ ZÔ%:Ñ;Ô;Ð;ð %˜¨d¬mØ-1¬\Ø-1¬\Ø+/¬:ð7ñ 7ô 7ˆŒõ 	˜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 instancesé   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)r/   r3   r2   Úextra_objectsÚextra_compile_argsÚextra_link_argsNr4   Údef_filez9'def_file' element of build info dict no longer supportedÚmacros)rA   r›   z9'macros' element of build info dict must be 1- or 2-tuplerA   r   )rc   ÚlistÚDistutilsSetupErrorÚ	enumerater	   ÚtupleÚlenr   Úwarnrd   Úextension_name_reÚmatchÚdictÚgetÚsetattrÚruntime_library_dirsÚdefine_macrosÚundef_macrosrk   )
r<   r*   r   ÚextÚext_nameÚ
build_infoÚkeyÚvalr¡   r˜   s
             r   Úcheck_extensions_listzbuild_ext.check_extensions_listV  s¡  € õ ˜*¥dÑ+Ô+ð 	PÝ%ØNñPô Pð Põ   
Ñ+Ô+ð >	 ñ >	 ‰FˆAˆsÝ˜#�yÑ)Ô)ð Øõ ˜c¥5Ñ)Ô)ð 8­S°©X¬X¸ª]¨]Ý)ð7ñ8ô 8ð 8ð $'Ñ ˆH�jåŒHð ?à@HñJô Jð Jõ ˜x­Ñ-Ô-ð @Ý%×+Ò+¨HÑ5Ô5ð@å)ð?ñ@ô @ð @õ ˜j­$Ñ/Ô/ð <Ý)ð;ñ<ô <ð <õ ˜H j°Ô&;Ñ<Ô<ˆCð+ð +ð +�ð !—n’n SÑ)Ô)�Ø�?Ý˜C  cÑ*Ô*Ð*øð (2§~¢~°gÑ'>Ô'>ˆCÔ$Ø˜ZÐ'Ð'Ý”ð /ñ 0ô 0ð 0ð
  —^’^ HÑ-Ô-ˆFØð 8Ø$&�Ô!Ø#%�Ô Ø#ð 8ð 8�EÝ& u­eÑ4Ô4ð 7½¸U¹¼ÀvÐ9MÐ9MÝ1ð6ñ7ô 7ð 7õ ˜5‘z”z Q’�ØÔ(×/Ò/°°a´Ñ9Ô9Ð9Ð9Ý˜U™œ qš˜ØÔ)×0Ò0°Ñ7Ô7Ð7øàˆJ�q‰M‰Mð}>	 ð >	 r   c                 ó†   — |                       | j        ¦  «         g }| j        D ]}|                     |j        ¦  «         Œ|S ©N)rµ   r*   rn   rœ   )r<   Ú	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µ   r*   rk   Úget_ext_fullpathrp   )r<   Ú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µ   r*   r:   Ú_build_extensions_parallelÚ_build_extensions_serialr;   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 rX   )ÚsubmitÚbuild_extension)rY   r°   Úexecutorr<   s     €€r   r[   z8build_ext._build_extensions_parallel.<locals>.<listcomp>Ñ  s:   ø€ ð 3ð 3ð 3Øð  —’ tÔ';¸SÑAÔAð 3ð 3ð 3r   )r:   rf   Ú	cpu_countÚconcurrent.futuresrÂ   ÚImportErrorrÀ   r*   ÚzipÚ_filter_build_errorsÚresult)r<   Ú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ð 	!¸ð3ð 3ð 3ð 3ð 3Ø"&¤/ð3ñ 3ô 3ˆ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·   )r*   rÌ   rÆ   )r<   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$ r3}|j        s‚ |                      d|j        ›d|›�¦  «         Y d }~d S d }~ww xY w)Nzbuilding extension "z
" failed: )ÚCCompilerErrorÚDistutilsErrorÚCompileErrorÚoptionalr§   rp   )r<   r°   Úes      r   rÌ   zbuild_ext._filter_build_errorsÜ  s“   è è € ð	%ØˆEˆEˆEˆEˆEøÝ¥µÐ=ð 	%ð 	%ð 	%Ø”<ð ØØ�IŠIˆIØ”x�x�x  ð$ñ %ô %ð %ð %ð %ð %ð %ð %ð %øøøøð	%øøøs   „
 ŠA¡(AÁ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¡   r/   r!   Úextra_postargsÚdepends)r2   r3   r­   rÛ   Úexport_symbolsr!   r-   Útarget_lang)"rœ   rc   r¢   r¥   r£   rp   Úsortedr»   rÜ   r#   r   r   r!   ÚinfoÚswig_sourcesrž   r®   r¯   rk   r6   Úcompiler-   r/   Ú_built_objectsr�   rn   rŸ   ÚlanguageÚdetect_languageÚlink_shared_objectÚget_librariesr3   r­   Úget_export_symbols)
r<   r°   rœ   Úext_pathrÜ   Ú
extra_argsr¡   r1   Úobjectsrä   s
             r   rÆ   zbuild_ext.build_extensionæ  s  € Ø”+ˆØˆ?¥*¨Wµt½U°mÑ"DÔ"Dˆ?Ý%ð/à14´ñ:ñ;ô ;ð ;õ
 ˜‘/”/ˆà×(Ò(¨¬Ñ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˜(Ñ#Ô#Ð#Ð#à”-×'Ò'¨Ø48´OØ06Ø69Ô6FØ/3¬zØ8BØ14´ð (ñ >ô >ˆð & a a aœjˆÔð
 Ôð 	.Ø�NŠN˜3Ô,Ñ-Ô-Ð-ØÔ(Ð.¨Bˆ
ð ”<ÐI 4¤=×#@Ò#@ÀÑ#IÔ#IˆàŒ×(Ò(Ø�XØ×(Ò(¨Ñ-Ô-ØÔ)Ø!$Ô!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)r8   r   r§   r9   rf   rl   Úsplitextrk   r7   Ú	find_swigrn   rà   Úspawn)r<   rœ   Ú	extensionÚnew_sourcesrá   Úswig_targetsÚ
target_extÚsourceÚbaser°   r7   Úswig_cmdÚoÚtargets                 r   rá   zbuild_ext.swig_sources2  sÑ  € ð ˆØˆØˆð Œ=ð 	HÝŒHÐFÑGÔGÐGàŒ=ð 	˜V t¤~Ð5Ð5Ø�iÔ)Ð)Ð)Øˆ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.
        Úposixr7   rD   )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')rf   rp   rl   rm   ÚisfileÚDistutilsPlatformError)r<   ÚversÚfns      r   rð   zbuild_ext.find_swigh  s˜   € õ
 Œ7�gÒÐØ�6ÝŒW˜Š_ˆ_ð .ð "ð "�Ý”W—\’\ ,°Ñ"5°zÑBÔB�Ý”7—>’> "Ñ%Ô%ð Ø�I�I�Iðð "�zå(ð%Ý')¤wñ/ñ0ô 0ð 0r   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).
        rR   rî   Nr   Úbuild_py)Úget_ext_fullnamere   Úget_ext_filenamer   rf   rl   rm   r+   rŒ   ÚabspathÚget_package_dir)r<   r±   ÚfullnameÚmodpathÚfilenamer.   r  Úpackage_dirs           r   r»   zbuild_ext.get_ext_fullpath€  sç   € ð ×(Ò(¨Ñ2Ô2ˆØ—.’. Ñ%Ô%ˆØ×(Ò(¨°¬Ñ5Ô5ˆàŒ|ð 	:õ ”w”| W¨S¨b¨S¤\°8°*Ñ%<Ð=ˆ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.` prefixNrR   )r.   )r<   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   ©rw   rR   Ú
EXT_SUFFIX)Údistutils.sysconfigrw   re   rf   rl   rm   )r<   r±   rw   ré   Ú
ext_suffixs        r   r  zbuild_ext.get_ext_filename¤  sJ   € ð
 	7Ð6Ð6Ð6Ð6Ð6Ø—>’> #Ñ&Ô&ˆØ#�^ LÑ1Ô1ˆ
ÝŒwŒ|˜XÐ&¨Ñ3Ð3r   c                 ór  — d|j                              d¦  «        d         z   }	 |                     d¦  «         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.
        Ú_rR   rî   Úasciir   Úpunycodeó   -ó   _ÚPyInit)rp   re   ÚencodeÚUnicodeEncodeErrorÚreplaceÚdecoderÝ   rk   )r<   r°   r€   Úinitfunc_names       r   rè   zbuild_ext.get_export_symbols®  sÐ   € ð �s”x—~’~ cÑ*Ô*¨2Ô.Ñ.ˆð	Yð �MŠM˜'Ñ"Ô"Ð"Ð"øÝ!ð 	Yð 	Yð 	YØ˜6Ÿ=š=¨Ñ4Ô4×<Ò<¸TÀ4ÑHÔH×OÒOÐPWÑXÔXÑXˆFˆFˆFð	Yøøøð ! 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
}	 |r |d¦  «        }|j        d|z   gz   S |j        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).
        rI   r   )ÚMSVCCompilerz
python%d%dÚ_dé   é   éÿ   r  FrS   ÚgetandroidapilevelTrM   Ú_PYTHON_HOST_PLATFORMÚANDROID_API_LEVELÚMACHDEPÚ	LDVERSIONrP   )rh   rt   Údistutils._msvccompilerr  rc   r6   r!   Ú
hexversionr2   r  rw   Úhasattrrf   Úenviron)r<   r°   r  ÚtemplateÚ	pythonlibrw   Úlink_libpythonÚ	ldversions           r   rç   zbuild_ext.get_librariesÁ  sß   € õ Œ<˜7Ò"Ð"Ø<Ð<Ð<Ð<Ð<Ð<Ý˜dœm¨\Ñ:Ô:ð 3Ø'�Ø”:ð /Ø'¨$™�HØ%Ýœ¨"Ñ,­s¬~ÀÑ/CÀtÑ.KÐLñM�	ð ”}¨	 {Ñ2Ð2ð3ð$ ;Ð:Ð:Ð:Ð:Ð:Ø"ˆNð.ð ð >Ø*˜N¨;Ñ7Ô7�	Ø”}¨°9Ñ(<Ð'=Ñ=Ð=àŒ}Ðr   ) Ú__name__Ú
__module__Ú__qualname__Údescriptionrf   rg   Úsep_byr
   Úuser_optionsÚboolean_optionsr   Úhelp_optionsr=   r…   r™   rµ   r¹   r½   r–   r¿   rÀ   Ú
contextlibÚcontextmanagerrÌ   rÆ   rá   rð   r»   r  r  rè   rç   rX   r   r   r   r   !   s  € € € € € àL€Kð( $ b¤jÑ0€Fð	5ð	>à	�sð
Ø'˜<™>œ>ñ
*ð	+ð	9ð 
˜#Ø	9¸FÑ	Bð	Dð	,ð	.ð	.à	˜#Ø	9¸FÑ	Bð	Dð	Dð	?ð	4ð	?ð	&ð	*ð	6ð	.ð	(ð	0ðO)
€LðV HÐGÐG€Oð 
˜$Ø	# ^ð	5ð
€Lð
ð ð ð0RLð RLð RLðh> ð > ð > ð@L ð L ð L ð\ð ð ðð ð ð,ð ,ð ,ð!ð !ð !ð(*ð *ð *ð
 Ôð%ð %ñ Ôð%ðJ"ð J"ð J"ðX4ð 4ð 4ðl0ð 0ð 0ð03ð 3ð 3ð61ð 1ð 1ð4ð 4ð 4ð"ð "ð "ð&1ð 1ð 1ð 1ð 1r   r   )Ú__doc__r8  rf   Úrerh   Údistutils.corer   Údistutils.errorsr  r   r   r   Údistutils.dep_utilr   Údistutils.extensionr	   Údistutils.utilr
   r]   r   Úsiter   râ   r¨   r   r   rX   r   r   ú<module>rB     s@  ððð ð Ð Ð Ð Ø 	€	€	€	Ø 	€	€	€	Ø 
€
€
€
Ø "Ð "Ð "Ð "Ð "Ð "Ø Ð Ð Ð Ø FÐ FÐ FÐ FÐ FÐ FÐ FÐ FØ 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø *Ð *Ð *Ð *Ð *Ð *Ø )Ð )Ð )Ð )Ð )Ð )Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð ð �B”JØ;ñ=ô =Ð ðð ð ð
Qð Qð Qð Qð Q�ñ Qô Qð Qð Qð Qr   