§
    ƒnóc‡  ã                  óŒ   — d dl mZ 	 d dlZd dlZddlmZ ddlmZ ddl	m
Z
 dd	lmZ  G d
„ de
¦  «        Z G d„ de¦  «        ZdS )é    )ÚannotationsNé   )Úmesonlibé   )ÚCompileCheckModeé   )ÚGnuLikeCompiler)ÚVisualStudioLikeCompilerc                  óÂ   ‡ — e Zd ZU dZg ddgddgg g g dœZg dgdgdgdgdgd	gd
œZded<   dZd%ˆ fd„Zd&d„Z	d'd„Z
d(d„Zd)d„Zd*ˆ fd„Zd)d„Zd)d„Zd+d „Zd,d"„Zd-d$„Zˆ xZS ).ÚIntelGnuLikeCompilerzƒ
    Tested on linux for ICC 14.0.3, 15.0.6, 16.0.4, 17.0.1, 19.0
    debugoptimized: -g -O2
    release: -O3
    minsize: -O2
    z-gz
-traceback©ÚplainÚdebugÚdebugoptimizedÚreleaseÚminsizeÚcustomz-O0z-O1z-O2z-O3z-Os©r   Ú0ÚgÚ1Ú2Ú3ÚsúT.Dict[str, T.List[str]]Ú
OPTIM_ARGSÚintelÚreturnÚNonec                óx   •— t          ¦   «                              ¦   «          d„ dD ¦   «         | _        d| _        d S )Nc                ó6   — h | ]}t          j        |¦  «        ’ŒS © )r   Ú	OptionKey)Ú.0Úos     úC/usr/lib/python3/dist-packages/mesonbuild/compilers/mixins/intel.pyú	<setcomp>z0IntelGnuLikeCompiler.__init__.<locals>.<setcomp>P   s/   € ð 1ð 1ð 1°q�XÔ/°Ñ2Ô2ð 1ð 1ð 1ó    )Úb_pchÚb_lundefÚ
b_asneededÚb_pgoÚ
b_coverageÚb_ndebugÚb_staticpicÚb_pieÚnone)ÚsuperÚ__init__Úbase_optionsÚlang_header)ÚselfÚ	__class__s    €r&   r3   zIntelGnuLikeCompiler.__init__I   sL   ø€ Ý‰Œ×ÒÑÔÐð1ð 1ð =0ð 1ñ 1ô 1ˆÔð "ˆÔÐÐr(   Ústrc                ó   — dS )NÚpchir"   ©r6   s    r&   Úget_pch_suffixz#IntelGnuLikeCompiler.get_pch_suffixU   s   € Øˆvr(   Úpch_dirÚheaderúT.List[str]c           	     ó\   — ddt           j                             |¦  «        d| j        d|ddg	S )Nz-pchz-pch_dirz-xz-includer1   )ÚosÚpathÚjoinr5   )r6   r=   r>   s      r&   Úget_pch_use_argsz%IntelGnuLikeCompiler.get_pch_use_argsX   s3   € Ø˜
¥B¤G§L¢L°Ñ$9Ô$9¸4ØÔ  *¨f°d¸FðDð 	Dr(   Úheader_namec                óp   — t           j                             |¦  «        dz   |                      ¦   «         z   S )Nú.)rA   rB   Úbasenamer<   )r6   rE   s     r&   Úget_pch_namez!IntelGnuLikeCompiler.get_pch_name\   s.   € ÝŒw×Ò Ñ,Ô,¨sÑ2°T×5HÒ5HÑ5JÔ5JÑJÐJr(   c                óB   — t          j        | j        d¦  «        rdgS dgS )Nz>=15.0.0z-qopenmpz-openmp)r   Úversion_compareÚversionr;   s    r&   Úopenmp_flagsz!IntelGnuLikeCompiler.openmp_flags_   s)   € ÝÔ# D¤L°*Ñ=Ô=ð 	Ø�<Ðà�;Ðr(   Úmoder   c                óT   •— g d¢}t          ¦   «                              |¦  «        |z   S )N)ú-diag-errorÚ10006rP   Ú10148rP   Ú10155rP   Ú10156rP   Ú10157rP   Ú10158)r2   Úget_compiler_check_args)r6   rN   Ú
extra_argsr7   s      €r&   rW   z,IntelGnuLikeCompiler.get_compiler_check_argse   s3   ø€ ð
ð 
ð 
ˆ
õ ‰wŒw×.Ò.¨tÑ4Ô4°zÑAÐAr(   c                ó   — dgS )Nz-prof-gen=threadsafer"   r;   s    r&   Úget_profile_generate_argsz.IntelGnuLikeCompiler.get_profile_generate_argsp   s   € Ø&Ð'Ð'r(   c                ó   — dgS )Nz	-prof-user"   r;   s    r&   Úget_profile_use_argsz)IntelGnuLikeCompiler.get_profile_use_argss   s
   € Øˆ}Ðr(   Ú	buildtypec                ó   — | j         |         S ©N©Ú
BUILD_ARGS©r6   r]   s     r&   Úget_buildtype_argsz'IntelGnuLikeCompiler.get_buildtype_argsv   ó   € ØŒ˜yÔ)Ð)r(   Úoptimization_levelc                ó   — | j         |         S r_   ©r   ©r6   re   s     r&   Úget_optimization_argsz*IntelGnuLikeCompiler.get_optimization_argsy   ó   € ØŒÐ1Ô2Ð2r(   Únamec                ó
   — ddgS )NrP   Ú1292r"   )r6   rk   s     r&   Ú!get_has_func_attribute_extra_argsz6IntelGnuLikeCompiler.get_has_func_attribute_extra_args|   s   € Ø˜vÐ&Ð&r(   )r   r   )r   r8   )r=   r8   r>   r8   r   r?   )rE   r8   r   r8   ©r   r?   ©rN   r   r   r?   ©r]   r8   r   r?   ©re   r8   r   r?   )rk   r8   r   r?   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__ra   r   Ú__annotations__Úidr3   r<   rD   rI   rM   rW   rZ   r\   rc   ri   rn   Ú__classcell__©r7   s   @r&   r   r   -   s�  ø€ € € € € € ðð ð Ø˜Ð%Ø Ð.ØØØðð €Jð ØˆWØˆWØˆWØˆWØˆWØˆWð,ð ,€Jð ð ð ñ ð 
€Bð
"ð 
"ð 
"ð 
"ð 
"ð 
"ðð ð ð ðDð Dð Dð DðKð Kð Kð Kðð ð ð ð	Bð 	Bð 	Bð 	Bð 	Bð 	Bð(ð (ð (ð (ðð ð ð ð*ð *ð *ð *ð3ð 3ð 3ð 3ð'ð 'ð 'ð 'ð 'ð 'ð 'ð 'r(   r   c                  ó–   ‡ — e Zd ZU dZg ddgddgg g g dœZg dgdgdgdgdgd	gd
œZded<   dZdˆ fd„Zdd„Z	dd„Z
d d„Zd!d„Zd"d„Zˆ xZS )#ÚIntelVisualStudioLikeCompilerz4Abstractions for ICL, the Intel compiler on Windows.z/Ziz
/tracebackr   z/Odz/O1z/O2z/O3z/Osr   r   r   zintel-clrN   r   r   r?   c                ó”   •— t          ¦   «                              |¦  «        }|t          j        ur|                     g d¢¦  «         |S )N)z/Qdiag-error:10006z/Qdiag-error:10148z/Qdiag-error:10155z/Qdiag-error:10156z/Qdiag-error:10157z/Qdiag-error:10158)r2   rW   r   ÚLINKÚextend)r6   rN   Úargsr7   s      €r&   rW   z5IntelVisualStudioLikeCompiler.get_compiler_check_args™   sU   ø€ Ý‰wŒw×.Ò.¨tÑ4Ô4ˆØÕ'Ô,Ð,Ð,Ø�KŠKð ð ð ñ ô ð ð ˆr(   úT.Optional[str]c                óÖ   — t          j        dg¦  «        \  }}}t          j        |¦  «                             d¦  «        ^}}}t	          ||z   ¦  «        }|                      |¦  «        S )Nzcl.exerG   )r   Ú
Popen_safeÚsearch_versionÚsplitÚintÚ_calculate_toolset_version)r6   Ú_ÚerrÚv1Úv2rL   s         r&   Úget_toolset_versionz1IntelVisualStudioLikeCompiler.get_toolset_version¦   sc   € õ Ô'¨¨
Ñ3Ô3‰	ˆˆ1ˆcÝÔ,¨SÑ1Ô1×7Ò7¸Ñ<Ô<ˆ
ˆˆB�Ý�b˜2‘g‘,”,ˆØ×.Ò.¨wÑ7Ô7Ð7r(   c                ó   — dgS )Nz/Qopenmpr"   r;   s    r&   rM   z*IntelVisualStudioLikeCompiler.openmp_flags¯   s
   € Øˆ|Ðr(   r]   r8   c                ó   — | j         |         S r_   r`   rb   s     r&   rc   z0IntelVisualStudioLikeCompiler.get_buildtype_args²   rd   r(   re   c                ó   — | j         |         S r_   rg   rh   s     r&   ri   z3IntelVisualStudioLikeCompiler.get_optimization_argsµ   rj   r(   r>   c                ó@   — t           j                             |¦  «        S r_   )rA   rB   rH   )r6   r>   s     r&   Úget_pch_base_namez/IntelVisualStudioLikeCompiler.get_pch_base_name¸   s   € ÝŒw×Ò Ñ'Ô'Ð'r(   rp   )r   r�   ro   rq   rr   )r>   r8   r   r8   )rs   rt   ru   rv   ra   r   rw   rx   rW   rŒ   rM   rc   ri   r‘   ry   rz   s   @r&   r|   r|   €   s  ø€ € € € € € à>Ð>ð Ø˜Ð&Ø  ,Ð/ØØØðð €Jð ØˆWØˆWØˆWØˆWØˆWØˆWð,ð ,€Jð ð ð ñ ð 
€Bðð ð ð ð ð ð8ð 8ð 8ð 8ðð ð ð ð*ð *ð *ð *ð3ð 3ð 3ð 3ð(ð (ð (ð (ð (ð (ð (ð (r(   r|   )Ú
__future__r   rA   ÚtypingÚTÚ r   Ú	compilersr   Úgnur	   Úvisualstudior
   r   r|   r"   r(   r&   ú<module>r™      så   ðð #Ð "Ð "Ð "Ð "Ð "ðð 
€	€	€	Ø Ð Ð Ð à Ð Ð Ð Ð Ð Ø (Ð (Ð (Ð (Ð (Ð (Ø  Ð  Ð  Ð  Ð  Ð  Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2ðP'ð P'ð P'ð P'ð P'˜?ñ P'ô P'ð P'ðf9(ð 9(ð 9(ð 9(ð 9(Ð$<ñ 9(ô 9(ð 9(ð 9(ð 9(r(   