Ë
    ˜šã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­ 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j0                  d«      Zd„ Z G d„ de«      Zy)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é   )Ú
py37compat)Ú	USER_BASEz3^[a-zA-Z_][a-zA-Z_0-9]*(\.[a-zA-Z_][a-zA-Z_0-9]*)*$c                  ó   — ddl m}   | «        y )Nr   ©Úshow_compilers)Údistutils.ccompilerr   r   s    úr/var/www/html/python-recuperauto-other/env/lib/python3.12/site-packages/setuptools/_distutils/command/build_ext.pyr   r      s   € Ý2ÙÕó    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y)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 | _        y )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_optionsk   s˜   € ØˆŒØˆŒØˆŒØˆŒØˆŒØˆŒà ˆÔØˆŒØˆŒ
ØˆŒØ ˆÔØˆŒ
Ø ˆÔØˆŒ
ØˆŒ
ØˆŒØˆŒ	ØˆŒØˆŒØˆŒ	Øˆ�r   c           
      ó‚  — ddl m} | j                  ddddddd	d
«       | j                  €| j                  j
                  | _        | j                  j                  | _        |j                  «       }|j                  d¬«      }| j                  €| j                  j                  xs g | _	        t        | j                  t        «      r.| j                  j                  t        j                  «      | _	        t        j                   t        j"                  k7  rG| j                  j%                  t        j&                  j)                  t        j                   d«      «       | j                  j+                  |j                  t        j&                  j                  «      «       ||k7  rB| j                  j+                  |j                  t        j&                  j                  «      «       | j-                  d«       | j-                  d«       | j.                  €g | _        | j0                  €g | _        nHt        | j0                  t        «      r.| j0                  j                  t        j                  «      | _        | j2                  €g | _        nHt        | j2                  t        «      r.| j2                  j                  t        j                  «      | _        t        j4                  dk(  �r| j0                  j%                  t        j&                  j)                  t        j                   d«      «       t        j"                  t        j6                  k7  rG| j0                  j%                  t        j&                  j)                  t        j"                  d«      «       | j8                  r0t        j&                  j)                  | j:                  d«      | _        n/t        j&                  j)                  | j:                  d«      | _        | j                  j%                  t        j&                  j=                  t?        «       «      «       | j0                  j%                  t        j"                  «       | j@                  dk(  rd}n| j@                  dd  }t        j&                  j)                  t        j                   d«      }|r t        j&                  j)                  ||«      }| j0                  j%                  |«       t        jB                  d d dk(  r||jD                  sU| j0                  j%                  t        j&                  j)                  t        j6                  ddtG        «       z   d«      «       n| j0                  j%                  d«       |jI                  d«      rR|jD                  s+| j0                  j%                  |jI                  d«      «       n| j0                  j%                  d«       | jJ                  r2| jJ                  j                  d«      }|D �cg c]  }|d f‘Œ c}| _%        | jL                  r | jL                  j                  d«      | _&        | jN                  €g | _'        n | jN                  j                  d!«      | _'        | jP                  r×t        j&                  j)                  tR        d«      }t        j&                  j)                  tR        d«      }	t        j&                  jU                  |«      r| j                  j%                  |«       t        j&                  jU                  |	«      r6| j0                  j%                  |	«       | j2                  j%                  |	«       t        | jV                  t        «      r	 tY        | jV                  «      | _+        y y c c}w # tZ        $ r t]        d"«      ‚w xY w)#Nr   )Ú	sysconfigÚbuild)r-   r-   )r/   r/   )r8   r8   )r#   r#   )r%   r%   )r<   r<   )r.   r.   r   )Úplat_specificÚincluder4   r7   ÚntÚlibsÚDebugÚReleaseÚwin32é   ÚPCbuildé   ÚcygwinÚlibÚpythonÚconfigú.ÚPy_ENABLE_SHAREDÚLIBDIRú,Ú1ú zparallel should be an integer)/Ú	distutilsrA   Úset_undefined_optionsr0   ÚdistributionÚext_packageÚext_modulesr,   Úget_python_incr1   Ú
isinstanceÚstrÚsplitÚosÚpathsepÚsysÚexec_prefixÚbase_exec_prefixÚappendÚpathÚjoinÚextendÚensure_string_listr4   r5   r6   ÚnameÚprefixr#   r/   Údirnamer   r.   ÚplatformÚpython_buildr   Úget_config_varr2   r3   r;   r*   r   Úisdirr<   ÚintÚ
ValueErrorÚDistutilsOptionError)
r>   rA   Ú
py_includeÚplat_py_includeÚsuffixÚnew_libÚdefinesÚsymbolÚuser_includeÚuser_libs
             r   Úfinalize_optionszbuild_ext.finalize_optionsƒ   sx  € Ý'à×"Ñ" 7Ø#=Ø#?Ø#;Ø#5Ø#5Ø#;Ø#=ô	%ð �<‰<ÐØ×,Ñ,×8Ñ8ˆDŒLà×+Ñ+×7Ñ7ˆŒð ×-Ñ-Ó/ˆ
Ø#×2Ñ2ÀÐ2ÓCˆØ×ÑÐ$Ø $× 1Ñ 1× >Ñ >Ò DÀ"ˆDÔÜ�d×'Ñ'¬Ô-Ø $× 1Ñ 1× 7Ñ 7¼¿
¹
Ó CˆDÔô �?‰?œc×2Ñ2Ò2Ø×Ñ×$Ñ$¤R§W¡W§\¡\´#·/±/À9Ó%MÔNð 	×Ñ× Ñ  ×!1Ñ!1´"·'±'·/±/Ó!BÔCØ˜jÒ(Ø×Ñ×$Ñ$Ø×%Ñ%¤b§g¡g§o¡oÓ6ô8ð 	×Ñ Ô,Ø×Ñ Ô/ð �>‰>Ð!ØˆDŒNØ×ÑÐ$Ø "ˆDÕÜ˜×)Ñ)¬3Ô/Ø $× 1Ñ 1× 7Ñ 7¼¿
¹
Ó CˆDÔà�:‰:ÐØˆD�JÜ˜Ÿ
™
¤CÔ(ØŸ™×)Ñ)¬"¯*©*Ó5ˆDŒJô
 �7‰7�d‹?ð ×Ñ×$Ñ$¤R§W¡W§\¡\´#·/±/À6Ó%JÔKÜ×#Ñ#¤s§z¡zÒ1Ø×!Ñ!×(Ñ(¬¯©¯©´c×6JÑ6JÈFÓ)SÔTØ�zŠzÜ"$§'¡'§,¡,¨t¯©ÀÓ"H�•ä"$§'¡'§,¡,¨t¯©À	Ó"J�”ð ×Ñ×$Ñ$¤R§W¡W§_¡_Ô5JÓ5LÓ%MÔNØ×Ñ×$Ñ$¤S×%9Ñ%9Ô:ð �~‰~ Ò(Ø ‘ð Ÿ™¨¨Ð+�Ü—g‘g—l‘l¤3§?¡?°IÓ>ˆGÙÜŸ'™'Ÿ,™, w°Ó7�Ø×Ñ×$Ñ$ WÔ-ô �<‰<˜˜Ð˜xÒ'Ø×)Ò)à×!Ñ!×(Ñ(¬¯©¯©´c·j±jÀ%Ø6>ÔASÓAUÑ6UØ6>ó*@õ Að
 ×!Ñ!×(Ñ(¨Ô-ð
 ×$Ñ$Ð%7Ô8Ø×)Ò)à×!Ñ!×(Ñ(¨×)AÑ)AÀ(Ó)KÕLð ×!Ñ!×(Ñ(¨Ô-ð �;Š;Ø—k‘k×'Ñ'¨Ó,ˆGØ7>Ö?¨V˜F Cš=Ò?ˆDŒKð
 �:Š:ØŸ™×)Ñ)¨#Ó.ˆDŒJà�>‰>Ð!ØˆD�Nà!Ÿ^™^×1Ñ1°#Ó6ˆDŒNð �9Š9ÜŸ7™7Ÿ<™<¬	°9Ó=ˆLÜ—w‘w—|‘|¤I¨uÓ5ˆHÜ�w‰w�}‰}˜\Ô*Ø×!Ñ!×(Ñ(¨Ô6Ü�w‰w�}‰}˜XÔ&Ø×!Ñ!×(Ñ(¨Ô2Ø—
‘
×!Ñ! (Ô+ä�d—m‘m¤SÔ)ðLÜ # D§M¡MÓ 2�•ð *ùò/ @øô4 ò LÜ*Ð+JÓKÐKðLús   Ø^$Þ^) Þ)^>c                 óP  — ddl m} | j                  sy | j                  j	                  «       rc| j                  d«      }| j                  j                  |j                  «       xs g «       | j                  j                  |j                  «        || j                  | j                  | j                  | j                  ¬«      | _        t!        | j                  «       t"        j$                  dk(  r<| j&                  t)        «       k7  r%| j                  j+                  | j&                  «       | j,                  �%| j                  j/                  | j,                  «       | j0                  �0| j0                  D ]!  \  }}| j                  j3                  ||«       Œ# | j4                  �,| j4                  D ]  }| j                  j7                  |«       Œ | j                  �%| j                  j9                  | j                  «       | j                  �%| j                  j;                  | j                  «       | j<                  �%| j                  j?                  | j<                  «       | j@                  �%| j                  jC                  | j@                  «       | jE                  «        y )Nr   )Únew_compilerÚ
build_clib)r8   ÚverboseÚdry_runr%   rE   )#r   r~   r,   rY   Úhas_c_librariesÚget_finalized_commandr4   rh   Úget_library_namesr5   re   r   r8   r€   r�   r%   r   r`   rj   r.   r
   Ú
initializer1   Úset_include_dirsr2   Údefine_macror3   Úundefine_macroÚset_librariesÚset_library_dirsr6   Úset_runtime_library_dirsr7   Úset_link_objectsÚbuild_extensions)r>   r~   r   rj   ÚvalueÚmacros         r   Úrunzbuild_ext.run  sö  € Ý4ð �ŠØð
 ×Ñ×,Ñ,Ô.Ø×3Ñ3°LÓAˆJØ�N‰N×!Ñ! *×">Ñ">Ó"@Ò"FÀBÔGØ×Ñ×$Ñ$ Z×%:Ñ%:Ô;ñ %¨d¯m©mØ-1¯\©\Ø-1¯\©\Ø+/¯:©:ô7ˆŒô 	˜4Ÿ=™=Ô)ô �7‰7�dŠ?˜tŸ~™~´³Ò?Ø�M‰M×$Ñ$ T§^¡^Ô4ð ×ÑÐ(Ø�M‰M×*Ñ*¨4×+<Ñ+<Ô=Ø�;‰;Ð"à!%§¡ò 8‘��uØ—‘×*Ñ*¨4°Õ7ð8à�:‰:Ð!ØŸ™ò 4�Ø—‘×,Ñ,¨UÕ3ð4à�>‰>Ð%Ø�M‰M×'Ñ'¨¯©Ô7Ø×ÑÐ(Ø�M‰M×*Ñ*¨4×+<Ñ+<Ô=Ø�:‰:Ð!Ø�M‰M×2Ñ2°4·:±:Ô>Ø×ÑÐ(Ø�M‰M×*Ñ*¨4×+<Ñ+<Ô=ð 	×ÑÕr   c                 óÈ  — t        |t        «      st        d«      ‚t        |«      D �]¸  \  }}t        |t        «      rŒt        |t
        «      rt        |«      dk7  rt        d«      ‚|\  }}t        j                  d|«       t        |t        «      rt        j                  |«      st        d«      ‚t        |t        «      st        d«      ‚t	        ||d   «      }dD ]#  }|j                  |«      }|€Œt        |||«       Œ% |j                  d
«      |_        d|v rt        j                  d«       |j                  d«      }|r”g |_        g |_        |D ]�  }	t        |	t
        «      rt        |	«      dv st        d«      ‚t        |	«      dk(  r|j"                  j%                  |	d   «       ŒXt        |	«      dk(  sŒg|j                   j%                  |	«       Œƒ |||<   �Œ» y	)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)r1   r5   r4   Úextra_objectsÚextra_compile_argsÚextra_link_argsNr6   Ú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   )r]   ÚlistÚDistutilsSetupErrorÚ	enumerater	   ÚtupleÚlenr   Úwarnr^   Úextension_name_reÚmatchÚdictÚgetÚsetattrÚruntime_library_dirsÚdefine_macrosÚundef_macrosre   )
r>   r,   r   ÚextÚext_nameÚ
build_infoÚkeyÚvalr˜   r�   s
             r   Úcheck_extensions_listzbuild_ext.check_extensions_listU  sö  € ô ˜*¤dÔ+Ü%ØNóPð Pô   
Ó+ó >	 ‰FˆAˆsÜ˜#œyÔ)Øô ˜c¤5Ô)¬S°«X¸ª]Ü)ð7ó8ð 8ð $'Ñ ˆH�jä�H‰Hð ?à@HôJô ˜x¬Ô-Ü%×+Ñ+¨HÔ5Ü)ð?ó@ð @ô ˜j¬$Ô/Ü)ð;ó<ð <ô ˜H j°Ñ&;Ó<ˆCð+ò +�ð !—n‘n SÓ)�Ø‘?Ü˜C  cÕ*ð+ð (2§~¡~°gÓ'>ˆCÔ$Ø˜ZÑ'Ü—‘ð /ô 0ð
  —^‘^ HÓ-ˆFÙØ$&�Ô!Ø#%�Ô Ø#ò 8�EÜ& u¬eÔ4¼¸U»ÀvÑ9MÜ1ð6ó7ð 7ô ˜5“z Q’Ø×(Ñ(×/Ñ/°°a±Õ9Ü˜U› q›Ø×)Ñ)×0Ñ0°Õ7ð8ð  ˆJ�q‹Mñ}>	 r   c                 ó˜   — | j                  | j                  «       g }| j                  D ]  }|j                  |j                  «       Œ |S ©N)r¬   r,   rh   r“   )r>   Ú	filenamesr§   s      r   Úget_source_fileszbuild_ext.get_source_files£  sF   € Ø×"Ñ" 4§?¡?Ô3Øˆ	ð —?‘?ò 	*ˆCØ×Ñ˜SŸ[™[Õ)ð	*àÐr   c                 ó¶   — | j                  | j                  «       g }| j                  D ],  }|j                  | j                  |j                  «      «       Œ. |S r®   )r¬   r,   re   Úget_ext_fullpathrj   )r>   Úoutputsr§   s      r   Úget_outputszbuild_ext.get_outputs¬  sP   € ð 	×"Ñ" 4§?¡?Ô3ð
 ˆØ—?‘?ò 	<ˆCØ�N‰N˜4×0Ñ0°·±Ó:Õ;ð	<àˆr   c                 ó”   — | j                  | j                  «       | j                  r| j                  «        y | j	                  «        y r®   )r¬   r,   r<   Ú_build_extensions_parallelÚ_build_extensions_serialr=   s    r   r�   zbuild_ext.build_extensionsº  s3   € à×"Ñ" 4§?¡?Ô3Ø�=Š=Ø×+Ñ+Õ-à×)Ñ)Õ+r   c                 ó  — | j                   }| j                   du rt        j                  «       }	 ddlm} |€| j                  «        y  |¬«      5 }| j                  D �cg c]  }|j                  | j                  |«      ‘Œ  }}t        | j                  |«      D ]/  \  }}| j                  |«      5  |j                  «        d d d «       Œ1 	 d d d «       y # t
        $ r d }Y Œ¯w xY wc c}w # 1 sw Y   Œ[xY w# 1 sw Y   y xY w)NTr   )ÚThreadPoolExecutor)Úmax_workers)r<   r`   Ú	cpu_countÚconcurrent.futuresr¹   ÚImportErrorr·   r,   ÚsubmitÚbuild_extensionÚzipÚ_filter_build_errorsÚresult)r>   Úworkersr¹   Úexecutorr§   ÚfuturesÚfuts          r   r¶   z$build_ext._build_extensions_parallelÂ  sÿ   € Ø—-‘-ˆØ�=‰=˜DÑ Ü—l‘l“nˆGð	Ý=ð ˆ?Ø×)Ñ)Ô+Øá¨GÔ4ð 	!¸à"&§/¡/ö3Øð  —‘ t×';Ñ';¸SÕAð 3ˆGð 3ä §¡°Ó9ò !‘��SØ×.Ñ.¨sÓ3ñ !Ø—J‘J”L÷!ð !ñ!÷	!ð 	!øô ò 	ØŠGð	üò3÷!ð !ú÷		!ð 	!úsG   °C ÁC:Á!#C)Â/C:Â3C.Ã
C:ÃC&Ã%C&Ã)C:Ã.C7Ã3C:Ã:Dc                 ó”   — | j                   D ]-  }| j                  |«      5  | j                  |«       d d d «       Œ/ y # 1 sw Y   Œ:xY wr®   )r,   rÁ   r¿   )r>   r§   s     r   r·   z"build_ext._build_extensions_serialÖ  sK   € Ø—?‘?ò 	*ˆCØ×*Ñ*¨3Ó/ñ *Ø×$Ñ$ SÔ)÷*ð *ñ	*÷*ð *ús	   ¡>¾A	c              #   ó´   K  — 	 d –— y # t         t        t        f$ r8}|j                  s‚ | j	                  d|j
                  ›d|›�«       Y d }~y d }~ww xY w­w)Nzbuilding extension "z
" failed: )ÚCCompilerErrorÚDistutilsErrorÚCompileErrorÚoptionalrž   rj   )r>   r§   Úes      r   rÁ   zbuild_ext._filter_build_errorsÛ  sM   è ø€ ð	%ÜøÜ¤´Ð=ò 	%Ø—<’<ØØ�IŠIØ—x“x¡ð$÷ %ñ %ûð	%üs*   ‚A„	 ˆA‰A�.AÁAÁAÁAc                 ó€  — |j                   }|�t        |t        t        f«      st	        d|j
                  z  «      ‚t        |«      }| j                  |j
                  «      }||j                  z   }| j                  s.t        ||d«      s!t        j                  d|j
                  «       y t        j                  d|j
                  «       | j                  ||«      }|j                  xs g }|j                   d d  }|j"                  D ]  }|j%                  |f«       Œ | j&                  j)                  || j*                  ||j,                  | j                  ||j                  ¬«      }|d d  | _        |j0                  r|j3                  |j0                  «       |j4                  xs g }|j6                  xs | j&                  j9                  |«      }	| j&                  j;                  ||| j=                  |«      |j>                  |j@                  || jC                  |«      | j                  | j*                  |	¬«
       y )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˜   r1   r#   Úextra_postargsÚdepends)r4   r5   r¤   rÑ   Úexport_symbolsr#   r/   Útarget_lang)"r“   r]   r™   rœ   rš   rj   Úsortedr²   rÒ   r%   r   r   r#   ÚinfoÚswig_sourcesr•   r¥   r¦   re   r8   Úcompiler/   r1   Ú_built_objectsr”   rh   r–   ÚlanguageÚdetect_languageÚlink_shared_objectÚget_librariesr5   r¤   Úget_export_symbols)
r>   r§   r“   Úext_pathrÒ   Ú
extra_argsr˜   r3   ÚobjectsrÚ   s
             r   r¿   zbuild_ext.build_extensionå  sõ  € Ø—+‘+ˆØˆ?¤*¨W´t¼U°mÔ"DÜ%ð/à14·±ñ:ó;ð ;ô
 ˜“/ˆà×(Ñ(¨¯©Ó2ˆØ˜CŸK™KÑ'ˆØ—
’
œk¨'°8¸WÔEÜ�I‰IÐ<¸c¿h¹hÔGØä�H‰HÐ.°·±Ô9ð
 ×#Ñ# G¨SÓ1ˆð  ×+Ñ+Ò1¨rˆ
à×"Ñ"¡1Ð%ˆØ×%Ñ%ò 	$ˆEØ�M‰M˜5˜(Õ#ð	$ð —-‘-×'Ñ'¨Ø48·O±OØ06Ø69×6FÑ6FØ/3¯z©zØ8BØ14·±ð (ó >ˆð &¡a˜jˆÔð
 ×ÒØ�N‰N˜3×,Ñ,Ô-Ø×(Ñ(Ò.¨Bˆ
ð —<‘<ÒI 4§=¡=×#@Ñ#@ÀÓ#Iˆà�‰×(Ñ(Ø�XØ×(Ñ(¨Ó-Ø×)Ñ)Ø!$×!9Ñ!9Ø%Ø×2Ñ2°3Ó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 ]k  }t        j
                  j                  |«      \  }}	|	dk(  r1|j                  |dz   |z   «       |j                  |«       |d   ||<   Œ[|j                  |«       Œm |s|S | j                  xs | j                  «       }
|
dg}|j                  | j                  «       | j                   r|j                  d«       | j                  s"|j                  D ]  }|j                  |«       Œ |D ]5  }||   }t        j                  d	||«       | j                  |d
||gz   «       Œ7 |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ž   r;   r`   rf   Úsplitextre   r9   Ú	find_swigrh   rÖ   Úspawn)r>   r“   Ú	extensionÚnew_sourcesr×   Úswig_targetsÚ
target_extÚsourceÚbaser§   r9   Úswig_cmdÚoÚtargets                 r   r×   zbuild_ext.swig_sources1  s…  € ð ˆØˆØˆð �=Š=Ü�H‰HÐFÔGà�=Š=˜V t§~¡~Ñ5Ø�i×)Ñ)Ñ)Ø‰JàˆJàò 	+ˆFÜŸ'™'×*Ñ*¨6Ó2‰KˆT�3Ø�dŠ{Ø×"Ñ" 4¨'¡>°JÑ#>Ô?Ø×#Ñ# FÔ+Ø'2°2¡�˜VÒ$à×"Ñ" 6Õ*ð	+ñ ØÐà�y‰yÒ,˜DŸN™NÓ,ˆØ˜)Ð$ˆØ�‰˜Ÿ™Ô'Ø�=Š=Ø�O‰O˜FÔ#ð �~Š~Ø×(Ñ(ò #�Ø—‘ Õ"ð#ð #ò 	:ˆFØ! &Ñ)ˆFÜ�H‰HÐ(¨&°&Ô9Ø�J‰J�x 4¨°Ð"8Ñ8Õ9ð	:ð
 Ðr   c                 ó$  — t         j                  dk(  ryt         j                  dk(  rNdD ]H  }t         j                  j                  d|z  d«      }t         j                  j	                  |«      sŒF|c S  y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.
        Úposixr9   rE   )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')r`   rj   rf   rg   ÚisfileÚDistutilsPlatformError)r>   ÚversÚfns      r   ræ   zbuild_ext.find_swigg  s€   € ô
 �7‰7�gÒØÜ�W‰W˜Š_ð .ò "�Ü—W‘W—\‘\ ,°Ñ"5°zÓB�Ü—7‘7—>‘> "Õ%Ø’Ið"ð
 "ä(ð%Ü')§w¡wñ/ó0ð 0r   c                 ó  — | j                  |«      }|j                  d«      }| j                  |d   «      }| j                  sMt	        j
                  j                  |dd |gz   Ž }t        j
                  j                  | j                  |«      S dj                  |dd «      }| j                  d«      }t        j
                  j                  |j                  |«      «      }t        j
                  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).
        rQ   rä   Nr   Úbuild_py)Úget_ext_fullnamer_   Úget_ext_filenamer   r`   rf   rg   r-   rƒ   ÚabspathÚget_package_dir)r>   r¨   ÚfullnameÚmodpathÚfilenamer0   rø   Úpackage_dirs           r   r²   zbuild_ext.get_ext_fullpath  sÑ   € ð ×(Ñ(¨Ó2ˆØ—.‘. Ó%ˆØ×(Ñ(¨°©Ó5ˆà�|Š|ô —w‘w—|‘| W¨S¨b \°8°*Ñ%<Ð=ˆHÜ—7‘7—<‘< §¡°Ó9Ð9ð —(‘(˜7 1 R˜=Ó)ˆØ×-Ñ-¨jÓ9ˆÜ—g‘g—o‘o h×&>Ñ&>¸wÓ&GÓHˆô �w‰w�|‰|˜K¨Ó2Ð2r   c                 óB   — | j                   €|S | j                   dz   |z   S )zSReturns the fullname of a given extension name.

        Adds the `package.` prefixrQ   )r0   )r>   r¨   s     r   rù   zbuild_ext.get_ext_fullnameš  s'   € ð �<‰<ÐØˆOà—<‘< #Ñ%¨Ñ0Ð0r   c                 ó~   — ddl m} |j                  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   ©ro   rQ   Ú
EXT_SUFFIX)Údistutils.sysconfigro   r_   r`   rf   rg   )r>   r¨   ro   rß   Ú
ext_suffixs        r   rú   zbuild_ext.get_ext_filename£  s7   € õ
 	7Ø—>‘> #Ó&ˆÙ# LÓ1ˆ
Ü�w‰w�|‰|˜XÐ&¨Ñ3Ð3r   c                 ód  — |j                   j                  d«      d   }	 |j                  d«       d|z   }d	|z   }||j                  vr|j                  j                  |«       |j                  S # t        $ r6 d|j                  d«      j	                  dd«      j                  d«      z   }Y Œxw xY w)
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.
        rQ   rä   ÚasciiÚ_ÚU_Úpunycodeó   -ó   _ÚPyInit)rj   r_   ÚencodeÚUnicodeEncodeErrorÚreplaceÚdecoderÓ   re   )r>   r§   rj   rv   Úinitfunc_names        r   rÞ   zbuild_ext.get_export_symbols­  s¯   € ð �x‰x�~‰~˜cÓ" 2Ñ&ˆð	 ð �K‰K˜Ô ð ˜4‘ZˆFà  6Ñ)ˆØ × 2Ñ 2Ñ2Ø×Ñ×%Ñ% mÔ4Ø×!Ñ!Ð!øô "ò 	XØ˜DŸK™K¨
Ó3×;Ñ;¸DÀ$ÓG×NÑNÈwÓWÑWŠFð	Xús    A0 Á0<B/Â.B/c                 óF  — t         j                  dk(  rkd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 dd	l	m
} d
} |d«      rVt        t         d«      rd}nCt         j                  dk(  rd}n-dt        j                  v r |d«      dk7  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).
        rI   r   )ÚMSVCCompilerz
python%d%dÚ_dé   é   éÿ   r  FrR   ÚgetandroidapilevelTrM   Ú_PYTHON_HOST_PLATFORMÚANDROID_API_LEVELÚMACHDEPÚ	LDVERSIONrO   )rb   rm   Údistutils._msvccompilerr  r]   r8   r#   Ú
hexversionr4   r  ro   Úhasattrr`   Úenvironr   Ú	pythonlib)r>   r§   r  Útemplater#  ro   Úlink_libpythonÚ	ldversions           r   rÝ   zbuild_ext.get_librariesÂ  s  € ô �<‰<˜7Ò"Ý<Ü˜dŸm™m¨\Ô:Ø'�Ø—:’:Ø'¨$™�HØ%ÜŸ™¨"Ñ,¬s¯~©~ÀÑ/CÀtÑ.KÐLñM�	ð —}‘}¨	 {Ñ2Ð2õ ;Ø"ˆNÙÐ0Ô1äœ3Ð 4Ô5Ø%)‘NÜ—\‘\ XÒ-Ø%)‘NØ,´·
±
Ñ:á%Ð&9Ó:¸aÒ?Ø)-™Ù'¨	Ó2°hÒ>Ø)-˜áÙ*¨;Ó7�	Ø—}‘}¨°9Ñ(<Ð'=Ñ=Ð=à�}‰}œz×3Ñ3Ó5Ñ5Ð5r   ) Ú__name__Ú
__module__Ú__qualname__Údescriptionr`   ra   Ú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Ý   © r   r   r   r   "   sJ  „ àL€Kð( $ b§j¡jÑ0€Fð	5ð	>à	�sð
Ù'›>ñ
*ð	+ð	9ð 
˜#Ø	9¸FÑ	Bð	Dð	,ð	.ð	.à	˜#Ø	9¸FÑ	Bð	Dð	Dð	?ð	4ð	?ð	&ð	*ð	6ð	.ð	(ð	0ðO)
€LòV H€Oð 
˜$Ø	# ^ð	5ð
€Lò
ò0PLòd> ò@L ò\òò,ò!ò(*ð
 ×Ññ%ó ð%òJ"òX4òl0ò03ò61ò4ò"ó*16r   r   )Ú__doc__r/  r`   Úrerb   Údistutils.corer   Údistutils.errorsr  r   r   r   Údistutils.dep_utilr   Údistutils.extensionr	   Údistutils.utilr
   rW   r   Ú r   Úsiter   rØ   rŸ   r   r   r1  r   r   ú<module>r;     s_   ðñó Û 	Û 	Û 
Ý "Ü ß FÝ 5Ý *Ý )Ý 'Ý Ý å ð �B—J‘JØ;ó=Ð òô
Q6�õ Q6r   