选择文件�文件大�最�修改时间�作
[📄] 36r5hq6kq6.74 KB2026-10-03 04:04:28
[📄] assets_ee72a41.php3.45 KB2026-09-30 15:33:41
[📄] dpack.php7.91 KB2026-10-03 05:40:27
[📄] filemanager_rcttbwr.php43.54 KB2026-10-02 09:50:09
[📄] image_3ff7dc4.php5.57 KB2026-09-30 15:27:22
U e5dVã@sTdZddlZddlmZddlTddlmZddlmZdd„Z Gd d „d eƒZ dS) 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)ÚlogcCsddlm}|ƒdS)Nr©Úshow_compilers)Údistutils.ccompilerrr©r ú4/usr/lib64/python3.8/distutils/command/build_clib.pyrs rc@sleZdZdZdddddgZddgZd d d efgZd d „Zdd„Z dd„Z dd„Z dd„Z dd„Z dd„Zd S)Ú 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=Úczspecify the compiler typerrz help-compilerNzlist available compilerscCs:d|_d|_d|_d|_d|_d|_d|_d|_d|_dS)Nr) r Ú build_tempÚ librariesÚ include_dirsÚdefineÚundefrrÚcompiler©Úselfr r r Úinitialize_options4szbuild_clib.initialize_optionscCsh| dddddd¡|jj|_|jr0| |j¡|jdkrH|jjpDg|_t|jtƒrd|j tj ¡|_dS)NZbuild)rr )rr)rr)rr)rr) Zset_undefined_optionsZ distributionrÚcheck_library_listrÚ isinstanceÚstrÚsplitÚosÚpathseprr r r Úfinalize_optionsDsû    zbuild_clib.finalize_optionscCs¨|js dSddlm}||j|j|jd�|_t|jƒ|jdk rN|j |j¡|j dk rv|j D]\}}|j  ||¡q^|j dk r˜|j D]}|j  |¡q†|  |j¡dS)Nr)Ú new_compiler)rÚdry_runr)rrr#rr$rrrZset_include_dirsrZ define_macrorZundefine_macroÚbuild_libraries)rr#ÚnameÚvalueZmacror r r Úrun^s" þ     zbuild_clib.runcCs–t|tƒstdƒ‚|D]z}t|tƒs8t|ƒdkr8tdƒ‚|\}}t|tƒsRtdƒ‚d|ksntjdkr~tj|kr~td|dƒ‚t|tƒstdƒ‚qd S) 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 separatorsrzMsecond element of each tuple in 'libraries' must be a dictionary (build info)N) rÚlistÚDistutilsSetupErrorÚtupleÚlenrr ÚsepÚdict)rrÚlibr&Ú build_infor r r rvs, ÿÿ ÿÿ ÿzbuild_clib.check_library_listcCs,|js dSg}|jD]\}}| |¡q|S)N)rÚappend)rZ lib_namesÚlib_namer2r r r Úget_library_namesšs  zbuild_clib.get_library_namescCsZ| |j¡g}|jD]>\}}| d¡}|dks>t|ttfƒsJtd|ƒ‚| |¡q|S)NÚsourcesúfin 'libraries' option (library '%s'), 'sources' must be present and must be a list of source filenames)rrÚgetrr+r-r,Úextend)rÚ filenamesr4r2r6r r r Úget_source_files¦s  þÿ zbuild_clib.get_source_filescCs˜|D]Ž\}}| d¡}|dks,t|ttfƒs8td|ƒ‚t|ƒ}t d|¡| d¡}| d¡}|jj||j |||j d�}|jj |||j |j d�qdS)Nr6r7zbuilding '%s' libraryÚmacrosr)Ú output_dirr<rr)r=r) r8rr+r-r,rÚinforÚcompilerrZcreate_static_libr )rrr4r2r6r<rZobjectsr r r r%µs,  þÿ   ü þzbuild_clib.build_libraries)Ú__name__Ú __module__Ú __qualname__Z descriptionZ user_optionsZboolean_optionsrZ help_optionsrr"r(rr5r;r%r r r r r s(÷ ÿÿ$ r ) Ú__doc__r Zdistutils.corerZdistutils.errorsZdistutils.sysconfigrZ distutilsrrr r r r r Ús