U
    ÉZjð  ã                   @   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r¾d d
lmZ e d¡ d dlmZ de jkr¬eedd� ¡ ƒ needd� ¡ ƒ dS )é    N)Ú	FCompiler)Úplatform)ÚjoinÚdirnameÚnormpathÚPGroupFCompilerÚPGroupFlangCompilerc                   @   sÆ   e Zd ZdZdZdZedkrRddgddgdd	dg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r²d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-VZ	pgfortranz-dynamiclibz-MfixedZlibtoolÚarz-crÚranlib©Zversion_cmdÚcompiler_f77Zcompiler_fixZcompiler_f90Ú	linker_soÚarchiverr   Ú z<F90>ú-fpicú-module z-Ic                 C   s   ddg}| j | S )Nz-Minform=informz-Mnosecond_underscore)Ú	pic_flags©ÚselfÚopt© r   ú_/var/www/html/TRUCKING_PROJECT/venv/lib/python3.8/site-packages/numpy/distutils/fcompiler/pg.pyÚ	get_flags+   s    zPGroupFCompiler.get_flagsc                 C   s   dgS )Nz-fastr   ©r   r   r   r   Úget_flags_opt/   s    zPGroupFCompiler.get_flags_optc                 C   s   dgS ©Nz-gr   r   r   r   r   Úget_flags_debug2   s    zPGroupFCompiler.get_flags_debugc                 C   s
   dddgS )Nz-dynamicz
-undefinedZdynamic_lookupr   r   r   r   r   Úget_flags_linker_so6   s    z#PGroupFCompiler.get_flags_linker_soc                 C   s   ddgS )Nz-sharedr   r   r   r   r   r   r    :   s    c                 C   s   d| S )Nz-R%sr   ©r   Údirr   r   r   Úruntime_library_dir_option=   s    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  | ¡}| dddg¡ |S )Nr,   ZflangrtiZ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   r*   Úappendr   r   )r   r   Z	flang_dirr   r   r   r2   ]   s    
z$PGroupFlangCompiler.get_library_dirsc                 C   s   g S ©Nr   r   r   r   r   r   f   s    zPGroupFlangCompiler.get_flagsc                 C   s   g S r4   r   r   r   r   r   Úget_flags_freei   s    z"PGroupFlangCompiler.get_flags_freec                 C   s   dgS r   r   r   r   r   r   r   l   s    z#PGroupFlangCompiler.get_flags_debugc                 C   s   dgS )Nz-O3r   r   r   r   r   r   o   s    z!PGroupFlangCompiler.get_flags_optc                 C   s   g S r4   r   r   r   r   r   Úget_flags_archr   s    z"PGroupFlangCompiler.get_flags_archc                 C   s   t ‚d S r4   )ÚNotImplementedErrorr!   r   r   r   r#   u   s    z.PGroupFlangCompiler.runtime_library_dir_option)r$   r%   r&   r'   r(   r)   Zar_exeZpossible_executablesr*   Zlibrary_switchr+   r-   Ú	functoolsÚ	lru_cacher2   r   r5   r   r   r6   r#   r   r   r   r   r   C   s0   ù


Ú__main__)Úlogé   )Úcustomized_fcompilerr,   )Úcompilerr	   )ÚsysZnumpy.distutils.fcompilerr   r   Úos.pathr   r   r   Z	compilersr   r8   r   r$   Ú	distutilsr;   Úset_verbosityZnumpy.distutilsr=   ÚargvÚprintÚget_versionr   r   r   r   Ú<module>   s   66

