o
    Ô­jð  ã                   @   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   ÚlibtoolÚarz-crÚranlib©Úversion_cmdÚcompiler_f77Úcompiler_fixÚ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    úY/var/www/html/CropPilot/venv/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
-undefinedÚ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_switchÚ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)r8   ÚflangrtiÚompstub)r   Úget_librariesÚextendr   r    r    r!   r;   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   r5   Úappendr   r   )r   r   Ú	flang_dirr    r    r!   r@   ]   s   
z$PGroupFlangCompiler.get_library_dirsc                 C   ó   g S ©Nr    r$   r    r    r!   r"   f   ó   zPGroupFlangCompiler.get_flagsc                 C   rC   rD   r    r$   r    r    r!   Úget_flags_freei   rE   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   rC   rD   r    r$   r    r    r!   Úget_flags_archr   rE   z"PGroupFlangCompiler.get_flags_archc                 C   s   t ‚rD   )ÚNotImplementedErrorr,   r    r    r!   r.   u   rE   z.PGroupFlangCompiler.runtime_library_dir_option)r/   r0   r1   r2   r3   r4   Úar_exeÚpossible_executablesr5   Úlibrary_switchr6   r;   Ú	functoolsÚ	lru_cacher@   r"   rF   r(   r%   rG   r.   r    r    r    r!   r   C   s2    ù


Ú__main__)Úlogé   )Úcustomized_fcompilerr8   )Úcompilerr	   )ÚsysÚnumpy.distutils.fcompilerr   r   Úos.pathr   r   r   Ú	compilersr   rL   r   r/   Ú	distutilsrO   Úset_verbosityÚnumpy.distutilsrQ   ÚargvÚprintÚget_versionr    r    r    r!   Ú<module>   s    66

ù