o
    k)h                     @   s   d dl Z d dlmZ d dlmZ d dlmZ e  dkr"d dlm	Z	 G dd deZ
G d	d
 d
e
ZG dd deZe  dkrRG dd de	ZG dd deZdS dS )    N)UnixCCompiler)find_executable)simple_version_matchZWindows)MSVCCompilerc                   @   &   e Zd ZdZdZdZdZd	ddZdS )
IntelCCompilerz=A modified Intel compiler compatible with a GCC-built Python.ZinteliccZfPICr   c                 C   ~   t | ||| |  }|r|dk rdnd}d|| _| j}t dkr(d}nd}| j|||d|d	 |d
 | d	 d d S )N15openmpqopenmpz7icc -fPIC -fp-model strict -O3 -fomit-frame-pointer -{}Darwin-Wl,-undefined,dynamic_lookup-sharedxiar cru -shared-intel compilerZcompiler_socompiler_cxxZarchiverZ
linker_exeZ	linker_sor   __init__Zget_versionformatcc_exeplatformsystemZset_executablesselfverbosedry_runforcevZmpoptr   Zshared_flag r"   >lib/python3.10/site-packages/numpy/distutils/intelccompiler.pyr      &   

zIntelCCompiler.__init__Nr   r   r   __name__
__module____qualname____doc__compiler_typer   Zcc_argsr   r"   r"   r"   r#   r   
   s    r   c                   @   s   e Zd ZdZdZdS )IntelItaniumCCompilerZinteler   N)r'   r(   r)   r+   r   r"   r"   r"   r#   r,   &   s    r,   c                   @   r   )
IntelEM64TCCompilerzT
    A modified Intel x86_64 compiler compatible with a 64bit GCC-built Python.
    Zintelemzicc -m64z-fPICr   c                 C   r	   )Nr
   r   r   zEicc -std=c99 -m64 -fPIC -fp-model strict -O3 -fomit-frame-pointer -{}r   r   r   r   r   r   r   r   r   r"   r"   r#   r   3   r$   zIntelEM64TCCompiler.__init__Nr%   r&   r"   r"   r"   r#   r-   +   s    r-   c                   @   s,   e Zd ZdZdZdZd
ddZddd	ZdS )IntelCCompilerWzQ
        A modified Intel compiler compatible with an MSVC-built Python.
        ZintelwZiclr   c                 C   $   t | ||| tdd}|| _d S )NzIntel\(R\).*?32,start)r   r   r   Z_IntelCCompilerW__versionr   r   r   r    Zversion_matchr"   r"   r#   r   Q      

zIntelCCompilerW.__init__Nc                 C   sH   t | | | d| _| d| _| d| _g d| _g d| _d S )Nzicl.exeZxilibZxilink)/nologoz/O3z/MD/W3	/Qstd=c99)r4   z/Odz/MDdr5   r6   z/Z7z/D_DEBUG)r   
initializeZfind_exeZcclibZlinkerZcompile_optionsZcompile_options_debug)r   Z	plat_namer"   r"   r#   r7   V   s   
zIntelCCompilerW.initializer%   )N)r'   r(   r)   r*   r+   r   r   r7   r"   r"   r"   r#   r.   J   s    
r.   c                   @   s   e Zd ZdZdZdddZdS )IntelEM64TCCompilerWze
        A modified Intel x86_64 compiler compatible with
        a 64bit MSVC-built Python.
        Zintelemwr   c                 C   r/   )NzIntel\(R\).*?64,r0   )r   r   r   Z_IntelEM64TCCompilerW__versionr2   r"   r"   r#   r   g   r3   zIntelEM64TCCompilerW.__init__Nr%   )r'   r(   r)   r*   r+   r   r"   r"   r"   r#   r9   `   s    r9   )r   Zdistutils.unixccompilerr   Znumpy.distutils.exec_commandr   Znumpy.distutils.ccompilerr   r   Znumpy.distutils.msvc9compilerr   r   r,   r-   r.   r9   r"   r"   r"   r#   <module>   s    