o
    g                     @   sF   d dl mZ d dlmZ d
ddZG dd deZG dd	 d	eZdS )    )Command)logNc                 C   sF   | rd S | d u r
g } |  d ddlm} dd l}|jj}|| d S )N   r   )show_fcompilers)appendnumpy.distutils.fcompilerr   distutils.corecore_setup_distribution)_cacher   	distutilsdist r   ^/var/www/visachat/venv/lib/python3.10/site-packages/numpy/distutils/command/config_compiler.pyshow_fortran_compilers   s   
r   c                   @   sJ   e Zd ZdZdZg dZdddefgZg dZdd	 Z	d
d Z
dd ZdS )	config_fcz Distutils command to hold user specified options
    to Fortran compilers.

    config_fc command is used by the FCompiler.customize() method.
    z2specify Fortran 77/Fortran 90 compiler information)
)z
fcompiler=Nzspecify Fortran compiler type)zf77exec=Nzspecify F77 compiler command)zf90exec=Nzspecify F90 compiler command)z	f77flags=Nzspecify F77 compiler flags)z	f90flags=Nzspecify F90 compiler flags)zopt=Nzspecify optimization flags)zarch=Nz0specify architecture specific optimization flags)debuggz"compile with debugging information)nooptNzcompile without optimization)noarchNz+compile without arch-dependent optimizationzhelp-fcompilerNz list available Fortran compilers)r   r   r   c                 C   s@   d | _ d | _d | _d | _d | _d | _d | _d | _d | _d | _	d S N)
	fcompilerf77execf90execf77flagsf90flagsoptarchr   r   r   selfr   r   r   initialize_options/   s   
zconfig_fc.initialize_optionsc                 C      t d | d}| d}| d}| d}| ||||g}dD ]O}g }|D ]}t||}	|	d urDt|	ts;|	j}	|	|vrD||	 q(|sJd }
n|d }
t|dkr]t 	d	||f  |
rq|D ]}t||d u rpt
|||
 qaq"d S )
NzUunifying config_fc, config, build_clib, build_ext, build commands --fcompiler options
build_clib	build_extconfigbuild)r   r   r   J  commands have different --%s options: %s, using first in list as defaultr   infoget_finalized_commandgetattr
isinstancestrcompiler_typer   lenwarnsetattrr   r"   r#   r$   r%   cmd_listalcvv1r   r   r   finalize_options;   s2   






zconfig_fc.finalize_optionsc                 C      d S r   r   r   r   r   r   runR      zconfig_fc.run)__name__
__module____qualname____doc__descriptionuser_optionsr   help_optionsboolean_optionsr    r8   r:   r   r   r   r   r      s    r   c                   @   s2   e Zd ZdZdZdgZdd Zdd Zdd	 Zd
S )	config_cczN Distutils command to hold user specified options
    to C/C++ compilers.
    z"specify C/C++ compiler information)z	compiler=Nzspecify C/C++ compiler typec                 C   s
   d | _ d S r   compilerr   r   r   r   r    a   s   
zconfig_cc.initialize_optionsc                 C   r!   )
NzTunifying config_cc, config, build_clib, build_ext, build commands --compiler optionsr"   r#   r$   r%   rE   r   r   r&   r'   r1   r   r   r   r8   d   s2   






zconfig_cc.finalize_optionsc                 C   r9   r   r   r   r   r   r   r:   |   r;   zconfig_cc.runN)	r<   r=   r>   r?   r@   rA   r    r8   r:   r   r   r   r   rD   V   s    rD   r   )r   r   numpy.distutilsr   r   r   rD   r   r   r   r   <module>   s
    
D