§
    ƒnóc  ã                  óž   — d dl mZ 	 d dlZd dlZd dlZd dlZddlmZ ddlm	Z	 ddl
mZmZ ej        rddlmZ dd	lmZ  G d
„ de¦  «        ZdS )é    )ÚannotationsNé   )ÚGnuLikeCompiler©Úgnu_optimization_argsé   )Ú
Popen_safeÚ	OptionKey)ÚEnvironment)ÚKeyedOptionDictTypec                  óf   ‡ — e Zd ZdZdˆ fd„Zddd„Zdd„Zdd„Zdd„Zdd„Z	d d„Z
d!d„Zdd„Zˆ xZS )"ÚElbrusCompilerÚlccÚreturnÚNonec                ó¦   •— t          ¦   «                              ¦   «          d„ dD ¦   «         | _        dg}g ||dgz   |ddgz   |ddgz   dœ| _        d S )Nc                ó,   — h | ]}t          |¦  «        ’ŒS © )r
   )Ú.0Úos     úD/usr/lib/python3/dist-packages/mesonbuild/compilers/mixins/elbrus.pyú	<setcomp>z*ElbrusCompiler.__init__.<locals>.<setcomp>(   s0   € ð  Að  Að  A¨a�Y q™\œ\ð  Að  Að  Aó    )Úb_pgoÚ
b_coverageÚb_ndebugÚb_staticpicÚb_lundefÚ
b_asneededz-Wallz-Wextraz
-Wpedantic)Ú0Ú1Ú2Ú3Ú
everything)ÚsuperÚ__init__Úbase_optionsÚ	warn_args)ÚselfÚdefault_warn_argsÚ	__class__s     €r   r&   zElbrusCompiler.__init__&   s…   ø€ Ý‰Œ×ÒÑÔÐð Að  AÐ3ð  Añ  Aô  AˆÔØ$˜IÐØ!Ø0Ø0°I°;Ñ>Ø0°I¸|Ð3LÑLØ(9¸YÈÐ<UÑ(Uð	Wð WˆŒˆˆr   NÚenvú'Environment'Ú	elf_classúT.Optional[int]úT.List[str]c                ó~  — t           j                             ¦   «         }d|d<   t          |                      d¬¦  «        dgz   |¬¦  «        d         }|                     d¦  «        D ]T}|                     d	¦  «        r=|                     d
d¦  «        d         }d„ |                     d¦  «        D ¦   «         c S ŒUg S )NÚCÚLC_ALLF©Úccacheú--print-search-dirs©r,   r   ú
z
libraries:ú c                óŠ   — g | ]@}t           j                             |¦  «        ¯!t           j                             |¦  «        ‘ŒAS r   )ÚosÚpathÚexistsÚrealpath©r   Úps     r   ú
<listcomp>z3ElbrusCompiler.get_library_dirs.<locals>.<listcomp>:   s<   € Ð\Ð\Ð\°Í"Ì'Ï.Ê.ÐYZÑJ[ÔJ[Ð\�œ×(Ò(¨Ñ+Ô+Ð\Ð\Ð\r   ú:©r;   ÚenvironÚcopyr	   Úget_exelistÚsplitÚ
startswith)r)   r,   r.   Úos_envÚstdoÚlineÚlibstrs          r   Úget_library_dirszElbrusCompiler.get_library_dirs2   sÍ   € Ý”—’Ñ"Ô"ˆØˆˆxÑÝ˜$×*Ò*°%Ð*Ñ8Ô8Ð<QÐ;RÑRÐX^Ð_Ñ_Ô_Ð`aÔbˆØ—J’J˜tÑ$Ô$ð 	]ð 	]ˆDØ�Š˜|Ñ,Ô,ð ]àŸš C¨Ñ+Ô+¨AÔ.�Ø\Ð\°V·\²\À#Ñ5FÔ5FÐ\Ñ\Ô\Ð\Ð\Ð\ð]ð ˆ	r   c                ó~  — t           j                             ¦   «         }d|d<   t          |                      d¬¦  «        dgz   |¬¦  «        d         }|                     d¦  «        D ]T}|                     d	¦  «        r=|                     d
d¦  «        d         }d„ |                     d¦  «        D ¦   «         c S ŒUg S )Nr2   r3   Fr4   r6   r7   r   r8   z	programs:r9   c                óL   — g | ]!}t           j                             |¦  «        ‘Œ"S r   )r;   r<   r>   r?   s     r   rA   z3ElbrusCompiler.get_program_dirs.<locals>.<listcomp>E   s(   € ÐGÐGÐG°�œ×(Ò(¨Ñ+Ô+ÐGÐGÐGr   rB   rC   )r)   r,   rI   rJ   rK   rL   s         r   Úget_program_dirszElbrusCompiler.get_program_dirs=   sÍ   € Ý”—’Ñ"Ô"ˆØˆˆxÑÝ˜$×*Ò*°%Ð*Ñ8Ô8Ð<QÐ;RÑRÐX^Ð_Ñ_Ô_Ð`aÔbˆØ—J’J˜tÑ$Ô$ð 	Hð 	HˆDØ�Š˜{Ñ+Ô+ð HàŸš C¨Ñ+Ô+¨AÔ.�ØGÐG°V·\²\À#Ñ5FÔ5FÐGÑGÔGÐGÐGÐGðHð ˆ	r   c                óD  — t           j                             ¦   «         }d|d<   t          j        |                      d¬¦  «        g d¢z   |t          j        t          j        t          j        ¬¦  «        }|j         	                    ¦   «          
                    dd¬	¦  «        }g }|                     d
¦  «        D ]f}|                     ¦   «                              d¦  «        r=|                     t          j        ddt          j        dd|¦  «        ¦  «        ¦  «         Œg|S )Nr2   r3   Fr4   )z-xcz-Ez-vú-)r,   ÚstdinÚstdoutÚstderrzutf-8Úreplace)Úerrorsr8   z--sys_includez\s*\\$Ú z^\s*--sys_include\s*)r;   rD   rE   Ú
subprocessÚPopenrF   ÚDEVNULLÚPIPErU   ÚreadÚdecoderG   ÚlstriprH   ÚappendÚreÚsub)r)   rI   r@   rU   ÚincludesrK   s         r   Úget_default_include_dirsz'ElbrusCompiler.get_default_include_dirsH   s  € Ý”—’Ñ"Ô"ˆØˆˆxÑÝÔ˜T×-Ò-°UÐ-Ñ;Ô;Ð>VÐ>VÐ>VÑVÐ\bÕjtÔj|õ  FPô  FUõ  ^hô  ^mð  nñ  nô  nˆØ”—’‘”×'Ò'¨¸	Ð'ÑBÔBˆØˆØ—L’L Ñ&Ô&ð 	bð 	bˆDØ�{Š{‰}Œ}×'Ò'¨Ñ8Ô8ð bØ—’¥¤ y°"µb´fÐ=TÐVXÐZ^Ñ6_Ô6_Ñ `Ô `ÑaÔaÐaøØˆr   Úoptimization_levelÚstrc                ó   — t           |         S ©Nr   )r)   re   s     r   Úget_optimization_argsz$ElbrusCompiler.get_optimization_argsS   s   € Ý$Ð%7Ô8Ð8r   Úprelink_nameÚobj_listc                ó   — dddd|g|z   S )Nz-rz-nodefaultlibsz-nostartfilesz-or   )r)   rj   rk   s      r   Úget_prelink_argszElbrusCompiler.get_prelink_argsV   s   € ØÐ&¨¸¸|ÐLÈxÑWÐWr   c                ó   — dS )NÚpchr   ©r)   s    r   Úget_pch_suffixzElbrusCompiler.get_pch_suffixY   s   € àˆur   Úoptionsú'KeyedOptionDictType'c                óž   — g }|t          d| j        | j        ¬¦  «                 }|j        dk    r|                     d|j        z   ¦  «         |S )NÚstd)ÚlangÚmachineÚnonez-std=)r
   ÚlanguageÚfor_machineÚvaluer`   )r)   rr   Úargsru   s       r   Úget_option_compile_argsz&ElbrusCompiler.get_option_compile_args]   sP   € ØˆØ•i ¨D¬MÀ4ÔCSÐTÑTÔTÔUˆØŒ9˜ÒÐØ�KŠK˜ #¤)Ñ+Ñ,Ô,Ð,Øˆr   c                ó   — dgS )Nz-fopenmpr   rp   s    r   Úopenmp_flagszElbrusCompiler.openmp_flagsd   s
   € Øˆ|Ðr   )r   r   rh   )r,   r-   r.   r/   r   r0   )r,   r-   r   r0   )r   r0   )re   rf   r   r0   )rj   rf   rk   r0   r   r0   )r   rf   )rr   rs   r   r0   )Ú__name__Ú
__module__Ú__qualname__Úidr&   rM   rP   rd   ri   rm   rq   r}   r   Ú__classcell__)r+   s   @r   r   r       só   ø€ € € € € ð 
€BðWð Wð Wð Wð Wð Wð	ð 	ð 	ð 	ð 	ð	ð 	ð 	ð 	ð	ð 	ð 	ð 	ð9ð 9ð 9ð 9ðXð Xð Xð Xðð ð ð ðð ð ð ðð ð ð ð ð ð ð r   r   )Ú
__future__r   r;   ÚtypingÚTrY   ra   Úgnur   r   Úmesonlibr	   r
   ÚTYPE_CHECKINGÚenvironmentr   Úcoredatar   r   r   r   r   ú<module>r�      sî   ðð #Ð "Ð "Ð "Ð "Ð "à 6à 	€	€	€	Ø Ð Ð Ð Ø Ð Ð Ð Ø 	€	€	€	à  Ð  Ð  Ð  Ð  Ð  Ø &Ð &Ð &Ð &Ð &Ð &Ø -Ð -Ð -Ð -Ð -Ð -Ð -Ð -à„?ð 0Ø*Ð*Ð*Ð*Ð*Ð*Ø/Ð/Ð/Ð/Ð/Ð/ðEð Eð Eð Eð E�_ñ Eô Eð Eð Eð Er   