o
    e                     @   s   d dl Z d dlZzd dlmZ W n ey   eZY nw e jdZedu r/d dl	m
  mZ eeddZedu r?eeddZedu rId dl	mZ G dd deeZeZdS )    N)
basestringzsetuptools.command.build_extZ_du_build_ext	build_ext)r   c                
       st   e Zd Zejddddddej fddd	d
dg	 Zejg d Z fddZ fddZdddZ	 fddZ
  ZS )r   )cython-cplusNzgenerate C++ source files)cython-create-listingNzwrite errors to a listing file)cython-line-directivesNzemit source line directiveszcython-include-dirs=Nz path to the Cython include files)cython-c-in-tempNz'put generated C files in temp directory)zcython-gen-pxiNz*generate .pxi file for public declarations)zcython-directives=Nzcompiler directive overrides)
cython-gdbNz$generate debug information for cygdb)zcython-compile-time-envNzcython compile time environment)r   r   r   r   r   c                    sH   t t|   d| _d| _d| _d | _d | _d| _d| _	d| _
d | _d S )Nr   F)superr   initialize_optionscython_cpluscython_create_listingcython_line_directivescython_include_dirscython_directivescython_c_in_tempcython_gen_pxi
cython_gdbcython_compile_time_envself	__class__ JD:\Projects\ConvertPro\env\Lib\site-packages\Cython/Distutils/build_ext.pyr
   6   s   
zbuild_ext.initialize_optionsc                    sT   t t|   | jd u rg | _nt| jtr| jtj| _| j	d u r(i | _	d S d S N)
r	   r   finalize_optionsr   
isinstancer   splitospathsepr   r   r   r   r   r   B   s   


zbuild_ext.finalize_optionsFc                 C   s   t | |p
t |||S r   )getattr)r   	extensionZoption_namedefaultr   r   r   get_extension_attrL   s   zbuild_ext.get_extension_attrc                    s>  ddl m} t| j}t|dg D ]}||vr|| qt|j|_|jt| j D ]}||vr6|| q+t| j}t	|drG|
|j | |drPd|_| |d| |d||| |d	re| jnd | |d
| |dt|dd | j|dd dd	}||f| j| jdkd|d }|j|_tt| | d S )Nr   )	cythonizer   r   r   zc++r   r   r   r   r   Zno_c_in_tracebackr   )r"   )	Zuse_listing_fileZemit_linenumsZinclude_pathZcompiler_directives	build_dirZgenerate_pxiZ	gdb_debugZc_line_in_tracebackZcompile_time_env)forcequiet)ZCython.Build.Dependenciesr$   listr   r    appendZinclude_dirsdictr   hasattrupdater#   languageZ
build_tempr&   verbosesourcesr	   r   build_extension)r   extr$   ZincludesZinclude_dirZ
directivesoptionsZnew_extr   r   r   r0   O   sJ   








zbuild_ext.build_extension)F)__name__
__module____qualname__
_build_extZuser_optionsZsep_byZboolean_optionsr
   r   r#   r0   __classcell__r   r   r   r   r      s&    

)sysr   __builtin__r   ImportErrorstrmodulesgetZ_build_ext_moduleZdistutils.command.build_extcommandr   r    r6   objectZnew_build_extr   r   r   r   <module>   s"    h