o
    uJAf                     @  s   U d dl mZ 	 d dlZd dlZd dlmZ ddlmZm	Z	 ddl
mZ ejr4ddlmZ dd	lmZ neZg g g g g g d
Zded< G dd deZdS )    )annotationsN)Path   )clike_debug_argsclike_optimization_args   )	OptionKey)Environment)Compiler)plaindebugdebugoptimizedreleaseminsizecustomzT.Dict[str, T.List[str]]pgi_buildtype_argsc                   @  s   e Zd ZdZd/ddZd0ddZd1d
dZd2ddZd1ddZd1ddZ	d3ddZ
d4ddZd5ddZd6d d!Zd1d"d#Zd7d$d%Zd8d(d)Zd9d,d-Zd.S ):PGICompilerpgireturnNonec                 C  s(   t dh| _dg}g ||||d| _d S )Nb_pchz-Minform=inform)0123
everything)r   base_options	warn_args)selfdefault_warn_args r    D/usr/lib/python3.10/site-packages/mesonbuild/compilers/mixins/pgi.py__init__1   s   zPGICompiler.__init__T.Tuple[str]c                 C     dS )N)z-moduler    r   r    r    r!   get_module_incdir_args=      z"PGICompiler.get_module_incdir_argsT.List[str]c                 C     dgS )Nz-silentr    r%   r    r    r!   get_no_warn_args@      zPGICompiler.get_no_warn_args
implibnamestrc                 C     g S Nr    )r   r,   r    r    r!   gen_import_library_argsC   r'   z#PGICompiler.gen_import_library_argsc                 C  s   | j  rdgS g S )Nz-fPIC)infois_linuxr%   r    r    r!   get_pic_argsF   s   
zPGICompiler.get_pic_argsc                 C  r)   )Nz-mpr    r%   r    r    r!   openmp_flagsL   r+   zPGICompiler.openmp_flags	buildtypec                 C     t | S r/   )r   )r   r5   r    r    r!   get_buildtype_argsO      zPGICompiler.get_buildtype_argsoptimization_levelc                 C  r6   r/   )r   )r   r9   r    r    r!   get_optimization_argsR   r8   z!PGICompiler.get_optimization_argsis_debugboolc                 C  r6   r/   )r   )r   r;   r    r    r!   get_debug_argsU   r8   zPGICompiler.get_debug_argsparameter_list	build_dirc              
   C  sd   t |D ]+\}}|d d dks|d d dkr/|d d tjtj||dd   ||< q|S )Nr   -Iz-L)	enumerateospathnormpathjoin)r   r>   r?   idxir    r    r!   &compute_parameters_with_absolute_pathsX   s
    .z2PGICompiler.compute_parameters_with_absolute_pathsc                 C  r.   r/   r    r%   r    r    r!   get_always_args^   r'   zPGICompiler.get_always_argsc                 C  r$   )Npchr    r%   r    r    r!   get_pch_suffixa      zPGICompiler.get_pch_suffixpch_dirheaderc                 C  s:   t | j| }| jdkrddt|jd|j gS g S )Ncppz--pchz	--pch_dirr@   )r   resolveparentlanguager-   )r   rM   rN   hdrr    r    r!   get_pch_use_argse   s   


zPGICompiler.get_pch_use_argsenv'Environment'c                 C  r.   r/   r    )r   rU   r    r    r!   thread_flagso   rL   zPGICompiler.thread_flagsN)r   r   )r   r#   )r   r(   )r,   r-   r   r(   )r5   r-   r   r(   )r9   r-   r   r(   )r;   r<   r   r(   )r>   r(   r?   r-   r   r(   )r   r-   )rM   r-   rN   r-   r   r(   )rU   rV   r   r(   )__name__
__module____qualname__idr"   r&   r*   r0   r3   r4   r7   r:   r=   rH   rI   rK   rT   rW   r    r    r    r!   r   -   s     













r   )
__future__r   typingTrB   pathlibr   	compilersr   r   mesonlibr   TYPE_CHECKINGenvironmentr	   Zcompilers.compilersr
   objectr   __annotations__r   r    r    r    r!   <module>   s&   
