Viewing File: /usr/lib/python3.6/site-packages/setuptools/command/__pycache__/build_ext.cpython-36.opt-1.pyc

3

Xohu3@sddlZddlZddlZddlZddlmZddlmZddl	m
Z
ddlmZm
Z
ddlmZddlmZddlmZdd	lmZyddlmZed
Wnek
reZYnXe
dddlmZd
dZdZdZdZej dkrdZn>ej!dkr,yddl"Z"e#e"dZZWnek
r*YnXddZ$ddZ%GdddeZes^ej!dkrjd!ddZ&ndZd"ddZ&dd Z'dS)#N)	build_ext)	copy_file)new_compiler)customize_compilerget_config_var)DistutilsError)log)Library)sixzCython.Compiler.MainLDSHARED)_config_varscCsZtjdkrNtj}z$dtd<dtd<dtd<t|Wdtjtj|Xnt|dS)Ndarwinz0gcc -Wl,-x -dynamiclib -undefined dynamic_lookuprz -dynamiclibCCSHAREDz.dylibSO)sysplatform_CONFIG_VARScopyrclearupdate)compilerZtmpr/usr/lib/python3.6/build_ext.py_customize_compiler_for_shlibs
rFZsharedr
TntRTLD_NOWcCstr|SdS)N)	have_rtld)srrr<lambda>>srcCs>x8ddtjDD]"\}}}d|kr*|S|dkr|SqWdS)z;Return the file extension for an abi3-compliant Extension()css |]}|dtjkr|VqdS)N)impZC_EXTENSION).0rrrr	<genexpr>Csz"get_abi3_suffix.<locals>.<genexpr>z.abi3z.pydN)r!Zget_suffixes)suffix_rrrget_abi3_suffixAs
r&c@sveZdZddZddZddZddZd	d
ZddZd
dZ	ddZ
ddZddZddZ
ddZdddZdS)rcCs.|jd}|_tj|||_|r*|jdS)z;Build extensions in build directory, then copy if --inplacerN)Zinplace
_build_extruncopy_extensions_to_source)selfZold_inplacerrrr(Ks

z
build_ext.runc
Cs|jd}x|jD]}|j|j}|j|}|jd}dj|dd}|j|}tj	j|tj	j
|}tj	j|j|}	t|	||j
|jd|jr|j|ptj|dqWdS)Nbuild_py.)verbosedry_runT)get_finalized_command
extensionsget_ext_fullnamenameget_ext_filenamesplitjoinZget_package_dirospathbasename	build_librr.r/_needs_stub
write_stubcurdir)
r*r+extfullnamefilenameZmodpathpackageZpackage_dirZ
dest_filenameZsrc_filenamerrrr)Ss




z#build_ext.copy_extensions_to_sourcecCstj||}||jkr|j|}tjo4t|do4t}|r^td}|dt|}|t}t	|t
rtjj
|\}}|jj|tStr|jrtjj|\}}tjj|d|S|S)NZpy_limited_api
EXT_SUFFIXzdl-)r'r5ext_mapr
ZPY3getattrr&_get_config_var_837len
isinstancer	r8r9splitextshlib_compilerlibrary_filenamelibtype	use_stubs_links_to_dynamicr6r7)r*r@rAr?Zuse_abi3Zso_extfndrrrr5is"





zbuild_ext.get_ext_filenamecCs tj|d|_g|_i|_dS)N)r'initialize_optionsrJshlibsrD)r*rrrrQ~s
zbuild_ext.initialize_optionscCs2tj||jpg|_|j|jdd|jD|_|jrB|jx|jD]}|j|j|_qJWx|jD]}|j}||j	|<||j	|j
dd<|jr|j|pd}|otot
|t}||_||_|j|}|_tjjtjj|j|}|o||jkr|jj||rhtrhtj|jkrh|jjtjqhWdS)NcSsg|]}t|tr|qSr)rHr	)r"r?rrr
<listcomp>sz.build_ext.finalize_options.<locals>.<listcomp>r,r-Fr0)r'finalize_optionsr2Zcheck_extensions_listrRsetup_shlib_compilerr3r4
_full_namerDr6links_to_dynamicrMrHr	rNr<r5
_file_namer8r9dirnamer7r;library_dirsappendr>runtime_library_dirs)r*r?r@ZltdnsrAZlibdirrrrrTs,

zbuild_ext.finalize_optionscCst|j|j|jd}|_t||jdk	r8|j|j|jdk	rbx|jD]\}}|j	||qJW|j
dk	rx|j
D]}|j|qtW|jdk	r|j
|j|jdk	r|j|j|jdk	r|j|j|jdk	r|j|jtj||_dS)N)rr/force)rrr/r^rJrZinclude_dirsZset_include_dirsZdefineZdefine_macroZundefZundefine_macro	librariesZ
set_librariesrZZset_library_dirsZrpathZset_runtime_library_dirsZlink_objectsZset_link_objectslink_shared_object__get__)r*rr4valueZmacrorrrrUs(






zbuild_ext.setup_shlib_compilercCst|tr|jStj||S)N)rHr	export_symbolsr'get_export_symbols)r*r?rrrrds
zbuild_ext.get_export_symbolscCs\|j|j}z@t|tr"|j|_tj|||jrL|jdj	}|j
||Wd||_XdS)Nr+)Z_convert_pyx_sources_to_langrrHr	rJr'build_extensionr<r1r;r=)r*r?Z	_compilercmdrrrres
zbuild_ext.build_extensioncsPtjdd|jDdj|jjddd	dgtfdd|jDS)
z?Return true if 'ext' links to a dynamic lib in the same packagecSsg|]
}|jqSr)rV)r"librrrrSsz.build_ext.links_to_dynamic.<locals>.<listcomp>r,Nr-rc3s|]}|kVqdS)Nr)r"Zlibname)libnamespkgrrr#sz-build_ext.links_to_dynamic.<locals>.<genexpr>r0)dictfromkeysrRr7rVr6anyr_)r*r?r)rhrirrWs zbuild_ext.links_to_dynamiccCstj||jS)N)r'get_outputs_build_ext__get_stubs_outputs)r*rrrrmszbuild_ext.get_outputscs6fddjD}tj|j}tdd|DS)Nc3s0|](}|jrtjjjf|jjdVqdS)r,N)r<r8r9r7r;rVr6)r"r?)r*rrr#sz0build_ext.__get_stubs_outputs.<locals>.<genexpr>css|]\}}||VqdS)Nr)r"baseZfnextrrrr#s)r2	itertoolsproduct!_build_ext__get_output_extensionslist)r*Zns_ext_basesZpairsr)r*rZ__get_stubs_outputss

zbuild_ext.__get_stubs_outputsccs"dVdV|jdjrdVdS)Nz.pyz.pycr+z.pyo)r1optimize)r*rrrZ__get_output_extensionssz!build_ext.__get_output_extensionsFcCs.tjd|j|tjj|f|jjdd}|rJtjj|rJt|d|j	st
|d}|jdjddd	td
dtjj
|jdd
dtddddtdddtddddg|j|r*ddlm}||gdd|j	d|jdj}|dkr||g|d|j	dtjj|r*|j	r*tj|dS)Nz writing stub loader for %s to %sr,z.pyz already exists! Please delete.w
zdef __bootstrap__():z-   global __bootstrap__, __file__, __loader__z%   import sys, os, pkg_resources, impz, dlz:   __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(     imp.load_dynamic(__name__,__file__)z   finally:z"     sys.setdlopenflags(old_flags)z     os.chdir(old_dir)z__bootstrap__()rr)byte_compileT)rtr^r/Zinstall_lib)rinforVr8r9r7r6existsrr/openwriteif_dlr:rXcloseZdistutils.utilrwr1rtunlink)r*
output_dirr?compileZ	stub_filefrwrtrrrr=sP




zbuild_ext.write_stubN)F)__name__
__module____qualname__r(r)r5rQrTrUrdrerWrmrnrrr=rrrrrJs
	rc

Cs(|j|j|||||||||	|
||
dS)N)linkZSHARED_LIBRARY)
r*objectsoutput_libnamerr_rZr\rcdebug
extra_preargsextra_postargs
build_temptarget_langrrrr`s
r`Zstaticc
CsRtjj|\}}
tjj|
\}}|jdjdr<|dd}|j|||||dS)Nxrg)r8r9r6rIrK
startswithZcreate_static_lib)r*rrrr_rZr\rcrrrrrrAr:r?rrrr`,scCstjdkrd}t|S)z
    In https://github.com/pypa/setuptools/pull/837, we discovered
    Python 3.3.0 exposes the extension suffix under the name 'SO'.
    rr-r)rrr-)rversion_infor)r4rrrrFDs
rF)
NNNNNrNNNN)
NNNNNrNNNN)(r8rrpr!Zdistutils.command.build_extrZ
_du_build_extZdistutils.file_utilrZdistutils.ccompilerrZdistutils.sysconfigrrZdistutils.errorsrZ	distutilsrZsetuptools.extensionr	Zsetuptools.externr
ZCython.Distutils.build_extr'
__import__ImportErrorrrrrrMrLrr4Zdlhasattrr|r&r`rFrrrr<module>sZ

	Q	

Back to Directory File Manager