§
    –t¯b½  ã                  óŽ   — d dl mZ d dlZd dlZd dlmc mZ ddl	m
Z
 ddlmZ ej        rddlmZ ddlmZ  G d	„ d
e
¦  «        ZdS )é    )ÚannotationsNé   )ÚVs2010Backendé   )ÚMesonException)ÚBuild)ÚInterpreterc                  ó,   ‡ — e Zd Zdˆ fd„Zd„ Zd„ Zˆ xZS )	ÚVs2017BackendÚbuildúT.Optional[Build]ÚinterpreterúT.Optional[Interpreter]c                óÎ  •— t          ¦   «                              ||¦  «         d| _        d| _        d| _        d| _        | j        �Ò| j        j        j        j	        }|rº|r3t          d„ |                     ¦   «         D ¦   «         ¦  «        rd| _        n…|rƒt          d„ |                     ¦   «         D ¦   «         ¦  «        rXt          |                     ¦   «         ¦  «        d         }|j                             d	¦  «        rd
| _        nt!          d¦  «        ‚| j        €d| _        t"          j                             dd ¦  «        }|r|                     d¦  «        | _        d S d S )NÚvs2017Ú2017z12.00Ú15c              3  ó,   K  — | ]}|j         d k    V — ŒdS )zclang-clN©Úid©Ú.0Úcs     úB/usr/lib/python3/dist-packages/mesonbuild/backend/vs2017backend.pyú	<genexpr>z)Vs2017Backend.__init__.<locals>.<genexpr>'   s)   è è € Ð LÐ L¸ ¤¨Ò!3Ð LÐ LÐ LÐ LÐ LÐ Ló    Úllvmc              3  ó,   K  — | ]}|j         d k    V — ŒdS )zintel-clNr   r   s     r   r   z)Vs2017Backend.__init__.<locals>.<genexpr>)   s)   è è € Ð"NÐ"N¸! 1¤4¨:Ò#5Ð"NÐ"NÐ"NÐ"NÐ"NÐ"Nr   r   Ú19zIntel C++ Compiler 19.0zAThere is currently no support for ICL before 19, patches welcome.Úv141ÚWindowsSDKVersionú\)ÚsuperÚ__init__ÚnameÚ
vs_versionÚsln_file_versionÚsln_version_commentÚenvironmentÚcoredataÚ	compilersÚhostÚallÚvaluesÚplatform_toolsetÚlistÚversionÚ
startswithr   ÚosÚenvironÚgetÚrstripÚwindows_target_platform_version)Úselfr   r   Úcompsr   Úsdk_versionÚ	__class__s         €r   r$   zVs2017Backend.__init__   sp  ø€ Ý‰Œ×Ò˜ Ñ,Ô,Ð,ØˆŒ	Ø ˆŒØ 'ˆÔØ#'ˆÔ àÔÐ'ØÔ$Ô-Ô7Ô<ˆEØð 	rØð r�SÐ LÐ L¸U¿\º\¹^¼^Ð LÑ LÔ LÑLÔLð rØ,2�DÔ)Ð)Øð r�sÐ"NÐ"N¸u¿|º|¹~¼~Ð"NÑ"NÔ"NÑNÔNð rÝ˜UŸ\š\™^œ^Ñ,Ô,¨QÔ/�AØ”y×+Ò+¨DÑ1Ô1ð rØ0I˜Ô-Ð-õ -Ð-pÑqÔqÐqØÔ Ð(Ø$*ˆDÔ!å”j—n’nÐ%8¸$Ñ?Ô?ˆØð 	LØ3>×3EÒ3EÀdÑ3KÔ3KˆDÔ0Ð0Ð0ð	Lð 	Lr   c                ó:   — dt          j        |d¦  «        _        d S )NÚ	DebugFullÚGenerateDebugInformation)ÚETÚ
SubElementÚtext)r8   Úlinks     r   Úgenerate_debug_informationz(Vs2017Backend.generate_debug_information7   s   € à?J�Œ�dÐ6Ñ7Ô7Ô<Ð<Ð<r   c                ó>  — d|v rHd„ |d         D ¦   «         }|r4|d                               dd¦  «        t          j        |d¦  «        _        d|v rJd„ |d         D ¦   «         }|r8|d                               d	d
¦  «        t          j        |d¦  «        _        d S d S d S )NÚcppc                ó<   — g | ]}|                      d ¦  «        ¯|‘ŒS )ú/std:c++©r2   ©r   Úxs     r   ú
<listcomp>z=Vs2017Backend.generate_lang_standard_info.<locals>.<listcomp>=   s)   € ÐOÐOÐO˜Q°a·l²lÀ:Ñ6NÔ6NÐO�qÐOÐOÐOr   r   rG   ÚstdcppÚLanguageStandardr   c                ó<   — g | ]}|                      d ¦  «        ¯|‘ŒS )ú/std:crH   rI   s     r   rK   z=Vs2017Backend.generate_lang_standard_info.<locals>.<listcomp>A   s)   € ÐKÐKÐK˜Q°A·L²LÀÑ4JÔ4JÐK�qÐKÐKÐKr   rO   ÚstdcÚLanguageStandard_C)Úreplacer?   r@   rA   )r8   Ú	file_argsÚclconfÚoptargss       r   Úgenerate_lang_standard_infoz)Vs2017Backend.generate_lang_standard_info;   sÉ   € Ø�IÐÐØOÐO )¨EÔ"2ÐOÑOÔOˆGØð jØAHÈÄ×ASÒASÐT^Ð`hÑAiÔAi•”˜fÐ&8Ñ9Ô9Ô>Ø�)ÐÐØKÐK )¨C¤.ÐKÑKÔKˆGØð hØCJÈ1Ä:×CUÒCUÐV^Ð`fÑCgÔCg•”˜fÐ&:Ñ;Ô;Ô@Ð@Ð@ð Ððhð hr   )r   r   r   r   )Ú__name__Ú
__module__Ú__qualname__r$   rC   rV   Ú__classcell__)r;   s   @r   r   r      sk   ø€ € € € € ðLð Lð Lð Lð Lð Lð4Kð Kð Kðhð hð hð hð hð hð hr   r   )Ú
__future__r   r3   ÚtypingÚTÚxml.etree.ElementTreeÚetreeÚElementTreer?   Úvs2010backendr   Úmesonlibr   ÚTYPE_CHECKINGr   r   r   r	   r   © r   r   ú<module>re      sÙ   ðð #Ð "Ð "Ð "Ð "Ð "à 	€	€	€	Ø Ð Ð Ð Ø "Ð "Ð "Ð "Ð "Ð "Ð "Ð "Ð "à (Ð (Ð (Ð (Ð (Ð (Ø %Ð %Ð %Ð %Ð %Ð %à„?ð *ØÐÐÐÐÐØ)Ð)Ð)Ð)Ð)Ð)ð'hð 'hð 'hð 'hð 'h�Mñ 'hô 'hð 'hð 'hð 'hr   