B
    Ke[                 @   s   d dl mZmZ d dlmZmZmZmZ d dlZd dl	m
Z d dlmZ d dlmZ dd Zdd
dZedkrd dlmZ eed dS )    )divisionprint_function)joinsplitdirnameabspathN)get_build_version)get_include)get_python_incc              C   s   t  } | r| dkrdS dS )N   TF)get_msvc_build_version)Zmsver r   /lib/python3.7/site-packages/mkl_random/setup.pyneeds_mingw_ftime_workaround#   s    r    c          
      s  ddl m} ddlm} |d| |}|dddg}tjdkrJ|d	 tjd
s`tjdkrddnd}d}t	|d |j
dt	 d| |t t g|d gt	 dgdd y ddlm} t	|dg}	d}
W nV tk
r$ } z6d}
t	|dg}	t|	d stt|d d W d d }~X Y nX dddg}t rB|d |	 fd d!d"D  }	|dg }|jd#|	| |g|d$ |d%t	dd&f |d%t	dd'f |d( |
r||j| gd)|_|S )*Nr   )Configuration)get_infoZ
mkl_randomZmkl	librariesZmkl_rtZwin32ZAdvapi32wincygwinz/Q-srcZ	mkl_distszmkl_distributions.cppz	std=c++11z*.hzc++)sourcesr   include_dirsZextra_compiler_argsZdependsZlanguage)	cythonizezmklrand.pyxTFz	mklrand.cz. z0Cython is required to build the initial .c file.)Z_FILE_OFFSET_BITSZ64)Z_LARGEFILE_SOURCE1)Z_LARGEFILE64_SOURCEr   )ZNEED_MINGW_TIME_WORKAROUNDNc                s   g | ]}t  |qS r   )r   ).0x)wdirr   r   
<listcomp>\   s    z!configuration.<locals>.<listcomp>)zrandomkit.cZmklrand)namer   r   r   Zdefine_macros.zrandomkit.hzmkl_distributions.hZtests)Zinclude_path)Znumpy.distutils.misc_utilr   Znumpy.distutils.system_infor   getsysplatformappend
startswithr   Zadd_libraryget_numpy_includeget_python_includeZCython.Buildr   ImportErrorexists
ValueErrorstrr   add_extensionZadd_data_filesZadd_data_dirZext_modules)parent_packageZtop_pathr   r   ZconfigZlibsQZpdirr   r   Zhave_cythoneZdefsr   )r   r   configuration.   s\    






r1   __main__)setup)r1   )r   N)Z
__future__r   r   os.pathr   r   r   r   r#   Zdistutils.msvccompilerr   r   Znumpyr	   r'   Zdistutils.sysconfigr
   r(   r   r1   __name__Znumpy.distutils.corer3   r   r   r   r   <module>   s   
B