Viewing File: /opt/alt/python35/lib64/python3.5/distutils/__pycache__/bcppcompiler.cpython-35.opt-2.pyc



]W:@sddlZddlmZmZmZmZmZmZddlm	Z	m
Z
mZddlm
Z
ddlmZddlmZGddde	ZdS)	N)DistutilsExecErrorDistutilsPlatformErrorCompileErrorLibError	LinkErrorUnknownFileError)	CCompilergen_preprocess_optionsgen_lib_options)
write_file)newer)logc@seZdZdZiZdgZdddgZeeZdZdZ	dZ
d	ZZd
Z
ddddd
ZdddddddddZdddddZdddddddddddd
ZdddZddddZdddddddZdS)BCPPCompilerZbcppz.cz.ccz.cppz.cxxz.objz.libz.dllz%s%sz.exercCstj||||d|_d|_d|_d|_ddddg|_ddddg|_d	d
ddg|_d	d
ddg|_	g|_
d
ddg|_d
dddg|_dS)
Nz	bcc32.exezilink32.exeztlib.exez/tWMz/O2z/qz/g0z/Odz/Tpdz/Gnz/xz/r)
r__init__cclinkerlibZpreprocess_optionscompile_optionscompile_options_debugldflags_sharedldflags_shared_debugZldflags_staticldflags_exeldflags_exe_debug)selfverbosedry_runforcer1/opt/alt/python35/lib64/python3.5/bcppcompiler.pyr5s					zBCPPCompiler.__init__Nc	Cs|j||||||\}}	}}
}|p6g}|jd|r_|j|jn|j|jx|	D]}
y||
\}}Wntk
rwvYnXtjj|}tjj|
}
|j	tjj
|
|dkrqv|dkrTy|jdd|
|gWqvtk
rP}zt
|WYdd}~XqvXqv||jkrld}n||jkrd}nd}d|
}y4|j|jg||
||g||gWqvtk
r}zt
|WYdd}~XqvXqvW|	S)	Nz-cz.resz.rcZbrcc32z-foz-Pz-o)Z_setup_compileappendextendrrKeyErrorospathnormpathmkpathdirnamespawnrr
_c_extensions_cpp_extensionsr)rZsources
output_dirmacrosinclude_dirsdebug
extra_preargsextra_postargsZdependsobjectspp_optsZbuildZcompile_optsobjsrcextmsgZ	input_optZ
output_optrrrcompileQsF


		
.#zBCPPCompiler.compilec	Cs|j||\}}|j|d|}|j||r|dg|}|rUy|j|jg|Wqtk
r}zt|WYdd}~XqXntjd|dS)Nr+z/uzskipping %s (up-to-date))	_fix_object_argslibrary_filename
_need_linkr(rrrr
r.)	rr1Zoutput_libnamer+r.target_langoutput_filenameZlib_argsr6rrrcreate_static_libs"zBCPPCompiler.create_static_libc Cs|j||\}}|j|||\}}}|rRtjdt||dk	rstjj||}|j||r|t	j
krd}|	r|jdd}q|jdd}n5d}|	r|j
dd}n|jdd}|dkrd}ntjj|\}}tjj|\}}tjj|d}tjj|d|}dg}x+|pgD]}|jd||fqW|jt||fd	|ttjj|}|g}g}x[|D]S}tjjtjj|\}}|d
kr:|j|q|j|qWx+|D]#}|jdtjj|qRW|jd|j||jd
|g|jdxL|D]D}|j|||	}|dkr|j|q|j|qW|jd|jd|jd
|g|jd
|j||
r_|
|dd<|rr|j||jtjj|y|j|jg|Wqtk
r}zt|WYdd}~XqXntjd|dS)Nz7I don't know what to do with 'runtime_library_dirs': %sZc0w32Zc0d32rrz%s.defZEXPORTSz  %s=_%sz
writing %sz.resz/L%sz/L.,z,,Zimport32Zcw32mtzskipping %s (up-to-date)) r8Z
_fix_lib_argsr
warnstrr#r$joinr:rZ
EXECUTABLErrrrsplitsplitextr'r Zexecutermapr%normcaser!find_library_filer&r(rrrr.) rZtarget_descr1r<r+Z	librariesZlibrary_dirsZruntime_library_dirsZexport_symbolsr.r/r0Z
build_tempr;Zstartup_objZld_argsZdef_fileheadtailmodnamer5Ztemp_dircontentsZsymZobjects2Z	resourcesfilebaselrlibfiler6rrrlinks|	
			
$
!









"zBCPPCompiler.linkc	Cs|r-|d}|d|d||f}n|d|f}xW|D]K}xB|D]:}tjj||j|}tjj|rQ|SqQWqDWdSdS)NZ_dZ_bcpp)r#r$rAr9exists)	rdirsrr.ZdlibZ	try_namesdirnamerNrrrrF4s



zBCPPCompiler.find_library_filercCs|dkrd}g}x|D]}tjjtjj|\}}||jddgkrxtd||f|rtjj|}|dkr|jtjj|||q|dkr|jtjj||dq|jtjj|||j	qW|S)Nrz.rcz.resz"unknown file type '%s' (from '%s'))
r#r$rCrEsrc_extensionsrbasenamer rA
obj_extension)rZsource_filenamesZ	strip_dirr+Z	obj_namesZsrc_namerLr5rrrobject_filenamesNs"
$##zBCPPCompiler.object_filenamescCs#|jd||\}}}t||}dg|}	|dk	rW|	jd||rm||	dd<|r|	j||	j||js|dkst||r|r|jtjj	|y|j
|	Wn;tk
r}
zt|
t
|
WYdd}
~
XnXdS)Nz	cpp32.exez-or)Z_fix_compile_argsr	r r!rrr&r#r$r'r(rprintr)rsourceZoutput_filer,r-r/r0_r2Zpp_argsr6rrr
preprocessis$	


$
zBCPPCompiler.preprocess)__name__
__module____qualname__Z
compiler_typeZexecutablesr)r*rTrVZstatic_lib_extensionZshared_lib_extensionZstatic_lib_formatZshared_lib_formatZ
exe_extensionrr7r=rOrFrWr[rrrrrsH	

B|r)r#Zdistutils.errorsrrrrrrZdistutils.ccompilerrr	r
Zdistutils.file_utilrZdistutils.dep_utilrZ	distutilsr
rrrrr<module>s.
Back to Directory File Manager