a0bi{SrSSKrSSKrSSKrSSKrSSKJr SSKJrJ r J r J r J r J r SSKJrJr SSKJr SSKJr SS KJr SS KJr SS KJr S S KJr SSKJr \R<"S5rSr "SS\5r!g)zdistutils.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)DistutilsOptionErrorDistutilsSetupErrorCCompilerErrorDistutilsError CompileErrorDistutilsPlatformError)customize_compilerget_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]*)*$cSSKJn U"5 g)Nrshow_compilers) ccompilerrrs ڠ/builddir/build/BUILDROOT/alt-python313-setuptools-69.0.2-3.el8.x86_64/opt/alt/python313/lib/python3.13/site-packages/setuptools/_distutils/command/build_ext.pyrr#s *c.\rSrSrSrS\R -rSSSSS\"5-4S S S S \-4S SSSSS\-4SSSSSSSSSS/r /SQr SSS \ 4/r S!r S"rS#rS$rS%rS&rS'rS(rS)r\R.S*5rS+rS,rS-rS.rS/rS0rS1rS2r S3r!g)4 build_ext)z8build 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))inplaceiziignore 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)zdefine=DzC preprocessor macros to define)zundef=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)zrpath=Rz7directories to search for shared C libraries at runtime)z link-objects=Oz2extra explicit link objects to include in the link)debuggz'compile/link with debugging information)forcefz2forcibly build everything (ignore file timestamps))z compiler=czspecify the compiler type)z parallel=jznumber of parallel build jobs)swig-cppNz)make SWIG create C++ files (default is C))z swig-opts=Nz!list of SWIG command line options)zswig=Nzpath to the SWIG executable)userNz#add user include, library and rpath)r!r*r,r0r1z help-compilerNzlist available compilersc*SUlSUlSUlSUlSUlSUlSUlSUlSUlSUl SUl SUl SUl SUl SUlSUlSUlSUlSUlSUlSUlg)Nr) extensions build_lib plat_name build_tempr!package include_dirsdefineundef libraries library_dirsrpath link_objectsr*r,compilerswigswig_cpp swig_optsr1parallelselfs rinitialize_optionsbuild_ext.initialize_optionsms               rc ,SSKJn URSSSSSSS S 5 URcURR UlURR UlUR5nURS S 9nURc$URR=(d /Ul [UR[5(a.URR[R5Ul [R [R":waGURR%[R&R)[R S 55 URR+UR[R&R55 X2:waBURR+UR[R&R55 UR-S5 UR-S5 UR.c/UlUR0c/UlOM[UR0[5(a.UR0R[R5UlUR2c/UlOM[UR2[5(a.UR2R[R5Ul[R4S:XGaUR0R%[R&R)[R S55 [R"[R6:waGUR0R%[R&R)[R"S55 UR8(a0[R&R)UR:S5UlO/[R&R)UR:S5UlURR%[R&R=[?555 UR0R%[R"5 UR@S:XaSnOUR@SSn[R&R)[R S5nU(a[R&R)XT5nUR0R%U5 [RBSSS:XaURD(dUUR0R%[R&R)[R6SS[G5-S55 OUR0R%S5 URIS5(aWURD(d+UR0R%URIS55 OUR0R%S5 URJ(a4URJRS5nUVs/sHowS 4PM snUl%URL(a URLRS5Ul&URNc/Ul'O URNRS!5Ul'URP(a[R&R)[RS 5n[R&R)[RS5n [R&RUU5(aURR%U5 [R&RUU 5(a6UR0R%U 5 UR2R%U 5 [URV[5(a[YURV5Ul+ggs snf![Za []S"5ef=f)#Nr) sysconfigbuild)r4r4)r6r6)r?r?)r*r*)r,r,)rCrC)r5r5r) plat_specificincluder;r>ntlibsDebugReleasewin32PCbuildcygwinlibpythonconfig.Py_ENABLE_SHAREDLIBDIR,1 zparallel should be an integer)/ distutilsrIset_undefined_optionsr7 distribution ext_package ext_modulesr3get_python_incr8 isinstancestrsplitospathsepsys exec_prefixbase_exec_prefixappendpathjoinextendensure_string_listr;r<r=nameprefixr*r6dirnamer r5platform python_buildr get_config_varr9r:rBr1risdirrCint ValueErrorr) rErI py_includeplat_py_includesuffixnew_libdefinessymbol user_includeuser_libs rfinalize_optionsbuild_ext.finalize_optionss' ""  & ( $   $ &  << ,,88DL++77--/ #222C    $ $ 1 1 > > D"D  d'' - - $ 1 1 7 7 CD  ??c22 2    $ $RWW\\#//9%M N   !1!1"''//!BC  (    $ $_%:%:277??%K L  , / >> !DN    $ "D  ))3 / / $ 1 1 7 7 CD  :: DJ  C ( ())"**5DJ 77d?    $ $RWW\\#//6%J K##szz1!!((c6J6JF)STzz"$'',,t"H"$'',,t "J    $ $RWW__5J5L%M N    $ $S%9%9 :~~( +ggll3??I>G'',,w7    $ $W - << x '))!!((GGLL E86H6J+JH!!((-  # #$6 7 7))!!(()A)A()KL!!((- ;;kk'',G7>?wVC=w?DK ::))#.DJ >> !DN!^^11#6DN 9977<< 9=Lww||Iu5Hww}}\**!!((6ww}}X&&!!((2 !!(+ dmmS ) ) L #DMM 2  */@4 L*+JKK Ls _8_==`c~SSKJn UR(dgURR 5(ahUR S5nUR RUR5=(d /5 URRUR5 U"URURURURS9Ul [!UR5 ["R$S:Xa=UR&[)5:wa%URR+UR&5 UR,b%URR/UR,5 UR0b0UR0H up4URR3X45 M" UR4b.UR4HnURR7U5 M UR b%URR9UR 5 URb%URR;UR5 UR<b%URR?UR<5 UR@b%URRCUR@5 URE5 g)Nr) new_compiler build_clib)r?verbosedry_runr,rM)#rrr3rahas_c_librariesget_finalized_commandr;rpget_library_namesr<rmrr?rrr,r rhrrr5r initializer8set_include_dirsr9 define_macror:undefine_macro set_librariesset_library_dirsr=set_runtime_library_dirsr>set_link_objectsbuild_extensions)rErrrrvaluemacros rrun build_ext.runs,     , , . .33LAJ NN ! !*">">"@"FB G    $ $Z%:%: ;%]]LLLL**   4==) 77d?t~~? MM $ $T^^ 4    ( MM * *4+<+< = ;; "#{{  **47 + :: ! ,,U3$ >> % MM ' ' 7    ( MM * *4+<+< = :: ! MM 2 24:: >    ( MM * *4+<+< = rc6[U[5(d [S5e[U5GHup#[U[5(aM[U[ 5(a[ U5S:wa [S5eUupE[R"SU5 [U[5(a[RU5(d [S5e[U[5(d [S5e[ XES5nSH%nURU5nUcM[X6U5 M' URS 5UlS U;a[R"S 5 URS 5nU(a/Ul/UlUHn [U [ 5(a[ U 5S;d [S5e[ U 5S:Xa UR"R%U S5 Ma[ U 5S:XdMrUR R%U 5 M X1U'GM g )atEnsure 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 instancesrzMeach 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)r8r<r; extra_objectsextra_compile_argsextra_link_argsNr=def_filez9'def_file' element of build info dict no longer supportedmacros)rrz9'macros' element of build info dict must be 1- or 2-tuplerr)relistr enumeratertuplelenrwarningrfextension_name_rematchdictgetsetattrruntime_library_dirs define_macros undef_macrosrm) rEr3r"extext_name build_infokeyvalrrs rcheck_extensions_listbuild_ext.check_extensions_list[s*d++%L  +FA#y))c5))SX])4 $' H KK:  x--2C2I2I(2S2S)< j$//)8H&;C $Z' R  ^^H-F$&!#% #E&ue44Uv9M145zQ((//a9Uq))007$ qMU,rcURUR5 /nURHnURUR5 M U$N)rr3rpr)rE filenamesrs rget_source_filesbuild_ext.get_source_filessA ""4??3 ??C   S[[ )#rcURUR5 /nURH-nURURUR55 M/ U$r)rr3rmget_ext_fullpathrr)rEoutputsrs r get_outputsbuild_ext.get_outputssK ""4??3 ??C NN400: ;#rcURUR5 UR(aUR5 gUR 5 gr)rr3rC_build_extensions_parallel_build_extensions_serialrDs rrbuild_ext.build_extensionss3 ""4??3 ==  + + -  ) ) +rc(URnURSLa[R"5nSSKJn UcUR 5 gW"US9nURVs/sHoCRURU5PM nn[URU5H/upFURU5 UR5 SSS5 M1 SSS5 g![ a SnNf=fs snf!,(df  Mb=f!,(df  g=f)NTr)ThreadPoolExecutor) max_workers) rCrh cpu_countconcurrent.futuresr ImportErrorrr3submitbuild_extensionzip_filter_build_errorsresult)rEworkersrexecutorrfuturesfuts rr$build_ext._build_extensions_parallels-- ==D llnG  = ?  ) ) +  G 4FJooFUs 4 4c:o  9..s3JJL43: 5 4 G 43 5 4sGCD!%C,.D4C1 D C)(C),D1 D ;D DcURH.nURU5 URU5 SSS5 M0 g!,(df  MB=fr)r3rr)rErs rr"build_ext._build_extensions_serials;??C**3/$$S)0/#//s A A c## Sv g![[[4aGnUR(deUR SR UR U55 SnAgSnAff=f7f)Nz"building extension "{}" failed: {})rrr optionalwarnformatrr)rEres rrbuild_ext._filter_build_errorssQ P  = P<< II:AA#((AN O O Ps*A( A(A%=A A( A%%A(c URnUb[U[[45(d[ SUR -5e[ U5nURUR 5nX!R-nUR(d3[XCS5(d"[R"SUR 5 g[R"SUR 5 URX!5nUR=(d /nUR SSnUR"HnUR%U45 M UR&R)UUR*UUR,URUURS9nUSSUlUR0(aUR3UR05 UR4=(d /nUR6=(d UR&R9U5n UR&R;UUUR=U5UR>UR@UURCU5URUR*U S9 g)Nzjin 'ext_modules' option (extension '%s'), 'sources' must be present and must be a list of source filenamesnewerz$skipping '%s' extension (up-to-date)zbuilding '%s' extension) output_dirrr8r*extra_postargsdepends)r;r<rrexport_symbolsr*r6 target_lang)"rrerrrrrsortedrrr,rrr*info swig_sourcesrrrrmr?compiler6r8_built_objectsrrprlanguagedetect_languagelink_shared_object get_librariesr<rget_export_symbols) rErrext_pathr extra_argsrr:objectsrs rrbuild_ext.build_extensions++ ?*WtUm"D"D%-/2xx8  /((2KK' k'WEE IIJ#>?##F+'22 $""6* yy,DNN,)$' == OOF #~~((")#F!)F HH(& 9 JJx4"88 9# rc6[RS:Xag[RS:XaUSHNn[RRSU-S5n[RR U5(dMLUs $ g[ S[R-5e)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. posixr@rM)z1.3z1.2z1.1z c:\swig%szswig.exez>I don't know how to find (much less run) SWIG on platform '%s')rhrrrnroisfiler )rEversfns rrbuild_ext.find_swigs~ 77g  WW_.WW\\,"5zB77>>"%%I. "(#%'WW- rcURU5nURS5nURUS5nUR(dN[R R "USSU/-6n[R R URU5$SR USS5nURS5n[R RURU55n[R R Xt5$)zReturns the path of the filename for a given extension. The file is located in `build_lib` or directly in the package (inplace option). rYrNrbuild_py) get_ext_fullnamergget_ext_filenamer!rhrnror4rabspathget_package_dir)rErfullnamemodpathfilenamer7r package_dirs rrbuild_ext.get_ext_fullpaths ((2..%((5||ww||WSb\XJ%>?H77<<9 9((71R=)--j9ggooh&>&>w&GH ww||K22rcDURcU$URS-U-$)zKReturns the fullname of a given extension name. Adds the `package.` prefixrY)r7)rErs rrbuild_ext.get_ext_fullnames' << O<<#%0 0rcSSKJn URS5nU"S5n[RR "U6U-$)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"). rrwrY EXT_SUFFIX)rIrwrgrhrnro)rErrwr ext_suffixs rr build_ext.get_ext_filenames7 />>#&#L1 ww||X&33rchURRS5SnURS5 SU-nS U-nXAR ;aUR RU5 UR $![a6 SURS5R SS5R S5-nNzf=f) 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. rYrascii_U_punycode-_PyInit)rrrgencodeUnicodeEncodeErrorreplacedecoderrm)rErrrr} initfunc_names rrbuild_ext.get_export_symbolss xx~~c"2&  KK 4ZF 6)  2 2 2    % %m 4!!!" XDKK 3;;D$GNNwWWF XsA11=B10B1c[RS:XavSSKJn [ UR U5(dTSnUR (aUS-nU[RS- [RS- S-4-nURU/-$OSS K J n S nU"S 5(a`[[S 5(aS nOH[RS:XaS nO1S[R;aU"S5S:waS nOU"S5S:XaS nU(aU"S5nURSU-/-$UR[R"5-$)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). rQr) MSVCCompilerz python%d%d_drFrZgetandroidapilevelTrU_PYTHON_HOST_PLATFORMANDROID_API_LEVELrMACHDEP LDVERSIONrW)rjru _msvccompilerr'rer?r* hexversionr;rIrwhasattrrhenvironr pythonlib)rErr'templater5rwlink_libpython ldversions rrbuild_ext.get_librariess$ <<7 " 4dmm\::'::'$H$NNb(^^r)T1( }} {22;( 3"N0113 455%)N\\X-%)N, :%&9:a?)-' 2h>)-*;7 }}9(<'===}}z33555r)rr4r6r?r*r9r3r,r8r!r;r<r>r7rCr5r=r@rArBr:r1)"__name__ __module__ __qualname____firstlineno__ descriptionrhrisep_byr user_optionsboolean_optionsr help_optionsrFrrrrrrrr contextlibcontextmanagerrrrrrrr rr__static_attributes__rrrr)s2LK($bjj 0FGQ   *n -     rPsd  ?-#!JJUV k 6k 6r