+
    SBia                        R t ^ RIHt ^ RIt^ RIHt ^ RIHt ^ RIH	t	 ^RI
HtHt ^RIHt ^RIHt ^R	IHt  ! R
 R]4      tR# )zdistutils.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                      ] tR t^t$ Rt. ROtR]R&   RR.tR]R&   RR	R
]3.t	R]R&   R t
R R ltR R ltR R ltR tR tR R ltRtR	# )
build_clibz/build C/C++ libraries used by Python extensionsdebugforcez$ClassVar[list[tuple[str, str, str]]]user_optionszClassVar[list[str]]boolean_optionszhelp-compilerNzlist available compilerszAClassVar[list[tuple[str, str | None, str, Callable[[], object]]]]help_optionsc                	    R V n         R V n        R V n        R V n        R V n        R V n        R V n        RV n        R V n        R # )NF)	r   
build_temp	librariesinclude_dirsdefineundefr   r   compilerselfs   &M/usr/lib/python3.14/site-packages/setuptools/_distutils/command/build_clib.pyinitialize_optionsbuild_clib.initialize_options-   sF      !


    c                   V ^8  d   QhRR/#    returnNone )formats   "r   __annotate__build_clib.__annotate__<   s     D D$ Dr   c                	   V P                  R RRRRR4       V P                  P                  V n        V P                  '       d   V P                  V P                  4       V P                  f&   V P                  P                  ;'       g    . V n        \        V P                  \        4      '       d1   V P                  P                  \        P                  4      V n        R# R# )buildN)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>>>##DNN3$ $ 1 1 > > D D"Dd''-- $ 1 1 7 7

 CD .r   c                   V ^8  d   QhRR/# r    r$   )r%   s   "r   r&   r'   W   s     - -T -r   c                	J   V P                   '       g   R # \        V P                  V P                  V P                  R7      V n        \        V P                  4       V P                  e&   V P                  P                  V P                  4       V P                  e1   V P                   F   w  rV P                  P                  W4       K"  	  V P                  e/   V P                   F  pV P                  P                  V4       K   	  V P                  V P                   4       R # )N)r   dry_runr   )r   r   r   r6   r   r
   r   set_include_dirsr   define_macror   undefine_macrobuild_libraries)r   namevaluemacros   &   r   runbuild_clib.runW   s    ~~~$]]DLL


 	4==)(MM**4+<+<=;;"#{{**47  +::!,,U3 $ 	T^^,r   c                   V ^8  d   QhRR/# r    r$   )r%   s   "r   r&   r'   l   s     " "t "r   c                   \        V\        4      '       g   \        R4      hV F  p\        V\        4      '       g   \	        V4      ^8w  d   \        R4      hVw  r4\        V\
        4      '       g   \        R4      hRV9   g+   \        P                  R8w  d,   \        P                  V9   d   \        RV^ ,           R24      h\        V\        4      '       d   K  \        R4      h	  R# )	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 tuplesz*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 'z'': may not contain directory separatorszMsecond element of each tuple in 'libraries' must be a dictionary (build info)N)	r-   listr	   tuplelenr.   r0   sepdict)r   r   libr;   
build_infos   &&   r   r,   build_clib.check_library_listl   s     )T**%&STTCc5))c#h!m)*VWW"DdC((): 
 d{rvv}4)(Q0WX  j$//)8 % r   c                	~    V P                   '       g   R # . pV P                    F  w  r#VP                  V4       K  	  V# )N)r   append)r   	lib_nameslib_name_build_infos   &   r   get_library_namesbuild_clib.get_library_names   s:     ~~~	%)^^!HX& &4r   c                	   V P                  V P                  4       . pV P                   FV  w  r#VP                  R 4      pVe   \        V\        \
        34      '       g   \        RV R24      hVP                  V4       KX  	  V# )sources in 'libraries' option (library 'D'), 'sources' must be present and must be a list of source filenames)r,   r   getr-   rC   rD   r	   extend)r   	filenamesrN   rI   rS   s   &    r   get_source_filesbuild_clib.get_source_files   s    /	$(NN H nnY/Gj4-&H&H)6xj A1 1  W% %3 r   c                   V ^8  d   QhRR/# r    r$   )r%   s   "r   r&   r'      s      D r   c           	     	   V F  w  r#VP                  R 4      pVe   \        V\        \        34      '       g   \	        RV R24      h\        V4      p\
        P                  ! RV4       VP                  R4      pVP                  R4      pV P                  P                  VV P                  VVV P                  R7      pV P                  P                  WrV P                  V P                  R7       K  	  R# )	rS   NrT   rU   zbuilding '%s' librarymacrosr   )
output_dirr]   r   r   )r^   r   )rV   r-   rC   rD   r	   r   infor   compiler   r   create_static_libr   )r   r   rN   rI   rS   r]   r   objectss   &&      r   r:   build_clib.build_libraries   s    $- H nnY/Gj4-&H&H)6xj A1 1 
 7mGHH,h7
  ^^H-F%>>.9Lmm++??)jj , G MM++dooTZZ , 9 %.r   )	r   r   r   r   r   r   r   r   r   ))zbuild-clib=bz%directory to build C/C++ libraries to)zbuild-temp=tz,directory to put temporary build by-products)r   gz"compile with debugging information)r   fz2forcibly build everything (ignore file timestamps))z	compiler=czspecify the compiler type)__name__
__module____qualname____firstlineno__descriptionr   __annotations__r   r   r   r   r2   r>   r,   rP   rY   r:   __static_attributes__r$   r   r   r   r      sq    CK:L6  -4W+=O(= 
$ :NKWLS D6-*"H	 r   r   )__doc__
__future__r   r0   collections.abcr   distutils._logr   typingr   	ccompilerr   r   corer   errorsr	   	sysconfigr
   r   r$   r   r   <module>ry      s5    # 	 $   4  ( *m mr   