+
     h  c                  s   R t ^ RIHt ^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RI	H
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HtHtHtHtHt ^RIHt ^RIH t H!t!H"t" ^RI#H$t$H%t%H&t& ]PN                  ! R4      t( ! R R]4      t)R# )zdistutils.command.build_ext

Implements the Distutils 'build_ext' command, for building extension
modules (currently limited to C extensions, should accommodate C++
extensions ASAP).)annotationsN)Callable)log)	USER_BASE)ClassVar)newer_group)new_compilershow_compilers)Command)CCompilerErrorCompileErrorDistutilsErrorDistutilsOptionErrorDistutilsPlatformErrorDistutilsSetupError)	Extension)customize_compilerget_config_h_filenameget_python_version)get_platformis_freethreadedis_mingwz3^[a-zA-Z_][a-zA-Z_0-9]*(\.[a-zA-Z_][a-zA-Z_0-9]*)*$c                  s   ] tR t^&t$ RtR]P                   R2tR4R5RRR]! 4        R23R6RR	R
],           3R7R8R9RRR],           3R:R;R<R=R>R?R@RARBRC.t	. RDOt
R]R&   RRR]3.tR]R&   R t]R 4       tR R ltR R ltR R ltR tR tR R  ltR! tR" t]P4                  R# 4       tR$ R% ltR& tR' tR( R) ltR* R+ lt R, R- lt!R. R/ lt"R0 t#R1 R2 lt$R3t%R# )E	build_extz8build C/C++ extensions (compile/link to build directory)z (separated by 'z')z
plat-name=Zpz;platform name to cross-compile for, if supported [default: Z]zinclude-dirs=ZIz.list of directories to search for header fileszlibrary-dirs=ZLz.directories to search for external C librariesNzClassVar[list[str]]boolean_optionszhelp-compilerzlist available compilerszAClassVar[list[tuple[str, str | None, str, Callable[[], object]]]]help_optionsc                	s,   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 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 V n        R V n        R V n        R # )NF)
extensions	build_lib	plat_name
build_tempinplacepackageinclude_dirsdefineundef	librarieslibrary_dirsrpathlink_objectsdebugforcecompilerswigswig_cpp	swig_optsuserparallelself   &L/usr/lib/python3.14/site-packages/setuptools/_distutils/command/build_ext.pyinitialize_optionsZbuild_ext.initialize_optionsp   s     
 
 

		    c              #  sJ  "   V P                  R4      '       g   R# V P                  '       d   Rx  R# \        P                  R8X  dF   V P                  R4      pV P                  R4      p\        P
                  P                  W4      x  R# V P                  R4      x  R# 5i)z
Resolve Python's library directory for building extensions
that rely on a shared Python library.

See python/cpython#44264 and python/cpython#48686
Py_ENABLE_SHAREDN.ZzosbaseZ
platlibdirZLIBDIR)get_config_varpython_buildsysplatformospathjoin)	sysconfigZinstalled_dirZlib_dir   &  r1   _python_lib_dirZbuild_ext._python_lib_dir   s      ''(:;;!!!I<<5  &44V<M..|<G'',,}66 **844s   +B#A5B#c                   V ^8  d   QhRR/#    returnZNone Zformat   "r1   __annotate__build_ext.__annotate__   s     IL IL$ ILr3   c           
     	s   ^ RI Hp V P                  RRRRRRRR 4       V P                  f   V P                  P
                  V n        V P                  P                  V n        VP                  4       pVP                  RR7      pV P                  f&   V P                  P                  ;'       g    . V n	        \        V P                  \        4      '       d/   V P                  P                  \        P                  4      V n	        \        P                   \        P"                  8w  dH   V P                  P%                  \        P&                  P)                  \        P                   R4      4       V P                  P+                  VP                  \        P&                  P                  4      4       W28w  dC   V P                  P+                  VP                  \        P&                  P                  4      4       V P-                  R4       V P-                  R4       V P.                  f   . V n        V P0                  f	   . V n        MN\        V P0                  \        4      '       d/   V P0                  P                  \        P                  4      V n        V P2                  f	   . V n        MN\        V P2                  \        4      '       d/   V P2                  P                  \        P                  4      V n        \        P4                  R	8X  Ed4   \7        4       '       Eg#   V P0                  P%                  \        P&                  P)                  \        P                   R
4      4       \        P"                  \        P8                  8w  dH   V P0                  P%                  \        P&                  P)                  \        P"                  R
4      4       V P:                  '       d1   \        P&                  P)                  V P<                  R4      V n        M/\        P&                  P)                  V P<                  R4      V n        V P                  P%                  \        P&                  P?                  \A        4       4      4       V P0                  P%                  \        P"                  4       V PB                  R8X  d   RpMV PB                  R,          p\        P&                  P)                  \        P                   R4      pV'       d    \        P&                  P)                  WT4      pV P0                  P%                  V4       \        PD                  R,          R8X  d   VPF                  '       gZ   V P0                  P%                  \        P&                  P)                  \        P8                  RR\I        4       ,           R4      4       MV P0                  P%                  R4       V P0                  P+                  V PK                  V4      4       V PL                  '       d4   V PL                  P                  R4      pV Uu. uF  qwR3NK  	  upV n&        V PN                  '       d!   V PN                  P                  R4      V n'        V PP                  f	   . V n(        M V PP                  P                  R4      V n(        V PR                  '       d   \        P&                  P)                  \T        R4      p\        P&                  P)                  \T        R4      p	\        P&                  PW                  V4      '       d   V P                  P%                  V4       \        P&                  PW                  V	4      '       d7   V P0                  P%                  V	4       V P2                  P%                  V	4       \        V PX                  \        4      '       d    \[        V PX                  4      V n,        R# R# u upi   \\         d    \_        R4      hi ; i)!i    )r>   ZbuildNT)Zplat_specificZincluder"   r%   ntZlibsZDebugZReleasewin32:i   NNZPCbuild:Ni   NcygwinZlibpythonZconfigr5   Z,1Z zparallel should be an integer)r   r   )r   r   )r(   r(   )r&   r&   )r'   r'   )r-   r-   )r   r   )0Z	distutilsr>   Zset_undefined_optionsr   distributionZext_packageZext_modulesr   Zget_python_incr   
isinstancestrsplitr;   pathsepr9   Zexec_prefixZbase_exec_prefixappendr<   r=   extendZensure_string_listr"   r#   r$   namer   Zprefixr&   r   Zdirnamer   r   r:   r8   r   r@   r    r!   r+   r,   r   Zisdirr-   ZintZ
ValueErrorr   )
r/   r>   Z
py_includeZplat_py_includesuffixZnew_libZdefinesZsymbolZuser_includeZuser_libs
   &         r1   finalize_optionsZbuild_ext.finalize_options   sb   '""&($$&		
 <<,,88DL++77 --/
#222F$ $ 1 1 > > D D"Dd''-- $ 1 1 7 7

 CD ??c222$$RWW\\#//9%MN 	  !1!1"''//!BC($$_%:%:277??%KL,/ >>!DN$ "D))3// $ 1 1 7 7

 CD::DJ

C(())"**5DJ
 77d?8:: $$RWW\\#//6%JK##szz1!!((c6J6JF)STzzz"$'',,t"H"$'',,t	"J $$RWW__5J5L%MN$$S%9%9: ~~(  +ggll3??I>G'',,w7$$W- <<x')))!!((GGLL

E86H6J+JH !!((-  !5!5i!@A ;;;kk'',G7>?wVC=w?DK
 :::))#.DJ>>!DN!^^11#6DN 99977<<	9=Lww||Iu5Hww}}\**!!((6ww}}X&&!!((2

!!(+dmmS))L #DMM 2 */ @4  L*+JKKLs   ?_/_4 4`c               rA   rB   rE   rF   rG   r1   rH   rI   ,  s     D  D T D r3   c                	s   V P                   '       g   R # V P                  P                  4       '       dj   V P                  R4      pV P                  P                  VP                  4       ;'       g    . 4       V P                  P                  VP                  4       \        V P                  V P                  V P                  V P                  R7      V n        \        V P                  4       \         P"                  R8X  d?   V P$                  \'        4       8w  d&   V P                  P)                  V P$                  4       \         P"                  R8X  d-   \+        4       '       d   V P                  P-                  RR4       V P.                  e&   V P                  P1                  V P.                  4       V P2                  e1   V P2                   F   w  r#V P                  P-                  W#4       K"  	  V P4                  e/   V P4                   F  pV P                  P7                  V4       K   	  V P                  e&   V P                  P9                  V P                  4       V P                  e&   V P                  P;                  V P                  4       V P<                  e&   V P                  P?                  V P<                  4       V P@                  e&   V P                  PC                  V P@                  4       V PE                  4        R # )N
build_clib)r(   verbosedry_runr'   rJ   ZPy_GIL_DISABLEDrN   )#r   rO   Zhas_c_librariesget_finalized_commandr"   rU   Zget_library_namesr#   rT   rY   r   r(   rZ   r[   r'   r   r;   rV   r   r   Z
initializer   Zdefine_macror   Zset_include_dirsr    r!   Zundefine_macroZset_librariesZset_library_dirsr$   Zset_runtime_library_dirsr%   Zset_link_objectsbuild_extensions)r/   rY   rV   Zvaluemacros   &    r1   runZbuild_ext.run,  s    
 ,,..33LAJNN!!*">">"@"F"FBG$$Z%:%:; %]]LLLL**	
 	4==) 77d?t~~?MM$$T^^4
 77d?00MM&&'8#> (MM**4+<+<=;;"#{{**47  +::!,,U3 $>>%MM''7(MM**4+<+<=::!MM224::>(MM**4+<+<= 	r3   c               rA   rB   rE   rF   rG   r1   rH   rI   r  s     V  V 4 V r3   c                sd   \        V\        4      '       g   \        R4      h\        V4       EF  w  r#\        V\        4      '       d   K  \        V\
        4      '       d   \        V4      ^8w  d   \        R4      hVw  rE\        P                  ! RV4       \        V\        4      '       d   \        P                  V4      '       g   \        R4      h\        V\        4      '       g   \        R4      h\	        WER,          4      pR F&  pVP                  V4      pVf   K  \        W6V4       K(  	  VP                  R4      Vn        R	V9   d   \        P                  ! R
4       VP                  R4      pV'       d   . Vn        . Vn        V F  p	\        V	\
        4      '       d   \        V	4      R9   g   \        R4      h\        V	4      ^8X  d%   VP"                  P%                  V	^ ,          4       Kh  \        V	4      ^8X  g   Kz  VP                   P%                  V	4       K  	  W1V&   EK  	  R# )at  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 instanceszMeach 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)sourcesNr$   Zdef_filez9'def_file' element of build info dict no longer supportedmacrosz9'macros' element of build info dict must be 1- or 2-tuple)r   r#   r"   extra_objectsextra_compile_argsextra_link_args)i   rC   )rP   listr   Z	enumerater   tuplelenr   warningrQ   extension_name_reZmatchZdictZgetZsetattrruntime_library_dirsdefine_macrosundef_macrosrT   )
r/   r   iextext_nameZ
build_infoZkeyZvalra   r^   
   &&        r1   check_extensions_listZbuild_ext.check_extensions_listr  s    *d++%L   
+FA#y)) c5))SX])4 
 $' HKK: 	 x--2C2I2I(2S2S)< 
 j$//)8  H&;<C !nnS)?Cc* (2~~g'>C$Z'WX  ^^H-F$&!#% #E&ue44Uv9M1W  5zQ((//a9Uq))007 $  qMO ,r3   c                	s    V P                  V P                  4       . pV P                   F  pVP                  VP                  4       K   	  V# N)rq   r   rU   r`   )r/   Z	filenamesrn   r?   r1   get_source_filesZbuild_ext.get_source_files  sA    ""4??3	 ??CS[[) #r3   c                	s    V P                  V P                  4       V P                   Uu. uF  qP                  VP                  4      NK  	  up# u upi rr   )rq   r   get_ext_fullpathrV   r/   rn      & r1   get_outputsZbuild_ext.get_outputs  sB     	""4??3
 <@??K?C%%chh/?KKKs   #Ac               rA   rB   rE   rF   rG   r1   rH   rI     s     , ,$ ,r3   c                	s    V P                  V P                  4       V P                  '       d   V P                  4        R # V P	                  4        R # rr   )rq   r   r-   _build_extensions_parallel_build_extensions_serialr.   r0   r1   r]   Zbuild_ext.build_extensions  s5    ""4??3===++-))+r3   c           
     	s`   V P                   pV P                   R J d   \        P                  ! 4       p ^ RIHp Vf   V P                  4        R# X! VR7      ;_uu_ 4       pV P                   Uu. uF  qCP                  V P                  V4      NK   	  pp\        V P                  V4       F7  w  rFV P                  V4      ;_uu_ 4        VP                  4        RRR4       K9  	  RRR4       R#   \
         d    Rp Li ; iu upi   + '       g   i     Kn  ; i  + '       g   i     R# ; i)T)ThreadPoolExecutorN)Zmax_workers)r-   r;   Z	cpu_countZconcurrent.futuresrz   ZImportErrorry   r   Zsubmitbuild_extensionZzip_filter_build_errorsZresult)r/   Zworkersrz   Zexecutorrn   ZfuturesZfuts   &      r1   rx   Z$build_ext._build_extensions_parallel  s    --==D llnG	= ?))+G44FJooFUs 4 4c:o    9..s33JJL 43 :	 54  	G	 433 544sG   C0  D/$D6D	DD0D ?D DD	DD-	c                	s    V P                    F6  pV P                  V4      ;_uu_ 4        V P                  V4       R R R 4       K8  	  R #   + '       g   i     KM  ; irr   )r   r|   r{   ru   rv   r1   ry   Z"build_ext._build_extensions_serial  sA    ??C**3//$$S) 0/ #///s   A		Ac              #  	s   "    R x  R #   \         \        \        3 d@   pTP                  '       g   h T P	                  RTP
                   RT 24        R p?R # R p?ii ; i5i)Nzbuilding extension "z
" failed: )r	   r   r
   ZoptionalZwarnrV   )r/   rn   Ze   && r1   r|   Zbuild_ext._filter_build_errors   sS     	F= 	F<<<II,SXXJjDEE	Fs*   A"
 A"A4AA"AA"c               rA   rB   rE   rF   rG   r1   rH   rI   	  s     O
 O
d O
r3   c                	s   VP                   pVe   \        V\        \        34      '       g   \	        RVP
                   R24      h\        V4      pV P                  VP
                  4      pW!P                  ,           pV P                  '       g6   \        WCR4      '       g$   \        P                  ! RVP
                  4       R # \        P                  ! RVP
                  4       V P                  W!4      pVP                  ;'       g    . pVP                   R,          pVP"                   F  pVP%                  V34       K  	  V P&                  P)                  VV P*                  VVP,                  V P                  VVP                  R7      pVR,          V n        VP0                  '       d   VP3                  VP0                  4       VP4                  ;'       g    . pVP6                  ;'       g    V P&                  P9                  V4      p	V P&                  P;                  VVV P=                  V4      VP>                  VP@                  VV PC                  V4      V P                  V P*                  V	R7
       R # )	Nz$in 'ext_modules' option (extension 'zD'), 'sources' must be present and must be a list of source filenamesZnewerz$skipping '%s' extension (up-to-date)zbuilding '%s' extension:NNN)Z
output_dirra   r   r&   extra_postargsdepends)r"   r#   rj   r~   export_symbolsr&   r   Ztarget_lang)"r`   rP   re   rf   r   rV   Zsortedrt   r   r'   r   r   r&   infoswig_sourcesrc   rk   rl   rT   r(   compiler   r   _built_objectsrb   rU   rd   languageZdetect_languageZlink_shared_objectget_librariesr#   rj   get_export_symbols)
r/   rn   r`   ext_pathr   Z
extra_argsra   r!   Zobjectsr   rp   r1   r{   Zbuild_ext.build_extension	  s   ++?*WtUm"D"D%6sxxj A- -  /((2KK'


k'WEEII<chhGHH.9
 ##G1  ++11r
""1%%%EMM5(# & --''))**%KK ( 
 &aj
 NN3,,-((..B
 <<II4==#@#@#I((((-))!$!9!9%2237**  	) 	
r3   c                s   . p. p/ pV P                   '       d   \        P                  ! R4       V P                   '       g#   RV P                  9   g   RVP                  9   d   RpMRpV Fy  p\        P
                  P                  V4      w  rV	R8X  d>   VP                  VR,           V,           4       VP                  V4       VR
,          WW&   Kh  VP                  V4       K{  	  V'       g   V# V P                  ;'       g    V P                  4       p
V
R.pVP                  V P                  4       V P                   '       d   VP                  R4       V P                  '       g   VP                  VP                  4       V F<  pWW,          p\        P                  ! RW|4       V P                  VR	W.,           4       K>  	  V# )zWalk 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.iZ_wrapz-pythonzswigging %s to %sz-o)r*   r   rh   r+   r;   r<   ZsplitextrT   r)   	find_swigrU   r   Zspawn)r/   r`   	extensionZnew_sourcesr   Zswig_targetsZ
target_extZsourcer6   rn   r)   Zswig_cmdZtargets   &&&          r1   r   Zbuild_ext.swig_sourcesZ  sn     ===KKIJ MMM$..()---JJF''**62KTd{""4'>J#>?##F+'22$""6*  yy,,DNN,)$'===OOF# ~~~OOI//0"F!)FHH(&9JJx4"889 #
 r3   c                sB   \         P                  R8X  d   R# \         P                  R8X  dX   R FO  p\         P                  P                  RV 2R4      p\         P                  P	                  V4      '       g   KM  Vu # 	  R# \        R\         P                   R24      h)	zReturn the name of the SWIG executable.  On Unix, this is
just "swig" -- it should be in the PATH.  Tries a bit harder on
Windows.
Zposixr)   rJ   zc:\swigzswig.exez;I don't know how to find (much less run) SWIG on platform 'Z')z1.3z1.2z1.1)r;   rV   r<   r=   Zisfiler   )r/   ZversZfnr?   r1   r   Zbuild_ext.find_swig  s    
 77gWW_ .WW\\HTF"3Z@77>>"%%I .
 "(MbggYVWX r3   c                    V ^8  d   QhRRRR/# rC   ro   rQ   rD   rE   rF   rG   r1   rH   rI     s     3 3 3 3r3   c                s$   V P                  V4      pVP                  R4      pV P                  VR,          4      pV P                  '       gT   \        P
                  P                  ! VRR V.,           !  p\        P
                  P                  V P                  V4      # RP                  V^ R 4      pV P                  R4      p\        P
                  P                  VP                  V4      4      p\        P
                  P                  Wt4      # )zReturns the path of the filename for a given extension.

The file is located in `build_lib` or directly in the package
(inplace option).
r5   Nbuild_pyr   )get_ext_fullnamerR   get_ext_filenamer   r;   r<   r=   r   r\   ZabspathZget_package_dir)r/   ro   ZfullnameZmodpathZfilenamer   r   Zpackage_dir   &&      r1   rt   Zbuild_ext.get_ext_fullpath  s     ((2..%((5||| ww||WSb\XJ%>?H77<<99 ((71R=)--j9ggooh&>&>w&GH ww||K22r3   c               r   r   rE   rF   rG   r1   rH   rI     s     1 1 1 1r3   c                sV    V P                   f   V# V P                   R,           V,           # )zKReturns the fullname of a given extension name.

Adds the `package.` prefixr5   )r   )r/   ro   s   &&r1   r   Zbuild_ext.get_ext_fullname  s'     <<O<<#%00r3   c               r   r   rE   rF   rG   r1   rH   rI     s     	4 	4 	4 	4r3   c                s    ^RI Hp VP                  R4      pV! R4      p\        P                  P
                  ! V!  V,           # )zConvert 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").
r7   r5   Z
EXT_SUFFIX)r>   r7   rR   r;   r<   r=   )r/   ro   r7   r   Z
ext_suffix   &&   r1   r   Zbuild_ext.get_ext_filename  s7    
 	/>>#&#L1
ww||X&33r3   c                    V ^8  d   QhRRRR/# rC   rn   r   rD   z	list[str]rE   rF   rG   r1   rH   rI     s     " "i "I "r3   c                sj   V P                  V4      p VP                  R4       RV,           pRV,           pWAP
                  9  d   VP
                  P                  V4       VP
                  #   \         d;    RTP                  R4      P                  RR4      P	                  R4      ,           p Li ; i)zReturn 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.
ZasciiZ_ZU_Zpunycodes   -s   _ZPyInit)_get_module_name_for_symbolZencodeZUnicodeEncodeErrorZreplaceZdecoder   rT   )r/   rn   rV   rW   Zinitfunc_namer   r1   r   Zbuild_ext.get_export_symbols  s     //4	  KK  4ZF 6) 2 22%%m4!!! " 	XDKK
3;;D$GNNwWWF	Xs   A- -AB21B2c                	s    VP                   P                  R 4      pVR,          R8X  d   \        V4      ^8  d
   VR,          # VR,          # )r5   Z__init__r   i)rV   rR   rg   )r/   rn   Zpartsr}   r1   r   Z%build_ext._get_module_name_for_symbol  s@     s#9
"s5zQ9Ryr3   c               r   r   rE   rF   rG   r1   rH   rI     s     5 5 5y 5r3   c                s   \         P                  R8X  d   \        4       '       g   ^RIHp \        V P                  V4      '       gn   RpV P                  '       d
   VR,           pV\         P                  ^,	          \         P                  ^,	          ^,          3,          pVP                  V.,           #  VP                  # ^RI
Hp RpV! R4      '       dv   \        \         R4      '       d   R	pM\\         P                  R
8X  g   \        4       '       d   R	pM4R\        P                  9   d    V! R4      ^ 8w  d   R	pMV! R4      R
8X  d   R	pV'       d$   V! R4      pVP                  RV,           .,           # VP                  # )zReturn 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).
rK   )MSVCCompilerz
python%d%dZ_dr   Fr4   ZgetandroidapilevelTrL   Z_PYTHON_HOST_PLATFORMZANDROID_API_LEVELZMACHDEPZ	LDVERSIONrM   )r9   r:   r   Z_msvccompilerr   rP   r(   r&   Z
hexversionr"   r>   r7   Zhasattrr;   Zenviron)r/   rn   r   ZtemplateZ	pythonlibr7   Zlink_libpythonZ	ldversionr   r1   r   Zbuild_ext.get_libraries  s1    <<7"8::4dmm\::':::'$H$NNb(^^r)T1( 	 }}	{22 ;P }}) 3"N0113 455%)N\\X-%)N,

:%&9:a?)-'	2h>)-*;7	}}9(<'===}}r3   )r   r   r   r(   r&   r    r   r'   r   r   r"   r#   r%   r   r-   r   r$   r)   r*   r+   r!   r,   )z
build-lib=Zbz(directory for compiled extension modules)zbuild-temp=Ztz1directory for temporary files (build by-products))r   rm   ziignore build-lib and put compiled extensions into the source directory alongside your pure Python modules)zdefine=ZDzC preprocessor macros to define)zundef=ZUz!C preprocessor macros to undefine)z
libraries=Zlz!external C libraries to link with)zrpath=ZRz7directories to search for shared C libraries at runtime)zlink-objects=ZOz2extra explicit link objects to include in the link)r&   Zgz'compile/link with debugging information)r'   Zfz2forcibly build everything (ignore file timestamps))z	compiler=Zczspecify the compiler type)z	parallel=Z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)r,   Nz#add user include, library and rpath)r   r&   r'   r   r,   )&Z__name__Z
__module__Z__qualname__Z__firstlineno__Zdescriptionr;   rS   Zsep_byr   Zuser_optionsr   Z__annotations__r   r   r2   Zstaticmethodr@   rX   r_   rq   rs   rw   r]   rx   ry   
contextlibZcontextmanagerr|   r{   r   r   rt   r   r   r   r   r   Z__static_attributes__rE   r3   r1   r   r   &   sj   LK(  

|2.FGQ%(+	
	
 <vE	

 	<<@<vE	

 	STAL7;GA6=K&LP,O(  
$ :NKWLS 0 5 50ILVD LV p	L,!**
 F FO
b6p0361	4"*5 5r3   r   )*Z__doc__Z
__future__r    r   r;   Zrer9   Zcollections.abcr   Zdistutils._logr   Zsiter   Ztypingr   Z	_modifiedr   Z	ccompilerr   r   Zcorer   Zerrorsr	   r
   r   r   r   r   r   r   r>   r   r   r   Zutilr   r   r   r   ri   r   rE   r3   r1   <module>r      sk    #  	 	 
 $    # 4   " U U : : JJUV F Fr3   