o
    U=ºip  ã                   @   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_f90Ú	linker_soÚ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   úbC:\Users\psant\Downloads\PAF backend\school\venv\Lib\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)r2   ZflangrtiZompstub)r   Úget_librariesÚextendr   r   r   r   r3   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..ÚlibN)r   Úget_library_dirsr   r0   Úappendr   r   )r   r   Z	flang_dirr   r   r   r8   ]   s   
z$PGroupFlangCompiler.get_library_dirsc                 C   ó   g S ©Nr   r    r   r   r   r   f   ó   zPGroupFlangCompiler.get_flagsc                 C   r:   r;   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   r:   r;   r   r    r   r   r   Úget_flags_archr   r<   z"PGroupFlangCompiler.get_flags_archc                 C   s   t ‚r;   )ÚNotImplementedErrorr'   r   r   r   r)   u   r<   z.PGroupFlangCompiler.runtime_library_dir_option)r*   r+   r,   r-   r.   r/   Zar_exeZpossible_executablesr0   Zlibrary_switchr1   r3   Ú	functoolsÚ	lru_cacher8   r   r=   r$   r!   r>   r)   r   r   r   r   r   C   s2    ù


Ú__main__)Úlogé   )Úcustomized_fcompilerr2   )Úcompilerr	   )ÚsysZnumpy.distutils.fcompilerr   r   Úos.pathr   r   r   Z	compilersr   r@   r   r*   Ú	distutilsrC   Úset_verbosityZnumpy.distutilsrE   ÚargvÚprintÚget_versionr   r   r   r   Ú<module>   s    66

ù