ó
    µ'Ôi5  ã                  óŠ   • S r SSKJr  SSKrSSKJr  SSKJr  SSKJ	r	  SSK
JrJr  SS	KJr  SS
KJr  SSKJr   " S S\5      rg)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.é    )ÚannotationsN)ÚCallable)Úlog)ÚClassVaré   )Únew_compilerÚshow_compilers)ÚCommand)ÚDistutilsSetupError)Úcustomize_compilerc                  ó�   • \ rS rSr% Sr/ SQrS\S'   SS/rS\S	'   S
SS\4/r	S\S'   S r
SS jrSS jrSS jrS rS rSS jrSrg)Ú
build_clibé   z/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 typez$ClassVar[list[tuple[str, str, str]]]Úuser_optionsr   r   zClassVar[list[str]]Úboolean_optionszhelp-compilerNzlist available compilerszAClassVar[list[tuple[str, str | None, str, Callable[[], object]]]]Úhelp_optionsc                ó‚   • S U l         S U l        S U l        S U l        S U l        S U l        S U l        SU l        S U l        g )NF)	r   Ú
build_tempÚ	librariesÚinclude_dirsÚdefineÚundefr   r   Úcompiler©Úselfs    Úg/var/www/surfInsights/venv3-11/lib/python3.13/site-packages/setuptools/_distutils/command/build_clib.pyÚinitialize_optionsÚbuild_clib.initialize_options-   sF   € ØˆŒØˆŒð ˆŒð !ˆÔØˆŒØˆŒ
ØˆŒ
ØˆŒ
Øˆ�ó    c                ó¼  • U R                  SSSSSS5        U R                  R                  U l        U R                  (       a  U R                  U R                  5        U R                  c$  U R                  R                  =(       d    / U l        [        U R                  [        5      (       a/  U R                  R                  [        R                  5      U l        g g )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_optionsÚbuild_clib.finalize_options<   s¬   € ð 	×"Ñ"ØØ(Ø(Ø$ØØô	
ð ×*Ñ*×4Ñ4ˆŒØ�>�>Ø×#Ñ# D§N¡NÔ3à×ÑÑ$Ø $× 1Ñ 1× >Ñ >× DÀ"ˆDÔÜ�d×'Ñ'¬×-Ñ-Ø $× 1Ñ 1× 7Ñ 7¼¿
¹
Ó CˆDÕð .r&   c                ó"  • U R                   (       d  g [        U R                  U R                  S9U l        [	        U R                  5        U R
                  b%  U R                  R                  U R
                  5        U R                  b0  U R                   H   u  pU R                  R                  X5        M"     U R                  b.  U R                   H  nU R                  R                  U5        M      U R                  U R                   5        g )N)r    r   )r   r   r    r   r   r   Úset_include_dirsr   Údefine_macror   Úundefine_macroÚbuild_libraries)r"   ÚnameÚvalueÚmacros       r#   ÚrunÚbuild_clib.runW   s¼   € Ø�~�~Øä$¨d¯m©mÀ4Ç:Á:ÑNˆŒÜ˜4Ÿ=™=Ô)à×ÑÑ(Ø�M‰M×*Ñ*¨4×+<Ñ+<Ô=Ø�;‰;Ñ"à#Ÿ{œ{‘�Ø—‘×*Ñ*¨4Ö7ñ  +à�:‰:Ñ!ØŸœ�Ø—‘×,Ñ,¨UÖ3ñ $ð 	×Ñ˜TŸ^™^Õ,r&   c                ó¼  • [        U[        5      (       d  [        S5      eU H¶  n[        U[        5      (       d  [	        U5      S:w  a  [        S5      eUu  p4[        U[
        5      (       d  [        S5      eSU;   d(  [        R                  S:w  a&  [        R                  U;   a  [        SUS    S35      e[        U[        5      (       a  M­  [        S	5      e   g
)a0  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 tuplesr   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 'r   z'': may not contain directory separatorszMsecond element of each tuple in 'libraries' must be a dictionary (build info)N)	r,   Úlistr   ÚtupleÚlenr-   r/   ÚsepÚdict)r"   r   Úlibr8   Ú
build_infos        r#   r+   Úbuild_clib.check_library_listj   sÍ   € ô ˜)¤T×*Ñ*Ü%Ð&SÓTÐTãˆCÜ˜c¤5×)Ñ)¬c°#«h¸!«mÜ)Ð*VÓWÐWà"ÑˆDä˜d¤C×(Ñ(Ü)ð:óð ð
 �d‹{œrŸv™v¨›}´·±¸4³Ü)Ø(¨¨Q©¨Ð0WÐXóð ô ˜j¬$×/Ó/Ü)ð8óð ò% r&   c                óz   • U R                   (       d  g / nU R                    H  u  p#UR                  U5        M     U$ )N)r   Úappend)r"   Ú	lib_namesÚlib_nameÚ_build_infos       r#   Úget_library_namesÚbuild_clib.get_library_namesŽ   s8   € ð �~�~Øàˆ	Ø%)§^¤^Ñ!ˆHØ×Ñ˜XÖ&ñ &4àÐr&   c                ó  • U R                  U R                  5        / nU R                   HT  u  p#UR                  S5      nUb  [        U[        [
        45      (       d  [        SU S35      eUR                  U5        MV     U$ )NÚsourcesú in 'libraries' option (library 'úD'), 'sources' must be present and must be a list of source filenames)r+   r   Úgetr,   r?   r@   r   Úextend)r"   Ú	filenamesrJ   rE   rO   s        r#   Úget_source_filesÚbuild_clib.get_source_files™   s„   € Ø×Ñ §¡Ô/Øˆ	Ø$(§N¤NÑ ˆHØ —n‘n YÓ/ˆGØ‰¤j°¼4Ä¸-×&HÑ&HÜ)Ø6°x°jð A1ð 1óð ð ×Ñ˜WÖ%ñ %3ð Ðr&   c           	     óÞ  • U Hç  u  p#UR                  S5      nUb  [        U[        [        45      (       d  [	        SU S35      e[        U5      n[
        R                  " SU5        UR                  S5      nUR                  S5      nU R                  R                  UU R                  UUU R                  S9nU R                  R                  XrU R                  U R                  S9  Mé     g )	NrO   rP   rQ   zbuilding '%s' libraryÚmacrosr   )Ú
output_dirrX   r   r   )rY   r   )rR   r,   r?   r@   r   r   Úinfor    Úcompiler   r   Úcreate_static_libr   )r"   r   rJ   rE   rO   rX   r   Úobjectss           r#   r7   Úbuild_clib.build_libraries¨   sá   € Û$-Ñ ˆHØ —n‘n YÓ/ˆGØ‰¤j°¼4Ä¸-×&HÑ&HÜ)Ø6°x°jð A1ð 1óð ô
 ˜7“mˆGä�HŠHÐ,¨hÔ7ð
  —^‘^ HÓ-ˆFØ%Ÿ>™>¨.Ó9ˆLØ—m‘m×+Ñ+ØØŸ?™?ØØ)Ø—j‘jð ,ð ˆGð �M‰M×+Ñ+Ø¨d¯o©oÀTÇZÁZð ,ó ò9 %.r&   )	r   r   r    r   r   r   r   r   r   )ÚreturnÚNone)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Údescriptionr   Ú__annotations__r   r	   r   r$   r1   r;   r+   rL   rU   r7   Ú__static_attributes__© r&   r#   r   r      sl   ‡ ØC€Kò:€LÐ6ó ð -4°WÐ+=€OÐ(Ó=ð 
˜$Ð :¸NÐKðW€LÐSó òôDô6-ô&"òH	ò÷r&   r   )Ú__doc__Ú
__future__r   r/   Úcollections.abcr   Údistutils._logr   Útypingr   Ú	ccompilerr   r	   Úcorer
   Úerrorsr   Ú	sysconfigr   r   rh   r&   r#   Ú<module>rr      s5   ðñõ #ã 	Ý $Ý Ý ç 4Ý Ý (Ý *ôk�õ kr&   