o
    ʩZh                     @   s   d dl Z d dlmZ d dl mZ d dlmZmZmZ ddgZG dd deZ	d dl
Z
G dd deZed	krbd d
lmZ ed d dlmZ de jv rWeedd  dS eedd  dS dS )    N)	FCompiler)platform)joindirnamenormpathPGroupFCompilerPGroupFlangCompilerc                   @   s   e Zd ZdZdZdZedkr(ddgddgg d	ddgd
gddgdgdZdgZnddgdgddgdgdgddgdgdZdgZdZ	dZ
dd Zdd Zdd ZedkrXdd Zndd Zdd Zd S )!r   pgzPortland Group Fortran Compilerz1\s*pg(f77|f90|hpf|fortran) (?P<version>[\d.-]+).*darwin<F77>z-V	pgfortran-dynamiclib)r   -Mfixedr   Zlibtoolarz-crranlibZversion_cmdcompiler_f77Zcompiler_fixZcompiler_f90Z	linker_soZarchiverr    r   z<F90>-fpic-module z-Ic                 C   s   ddg}| j | S )Nz-Minform=informz-Mnosecond_underscore)	pic_flagsselfopt r   S/var/www/html/lang_env/lib/python3.10/site-packages/numpy/distutils/fcompiler/pg.py	get_flags+   s   
zPGroupFCompiler.get_flagsc                 C      dgS )Nz-fastr   r   r   r   r   get_flags_opt/      zPGroupFCompiler.get_flags_optc                 C   r   Nz-gr   r   r   r   r   get_flags_debug2   r    zPGroupFCompiler.get_flags_debugc                 C   s   g dS )N)z-dynamicz
-undefinedZdynamic_lookupr   r   r   r   r   get_flags_linker_so6      z#PGroupFCompiler.get_flags_linker_soc                 C   s   ddgS )Nz-sharedr   r   r   r   r   r   r#   :   r$   c                 C   s   d| S )Nz-R%sr   r   dirr   r   r   runtime_library_dir_option=   r$   z*PGroupFCompiler.runtime_library_dir_optionN)__name__
__module____qualname__compiler_typedescriptionversion_patternr   executablesr   module_dir_switchZmodule_include_switchr   r   r"   r#   r'   r   r   r   r   r      s@    		
c                   @   s   e Zd ZdZdZdZdZdgZddgdgdgdgdgedd	gdd
Zd	Z	dZ
dd Zejdddd Zdd Zdd Zdd Zdd Zdd Zdd ZdS )r   flangz$Portland Group Fortran LLVM Compilerz/\s*(flang|clang) version (?P<version>[\d.-]+).*zlib.exer   z	--versionNz/verbosez/OUT:r   r   c                 C   s   t | }|g d |S )N)r0   ZflangrtiZompstub)r   get_librariesextendr   r   r   r   r1   X   s   
z!PGroupFlangCompiler.get_libraries   )maxsizec                 C   s6   t | }t| jd d }|tt|dd |S )z%List of compiler library directories.r   r   z..lib)r   get_library_dirsr   r.   appendr   r   )r   r   Z	flang_dirr   r   r   r6   ]   s   
z$PGroupFlangCompiler.get_library_dirsc                 C      g S Nr   r   r   r   r   r   f      zPGroupFlangCompiler.get_flagsc                 C   r8   r9   r   r   r   r   r   get_flags_freei   r:   z"PGroupFlangCompiler.get_flags_freec                 C   r   r!   r   r   r   r   r   r"   l   r    z#PGroupFlangCompiler.get_flags_debugc                 C   r   )Nz-O3r   r   r   r   r   r   o   r    z!PGroupFlangCompiler.get_flags_optc                 C   r8   r9   r   r   r   r   r   get_flags_archr   r:   z"PGroupFlangCompiler.get_flags_archc                 C   s   t r9   )NotImplementedErrorr%   r   r   r   r'   u   r:   z.PGroupFlangCompiler.runtime_library_dir_option)r(   r)   r*   r+   r,   r-   Zar_exeZpossible_executablesr.   Zlibrary_switchr/   r1   	functools	lru_cacher6   r   r;   r"   r   r<   r'   r   r   r   r   r   C   s2    


__main__)log   )customized_fcompilerr0   )compilerr	   )sysZnumpy.distutils.fcompilerr   r   Zos.pathr   r   r   Z	compilersr   r>   r   r(   	distutilsrA   Zset_verbosityZnumpy.distutilsrC   argvprintget_versionr   r   r   r   <module>   s    66

