a
    iÝEbð  ã                   @   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v 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rPd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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-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   ú\/home/ja/django-apps/lartica_env/lib/python3.9/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   g d¢S )N)z-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  | ¡}| g d¢¡ |S )N)r/   ZflangrtiZompstub)r   Úget_librariesÚextendr   r   r   r   r0   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   r5   ]   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 r7   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 r7   r   r   r   r   r   Úget_flags_archr   s    z"PGroupFlangCompiler.get_flags_archc                 C   s   t ‚d S r7   )Ú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.   r0   Ú	functoolsÚ	lru_cacher5   r   r8   r"   r    r9   r&   r   r   r   r   r   C   s0   ù


Ú__main__)Úlogé   )Úcustomized_fcompilerr/   )Úcompilerr	   )ÚsysZnumpy.distutils.fcompilerr   r   Úos.pathr   r   r   Z	compilersr   r;   r   r'   Ú	distutilsr>   Úset_verbosityZnumpy.distutilsr@   ÚargvÚprintÚget_versionr   r   r   r   Ú<module>   s   66

