zmc
2023-08-08 e792e9a60d958b93aef96050644f369feb25d61b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
U
G=®dƒ3ã
@s¤ddlZddlZddlZddlmZddlmZddlm    Z    ddl
m Z m Z ddl mZddlmZddlmZdd    lmZejržddlZd
d „e ¡DƒZn dd lmZzddlmZed ƒWnek
rÚeZYnXe dƒddl
mZdd„Z dZ!dZ"dZ#ej$dkrdZ"n>ej%dkrTzddl&Z&e'e&dƒZ"Z!Wnek
rRYnXdd„Z(dd„Z)Gdd„deƒZe"s†ej%dkr’d"dd„Z*nd Z#d#d!d„Z*dS)$éN)Ú    build_ext)Ú    copy_file)Ú new_compiler)Úcustomize_compilerÚget_config_var)ÚDistutilsError)Úlog)ÚLibrary)ÚsixcCs g|]\}}}|tjkr|‘qS©)ÚimpÚ C_EXTENSION)Ú.0ÚsÚ_Útpr r úSD:\z\workplace\VsCode\pyvenv\venv\Lib\site-packages\setuptools/command/build_ext.pyÚ
<listcomp>s
r©ÚEXTENSION_SUFFIXESzCython.Compiler.MainÚLDSHARED)Ú _config_varsc    CsZtjdkrNt ¡}z$dtd<dtd<dtd<t|ƒW5t ¡t |¡Xnt|ƒdS)NÚdarwinz0gcc -Wl,-x -dynamiclib -undefined dynamic_lookuprz  -dynamiclibÚCCSHAREDz.dylibÚSO)ÚsysÚplatformÚ _CONFIG_VARSÚcopyÚclearÚupdater)ÚcompilerÚtmpr r rÚ_customize_compiler_for_shlib$s
ÿ r#FZsharedrTÚntÚRTLD_NOWcCs tr|SdS)NÚ)Ú    have_rtld)rr r rÚif_dlFsr(cCs.tD]$}d|kr|S|dkr|SqdS)z;Return the file extension for an abi3-compliant Extension()z.abi3z.pydNr)Úsuffixr r rÚget_abi3_suffixJs
r*c@sveZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd d „Zd d„Z    dd„Z
dd„Z dd„Z dd„Z dd„Zddd„ZdS)rcCs.|jd}|_t |¡||_|r*| ¡dS)z;Build extensions in build directory, then copy if --inplacerN)ZinplaceÚ
_build_extÚrunÚcopy_extensions_to_source)ÚselfZ old_inplacer r rr,Ts
 
z build_ext.runc
Csª| d¡}|jD]”}| |j¡}| |¡}| d¡}d |dd…¡}| |¡}tj     |tj     
|¡¡}tj     |j |¡}    t |    ||j |jd|jr| |pœtj|d¡qdS)NÚbuild_pyÚ.éÿÿÿÿ)ÚverboseÚdry_runT)Úget_finalized_commandÚ
extensionsÚget_ext_fullnameÚnameÚget_ext_filenameÚsplitÚjoinZget_package_dirÚosÚpathÚbasenameÚ    build_librr2r3Ú _needs_stubÚ
write_stubÚcurdir)
r.r/ÚextÚfullnameÚfilenameÚmodpathÚpackageÚ package_dirZ dest_filenameZ src_filenamer r rr-\s&
 
 
 
 
 
ÿþz#build_ext.copy_extensions_to_sourcecCs¸t ||¡}||jkr´|j|}tj o6t|dƒo6tƒ}|r`tdƒ}|dt|ƒ …}|tƒ}t    |t
ƒrˆt j   |¡\}}|j |t¡Str´|jr´t j  |¡\}}t j  |d|¡S|S)NZpy_limited_apiÚ
EXT_SUFFIXzdl-)r+r8Úext_mapr
ÚPY2Úgetattrr*rÚlenÚ
isinstancer    r;r<ÚsplitextÚshlib_compilerÚlibrary_filenameÚlibtypeÚ    use_stubsÚ_links_to_dynamicr9r:)r.rCrDrBZuse_abi3Zso_extÚfnÚdr r rr8rs& 
 
ÿý
 
 
zbuild_ext.get_ext_filenamecCs t |¡d|_g|_i|_dS©N)r+Úinitialize_optionsrOÚshlibsrI©r.r r rrW‡s
zbuild_ext.initialize_optionscCs,t |¡|jpg|_| |j¡dd„|jDƒ|_|jrB| ¡|jD]}| |j¡|_qH|jD]Ä}|j}||j    |<||j    | 
d¡d<|jrš|  |¡pœd}|o°t o°t |tƒ }||_||_| |¡}|_tj tj |j|¡¡}|r||jkr|j |¡|rbt rbtj|jkrb|j tj¡qbdS)NcSsg|]}t|tƒr|‘qSr )rMr    ©rrBr r rr‘s
ÿz.build_ext.finalize_options.<locals>.<listcomp>r0r1F)r+Úfinalize_optionsr5Zcheck_extensions_listrXÚsetup_shlib_compilerr6r7Ú
_full_namerIr9Úlinks_to_dynamicrRrMr    rSr?r8Ú
_file_namer;r<Údirnamer:r>Ú library_dirsÚappendrAÚruntime_library_dirs)r.rBrCZltdÚnsrDZlibdirr r rr[s,
 
 
 
 zbuild_ext.finalize_optionscCsæt|j|j|jd}|_t|ƒ|jdk    r8| |j¡|jdk    r^|jD]\}}|     ||¡qH|j
dk    r~|j
D]}|  |¡qn|j dk    r”|  |j ¡|jdk    rª| |j¡|jdk    rÀ| |j¡|jdk    rÖ| |j¡t |¡|_dS)N)r!r3Úforce)rr!r3rerOr#Ú include_dirsZset_include_dirsZdefineZ define_macroZundefZundefine_macroÚ    librariesZ set_librariesraZset_library_dirsZrpathZset_runtime_library_dirsZ link_objectsZset_link_objectsÚlink_shared_objectÚ__get__)r.r!r7ÚvalueZmacror r rr\ªs.ÿ 
 
 
 
 
 
 
 
 zbuild_ext.setup_shlib_compilercCst|tƒr|jSt ||¡SrV)rMr    Úexport_symbolsr+Úget_export_symbols©r.rBr r rrlÅs
zbuild_ext.get_export_symbolscCs\| ¡|j}z@t|tƒr"|j|_t ||¡|jrL| d¡j    }| 
||¡W5||_XdS)Nr/) Z_convert_pyx_sources_to_langr!rMr    rOr+Úbuild_extensionr?r4r>r@)r.rBZ    _compilerÚcmdr r rrnÊs
  zbuild_ext.build_extensioncsPt dd„|jDƒ¡‰d |j d¡dd…dg¡‰t‡‡fdd„|jDƒƒS)    z?Return true if 'ext' links to a dynamic lib in the same packagecSsg|]
}|j‘qSr )r])rÚlibr r rrÜsz.build_ext.links_to_dynamic.<locals>.<listcomp>r0Nr1r&c3s|]}ˆ|ˆkVqdSrVr )rÚlibname©ZlibnamesÚpkgr rÚ    <genexpr>Þsz-build_ext.links_to_dynamic.<locals>.<genexpr>)ÚdictÚfromkeysrXr:r]r9Úanyrgrmr rrrr^×s zbuild_ext.links_to_dynamiccCst |¡| ¡SrV)r+Ú get_outputsÚ_build_ext__get_stubs_outputsrYr r rrxàszbuild_ext.get_outputscs6‡fdd„ˆjDƒ}t |ˆ ¡¡}tdd„|DƒƒS)Nc3s0|](}|jrtjjˆjf|j d¡žŽVqdS)r0N)r?r;r<r:r>r]r9rZrYr rrtåsþz0build_ext.__get_stubs_outputs.<locals>.<genexpr>css|]\}}||VqdSrVr )rÚbaseZfnextr r rrtìs)r5Ú    itertoolsÚproductÚ!_build_ext__get_output_extensionsÚlist)r.Z ns_ext_basesÚpairsr rYrZ__get_stubs_outputsãs
 
þzbuild_ext.__get_stubs_outputsccs"dVdV| d¡jrdVdS)Nú.pyz.pycr/z.pyo)r4ÚoptimizerYr r rZ__get_output_extensionsîs z!build_ext.__get_output_extensionsFcCs0t d|j|¡tjj|f|j d¡žŽd}|rJtj |¡rJt|dƒ‚|j    s¼t
|dƒ}|  d ddd    t d
ƒd d tj  |j¡d ddt dƒdddt dƒdddt dƒdddg¡¡| ¡|r,ddlm}||gdd|j    d| d ¡j}|dkr ||g|d|j    dtj |¡r,|j    s,t |¡dS)!Nz writing stub loader for %s to %sr0r€z already exists! Please delete.ÚwÚ
zdef __bootstrap__():z-   global __bootstrap__, __file__, __loader__z    import sys, os, pkg_resourcesz, dlz6   from importlib.machinery import ExtensionFileLoaderz:   __file__ = pkg_resources.resource_filename(__name__,%r)z   del __bootstrap__z    if '__loader__' in globals():z       del __loader__z#   old_flags = sys.getdlopenflags()z   old_dir = os.getcwd()z   try:z(     os.chdir(os.path.dirname(__file__))z$     sys.setdlopenflags(dl.RTLD_NOW)z"     ExtensionFileLoader(__name__,z0                         __file__).load_module()z    finally:z"     sys.setdlopenflags(old_flags)z     os.chdir(old_dir)z__bootstrap__()r&r)Ú byte_compileT)rrer3Ú install_lib)rÚinfor]r;r<r:r9Úexistsrr3ÚopenÚwriter(r=r_ÚcloseÚdistutils.utilr„r4rÚunlink)r.Ú
output_dirrBÚcompileZ    stub_fileÚfr„rr r rr@ôsf
ÿÿ 
 
 þêÿ ÿ 
ÿzbuild_ext.write_stubN)F)Ú__name__Ú
__module__Ú __qualname__r,r-r8rWr[r\rlrnr^rxryr}r@r r r rrSs      rc Cs(| |j|||||||||    |
| | ¡ dSrV)ÚlinkZSHARED_LIBRARY) r.ÚobjectsÚoutput_libnamerrgrarcrkÚdebugÚ extra_preargsÚextra_postargsÚ
build_tempÚ target_langr r rrh(sürhZstaticc Cs^|dks t‚tj |¡\}} tj | ¡\}}| d¡ d¡rH|dd…}| ||||| ¡dS)NÚxrpé)ÚAssertionErrorr;r<r9rNrPÚ
startswithZcreate_static_lib)r.r”r•rrgrarcrkr–r—r˜r™ršrDr=rBr r rrh7s  ÿ)
NNNNNrNNNN)
NNNNNrNNNN)+r;rr{Zdistutils.command.build_extrZ _du_build_extÚdistutils.file_utilrÚdistutils.ccompilerrÚdistutils.sysconfigrrÚdistutils.errorsrÚ    distutilsrZsetuptools.extensionr    Zsetuptools.externr
rJr Z get_suffixesrÚimportlib.machineryZCython.Distutils.build_extr+Ú
__import__Ú ImportErrorrrr#r'rRrQrr7ÚdlÚhasattrr(r*rhr r r rÚ<module>s~       ÿ   
       Sü ü