
    <h                        S SK Jr   S SKrS SKrS SKrS SKrS SKrSSKJ	r	  SSKJ
r
  SSKJr  SSKJr  \R                  (       a  SS	KJr  SS
KJr   " S S\	5      rg)    )annotationsN   )GnuLikeCompilergnu_optimization_args   )
Popen_safe)	OptionKey)Environment)BuildTargetc                     ^  \ rS rSrSrSU 4S jjrSSS jjrSS jr\R                  " SS9SS j5       r
SS	 jrSS
 jrSS jrSSS jjrSS jrSrU =r$ )ElbrusCompiler   lccc                   > [         TU ]  5         S Vs1 s H  n[        U5      iM     snU l        S/n/ UUS/-   USS/-   USS/-   S.U l        g s  snf )N)b_pgo
b_coverageb_ndebugb_staticpicb_lundef
b_asneededz-Wallz-Wextraz
-Wpedantic)0123
everything)super__init__r
   base_options	warn_args)selfodefault_warn_args	__class__s      ڃ/mnt/mint/home/seanl/mnt/public/Repos/ladybird/Build/vcpkg/downloads/tools/meson-1.9.0-d1fcc2/mesonbuild/compilers/mixins/elbrus.pyr   ElbrusCompiler.__init__   ss    3  A3aYq\3  A$I!00I;>0I|3LL(9Y<U(U	W As   ANc                   [         R                  R                  5       nSUS'   [        U R	                  SS9S/-   US9S   nUR                  S5       H  nUR                  S	5      (       d  M  UR                  S
S5      S   nUR                  S5       Vs/ s HH  n[         R                  R                  U5      (       d  M)  [         R                  R                  U5      PMJ     sns  $    / $ s  snf )NCLC_ALLFccache--print-search-dirsenvr   
z
libraries: :)
osenvironcopyr	   get_exelistsplit
startswithpathexistsrealpath)r!   r.   	elf_classos_envstdolinelibstrps           r%   get_library_dirsElbrusCompiler.get_library_dirs*   s    "x$**%*8<Q;RRX^_`abJJt$D|,,C+A.5;\\#5F\5F"''..YZJ[+((+5F\\	 %
 	 ]s   (C.#C.c                   [         R                  R                  5       nSUS'   [        U R	                  SS9S/-   US9S   nUR                  S5       Ho  nUR                  S	5      (       d  M  UR                  S
S5      S   nUR                  S5       Vs/ s H"  n[         R                  R                  U5      PM$     sns  $    / $ s  snf )Nr(   r)   Fr*   r,   r-   r   r/   z	programs:r0   r1   )	r2   r3   r4   r	   r5   r6   r7   r8   r:   )r!   r.   r<   r=   r>   r?   r@   s          r%   get_program_dirsElbrusCompiler.get_program_dirs5   s    "x$**%*8<Q;RRX^_`abJJt$D{++C+A.5;\\#5FG5F((+5FGG	 %
 	 Hs   )C)maxsizec                >   [         R                  R                  5       nSUS'   [        R                  " U R                  SS9/ SQ-   U[        R                  [        R                  [        R                  S9nUR                  R                  5       R                  SSS	9n/ nUR                  S
5       Hf  nUR                  5       R                  S5      (       d  M)  UR                  [        R                   " SS[        R                   " SSU5      5      5        Mh     U$ )Nr(   r)   Fr*   )z-xcz-Ez-v-)r.   stdinstdoutstderrzutf-8replace)errorsr/   z--sys_includez\s*\\$ z^\s*--sys_include\s*)r2   r3   r4   
subprocessPopenr5   DEVNULLPIPErK   readdecoder6   lstripr7   appendresub)r!   r<   r@   rK   includesr>   s         r%   get_default_include_dirs'ElbrusCompiler.get_default_include_dirs@   s    "xT--U-;>VV\bjtj|j|  FP  FU  FU  ^h  ^m  ^m  n''	'B "LL&D{{}''88y"bff=TVXZ^6_ `a '     c                    [         U   $ Nr   )r!   optimization_levels     r%   get_optimization_args$ElbrusCompiler.get_optimization_argsL   s    $%788r\   c                    U/SSSSU/U-   4$ )Nz-rz-nodefaultlibsz-nostartfilesz-o )r!   prelink_nameobj_lists      r%   get_prelink_argsElbrusCompiler.get_prelink_argsO   s!    ~&6|\_ggggr\   c                    g)Npchrc   )r!   s    r%   get_pch_suffixElbrusCompiler.get_pch_suffixR   s    r\   c                >   / n[        U R                   S3X0R                  S9nU(       a  UR                  R	                  X5      nO%UR                  R
                  R                  U5      n[        U[        5      (       d   eUS:w  a  UR                  SU-   5        U$ )N_std)
subprojectmachinenonez-std=)
r
   languagefor_machinecoredataget_option_for_targetoptstoreget_value_for
isinstancestrrV   )r!   targetr.   rn   argskeystds          r%   get_option_std_args"ElbrusCompiler.get_option_std_argsV   s    4==/.:O_O_`,,44VAC,,''55c:C#s####&=KK#&r\   c                    S/$ )Nz-fopenmprc   )r!   r.   s     r%   openmp_flagsElbrusCompiler.openmp_flagsb   s
    |r\   )r   r    )returnNoner^   )r.   'Environment'r;   zT.Optional[int]r   T.List[str])r.   r   r   r   )r   r   )r_   rx   r   r   )rd   rx   re   r   r   z!T.Tuple[T.List[str], T.List[str]])r   rx   )ry   r   r.   r   rn   zT.Optional[str]r   r   )r.   r   r   r   )__name__
__module____qualname____firstlineno__idr   rA   rD   	functools	lru_cacherZ   r`   rf   rj   r}   r   __static_attributes____classcell__)r$   s   @r%   r   r      sX     
BW		 &	 '	9h
 r\   r   )
__future__r   r   r2   typingTrO   rW   gnur   r   mesonlibr	   optionsr
   TYPE_CHECKINGenvironmentr   buildr   r   rc   r\   r%   <module>r      sC    # 6  	   	   & "  ??*$K_ Kr\   