o
    6a                     @   sL   d Z ddlZddlmZ edejjZedejjZ	G dd deZdS )zdistutils.extension

Provides the Extension class, used to describe C/C++ extension
modules in setup scripts.

Overridden to support f2py.

    N)	Extensionz.*\.(cpp|cxx|cc)\Zz!.*\.(f90|f95|f77|for|ftn|f|pyf)\Zc                   @   sL   e Zd ZdZ																	d	ddZdd Zdd ZdS )
r   a  
    Parameters
    ----------
    name : str
        Extension name.
    sources : list of str
        List of source file locations relative to the top directory of
        the package.
    extra_compile_args : list of str
        Extra command line arguments to pass to the compiler.
    extra_f77_compile_args : list of str
        Extra command line arguments to pass to the fortran77 compiler.
    extra_f90_compile_args : list of str
        Extra command line arguments to pass to the fortran90 compiler.
    Nc                 C   s   t j| |g |||||||	|
||d || _|pg | _t| jtr4dd l}d}|j|tdd | j	 | _|p7g | _
|| _|p?g | _|pDg | _|pIg | _|pNg | _d S )N)
include_dirsdefine_macrosundef_macroslibrary_dirs	librariesruntime_library_dirsextra_objectsextra_compile_argsextra_link_argsexport_symbolsr   z4swig_opts is specified as a string instead of a list   )
stacklevel)old_Extension__init__sources	swig_opts
isinstancestrwarningswarnSyntaxWarningsplitdependslanguagef2py_optionsmodule_dirsextra_f77_compile_argsextra_f90_compile_args)selfnamer   r   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   msg r"   ;/usr/lib/python3/dist-packages/numpy/distutils/extension.pyr   !   s6   





zExtension.__init__c                 C   s"   | j D ]}tt|r dS qdS NTF)r   
cxx_ext_rer   r   sourcer"   r"   r#   has_cxx_sources[   s
   
zExtension.has_cxx_sourcesc                 C   s   | j D ]	}t|r dS qdS r$   )r   fortran_pyf_ext_rer&   r"   r"   r#   has_f2py_sourcesa   s
   
zExtension.has_f2py_sources)NNNNNNNNNNNNNNNNN)__name__
__module____qualname____doc__r   r(   r*   r"   r"   r"   r#   r      s,    
:r   )
r.   redistutils.extensionr   r   compileImatchr%   r)   r"   r"   r"   r#   <module>   s    