3
���h
� @ sL d Z ddlZddlmZ ejdej�jZejdej�jZ G dd� de�ZdS )z�distutils.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 @ s* e Zd ZdZd dd�Zdd� Zdd� ZdS )
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�
|| _|
p0g | _t| jt�rhdd l}d}|j|tdd� | jj � | _|png | _
|| _|p~g | _|p�g | _
|p�g | _|p�g | _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" |