Ë
    ˜šãjV  ã                   óZ   — d Z ddlZddlmZ ddl­ ddlmZ ddlmZ d„ Z	 G d„ d	e«      Z
y)
z´distutils.command.build_clib

Implements the Distutils 'build_clib' command, to build a C/C++ library
that is included in the module distribution and needed by an extension
module.é    N)ÚCommand)Ú*)Úcustomize_compiler)Úlogc                  ó   — ddl m}   | «        y )Nr   ©Úshow_compilers)Údistutils.ccompilerr	   r   s    ús/var/www/html/python-recuperauto-other/env/lib/python3.12/site-packages/setuptools/_distutils/command/build_clib.pyr	   r	      s   € Ý2ÙÕó    c                   óX   — e Zd ZdZg d¢ZddgZdddefgZd„ Zd	„ Z	d
„ Z
d„ Zd„ Zd„ Zd„ Zy)Ú
build_clibz/build C/C++ libraries used by Python extensions))zbuild-clib=Úbz%directory to build C/C++ libraries to)zbuild-temp=Útz,directory to put temporary build by-products)ÚdebugÚgz"compile with debugging information)ÚforceÚfz2forcibly build everything (ignore file timestamps))z	compiler=Úczspecify the compiler typer   r   zhelp-compilerNzlist available compilersc                 ó‚   — d | _         d | _        d | _        d | _        d | _        d | _        d | _        d| _        d | _        y )Nr   )	r   Ú
build_tempÚ	librariesÚinclude_dirsÚdefineÚundefr   r   Úcompiler©Úselfs    r   Úinitialize_optionszbuild_clib.initialize_options4   sF   € ØˆŒØˆŒð ˆŒð !ˆÔØˆŒØˆŒ
ØˆŒ
ØˆŒ
Øˆ�r   c                 óœ  — | j                  dddddd«       | j                  j                  | _        | j                  r| j                  | j                  «       | j                  €| j                  j                  xs g | _        t        | j                  t        «      r/| j                  j                  t        j                  «      | _        y y )NÚbuild)r   r   )r   r   )r   r   )r   r   )r   r   )
Úset_undefined_optionsÚdistributionr   Úcheck_library_listr   Ú
isinstanceÚstrÚsplitÚosÚpathsepr   s    r   Úfinalize_optionszbuild_clib.finalize_optionsD   s¨   € ð 	×"Ñ" 7Ø#?Ø#?Ø#;Ø#5Ø#5ô	7ð ×*Ñ*×4Ñ4ˆŒØ�>Š>Ø×#Ñ# D§N¡NÔ3à×ÑÐ$Ø $× 1Ñ 1× >Ñ >Ò DÀ"ˆDÔÜ�d×'Ñ'¬Ô-Ø $× 1Ñ 1× 7Ñ 7¼¿
¹
Ó CˆDÕð .r   c                 ó0  — | j                   sy ddlm}  || j                  | j                  | j
                  ¬«      | _        t        | j                  «       | j                  �%| j                  j                  | j                  «       | j                  �0| j                  D ]!  \  }}| j                  j                  ||«       Œ# | j                  �,| j                  D ]  }| j                  j                  |«       Œ | j                  | j                   «       y )Nr   )Únew_compiler)r   Údry_runr   )r   r
   r,   r   r-   r   r   r   Úset_include_dirsr   Údefine_macror   Úundefine_macroÚbuild_libraries)r   r,   ÚnameÚvalueÚmacros        r   Úrunzbuild_clib.run^   sÛ   € Ø�~Š~Øõ 	5Ù$¨d¯m©mØ-1¯\©\Ø+/¯:©:ô7ˆŒô 	˜4Ÿ=™=Ô)à×ÑÐ(Ø�M‰M×*Ñ*¨4×+<Ñ+<Ô=Ø�;‰;Ð"à $§¡ò 8‘��eØ—‘×*Ñ*¨4°Õ7ð8à�:‰:Ð!ØŸ™ò 4�Ø—‘×,Ñ,¨UÕ3ð4ð 	×Ñ˜TŸ^™^Õ,r   c                 ó„  — t        |t        «      st        d«      ‚|D ]   }t        |t        «      st	        |«      dk7  rt        d«      ‚|\  }}t        |t
        «      st        d«      ‚d|v s%t        j                  dk7  r#t        j                  |v rt        d|d   z  «      ‚t        |t        «      rŒ—t        d«      ‚ y	)
a`  Ensure that the list of libraries is valid.

        `library` is presumably provided as a command option 'libraries'.
        This method checks that it is a list of 2-tuples, where the tuples
        are (library_name, build_info_dict).

        Raise DistutilsSetupError if the structure is invalid anywhere;
        just returns otherwise.
        z+'libraries' option must be a list of tuplesé   z*each element of 'libraries' must a 2-tuplezNfirst element of each tuple in 'libraries' must be a string (the library name)ú/z;bad library name '%s': may not contain directory separatorsr   zMsecond element of each tuple in 'libraries' must be a dictionary (build info)N)	r%   ÚlistÚDistutilsSetupErrorÚtupleÚlenr&   r(   ÚsepÚdict)r   r   Úlibr2   Ú
build_infos        r   r$   zbuild_clib.check_library_listv   sÛ   € ô ˜)¤TÔ*Ü%Ø?óAð Að ò 	;ˆCÜ˜c¤5Ô)¬c°#«h¸!ªmÜ)ØBóDð Dð  #ÑˆD�*ä˜d¤CÔ(Ü)ð<ó=ð =ð �d‰{œrŸv™v¨š}´·±¸4±Ü)ð +>Ø@CÀAÁñ+Gó Hð Hô ˜j¬$Õ/Ü)ð:ó;ð ;ñ#	;r   c                 ón   — | j                   sy g }| j                   D ]  \  }}|j                  |«       Œ |S )N)r   Úappend)r   Ú	lib_namesÚlib_namer@   s       r   Úget_library_nameszbuild_clib.get_library_namesš   s?   € ð �~Š~Øàˆ	Ø&*§n¡nò 	'Ñ"ˆX�zØ×Ñ˜XÕ&ð	'àÐr   c                 óø   — | j                  | j                  «       g }| j                  D ]M  \  }}|j                  d«      }|�t        |t        t
        f«      st        d|z  «      ‚|j                  |«       ŒO |S )NÚsourcesúfin 'libraries' option (library '%s'), 'sources' must be present and must be a list of source filenames)r$   r   Úgetr%   r9   r;   r:   Úextend)r   Ú	filenamesrD   r@   rG   s        r   Úget_source_fileszbuild_clib.get_source_files¦   s…   € Ø×Ñ §¡Ô/Øˆ	Ø&*§n¡nò 	&Ñ"ˆX�zØ —n‘n YÓ/ˆGØˆ¤j°¼4Ä¸-Ô&HÜ)ð4à6>ñ?ó@ð @ð
 ×Ñ˜WÕ%ð	&ð Ðr   c                 óÚ  — |D ]æ  \  }}|j                  d«      }|�t        |t        t        f«      st	        d|z  «      ‚t        |«      }t        j                  d|«       |j                  d«      }|j                  d«      }| j                  j                  || j                  ||| j                  ¬«      }| j                  j                  ||| j                  | j                  ¬«       Œè y )NrG   rH   zbuilding '%s' libraryÚmacrosr   )Ú
output_dirrN   r   r   )rO   r   )rI   r%   r9   r;   r:   r   Úinfor   Úcompiler   r   Úcreate_static_libr   )r   r   rD   r@   rG   rN   r   Úobjectss           r   r1   zbuild_clib.build_librariesµ   sä   € Ø&/ò 	>Ñ"ˆX�zØ —n‘n YÓ/ˆGØˆ¤j°¼4Ä¸-Ô&HÜ)ð4à6>ñ?ó@ð @ô ˜7“mˆGä�H‰HÐ,¨hÔ7ð
  —^‘^ HÓ-ˆFØ%Ÿ>™>¨.Ó9ˆLØ—m‘m×+Ñ+¨GØ7;·±Ø39Ø9EØ26·*±*ð	 ,ó >ˆGð �M‰M×+Ñ+¨G°XØ7;·±Ø26·*±*ð ,õ >ñ3	>r   )Ú__name__Ú
__module__Ú__qualname__ÚdescriptionÚuser_optionsÚboolean_optionsr	   Úhelp_optionsr   r*   r5   r$   rE   rL   r1   © r   r   r   r      sW   „ àC€Kò
€Lð  Ð(€Oð 
˜$Ø	# ^ð	5ð
€Lò
ò Dò4-ò0!;òH	òó>r   r   )Ú__doc__r(   Údistutils.corer   Údistutils.errorsÚdistutils.sysconfigr   Ú	distutilsr   r	   r   r[   r   r   ú<module>ra      s.   ðñó  
Ý "Ü Ý 2Ý òô
u>�õ u>r   