B
    n\                 @   s  d dl mZmZmZ d dlZd dlmZ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ejd	krd dlZG d
d deZnd dlmZ G dd deZedkrd dlmZ ed d dlmZ dejkreedd  needd  dS )    )divisionabsolute_importprint_functionN)	FCompilerdummy_fortran_file)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rd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.-]+).*darwinz<F77>z-VZ	pgfortranz-dynamiclibz-MfixedZlibtoolZarz-crranlib)version_cmdcompiler_f77compiler_fixcompiler_f90	linker_soarchiverr    z-fpicz-module z-Ic             C   s   ddg}| j | S )Nz-Minform=informz-Mnosecond_underscore)	pic_flags)selfopt r   ;lib/python3.7/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_opt1   s    zPGroupFCompiler.get_flags_optc             C   s   dgS )Nz-gr   )r   r   r   r   get_flags_debug4   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_so8   s    z#PGroupFCompiler.get_flags_linker_soc             C   s   ddgS )Nz-sharedz-fpicr   )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.exez<F77>z	--versionNz/verbosez/OUT:)r   r   r   r   r   r   r   z-module c             C   s   t | }|dddg |S )Nr,   ZflangrtiZompstub)r   get_librariesextend)r   r   r   r   r   r-   [   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   i   s    zPGroupFlangCompiler.get_flagsc             C   s   g S )Nr   )r   r   r   r   get_flags_freel   s    z"PGroupFlangCompiler.get_flags_freec             C   s   dgS )Nz-gr   )r   r   r   r   r   o   s    z#PGroupFlangCompiler.get_flags_debugc             C   s   dgS )Nz-O3r   )r   r   r   r   r   r   s    z!PGroupFlangCompiler.get_flags_optc             C   s   g S )Nr   )r   r   r   r   get_flags_archu   s    z"PGroupFlangCompiler.get_flags_archc             C   s   t d S )N)NotImplementedError)r   r    r   r   r   r!   x   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   r4   r   r   r5   r!   r   r   r   r   r   F   s,   	)CompilerNotFoundc               @   s   e Zd ZdZdZdd ZdS )r   r,   z$Portland Group Fortran LLVM Compilerc             C   s   t dd S )Nz!Flang unsupported on Python < 3.5)r9   )r   r   r   r   get_version   s    zPGroupFlangCompiler.get_versionN)r"   r#   r$   r%   r&   r:   r   r   r   r   r      s   __main__)log   )customized_fcompilerr,   )Zcompilerr   )Z
__future__r   r   r   sysZnumpy.distutils.fcompilerr   r   r   os.pathr   r	   r
   Z	compilersr   version_infor7   r   r9   r"   Z	distutilsr<   Zset_verbosityZnumpy.distutilsr>   argvprintr:   r   r   r   r   <module>   s$   6
6

