
    e
                        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
 ej                  rddlmZ ddlmZ  G d d	e
      Zy)
    )annotationsN   )Vs2010Backend   )Build)Interpreterc                  0     e Zd ZdZd fdZd Zd Z xZS )Vs2019Backendvs2019c                h   t         |   ||       d| _        d| _        | j                  | j                  j
                  j                  j                  }|r(t        d |j                         D              rd| _
        n`|r^t        d |j                         D              r>t        |j                               d   }|j                  j                  d      rd| _
        | j                  sd	| _
        d
| _        t        j                   j#                  dd       }|r|j%                  d      | _        y y )Nz12.00z
Version 16c              3  :   K   | ]  }|j                   d k(    yw)zclang-clNid.0cs     B/usr/lib/python3/dist-packages/mesonbuild/backend/vs2019backend.py	<genexpr>z)Vs2019Backend.__init__.<locals>.<genexpr>%   s     HAQTTZ/H   ClangCLc              3  :   K   | ]  }|j                   d k(    yw)zintel-clNr   r   s     r   r   z)Vs2019Backend.__init__.<locals>.<genexpr>'   s     Jaqttz1Jr   r   19zIntel C++ Compiler 19.0v1422019WindowsSDKVersion\)super__init__sln_file_versionsln_version_commentenvironmentcoredata	compilershostallvaluesplatform_toolsetlistversion
startswith
vs_versionosenvirongetrstripwindows_target_platform_version)selfbuildinterpretercompsr   sdk_version	__class__s         r   r   zVs2019Backend.__init__   s    , '#/ '$$--77<<EHHH(1%3J5<<>JJ(+99''-,ED)(((.%$DOjjnn%8$?3>3E3Ed3KD0     c                :    dt        j                  |d      _        y )N	DebugFullGenerateDebugInformation)ET
SubElementtext)r1   links     r   generate_debug_informationz(Vs2019Backend.generate_debug_information4   s    ?Jd67<r7   c                |   d|v rT|d   D cg c]  }|j                  d      s| }}|r.|d   j                  dd      t        j                  |d      _        d|v rV|d   D cg c]  }|j                  d      s| }}|r/|d   j                  dd      t        j                  |d	      _        y y y c c}w c c}w )
Ncppz/std:c++r   stdcppLanguageStandardr   z/std:cstdcLanguageStandard_C)r*   replacer;   r<   r=   )r1   	file_argsclconfxoptargss        r   generate_lang_standard_infoz)Vs2019Backend.generate_lang_standard_info8   s    I"+E"2OQall:6NqOGOAHASAST^`hAif&89>)"+C.KQALL4JqKGKCJ1:CUCUV^`fCgf&:;@   P Ls   B4B4$B9;B9)r2   zT.Optional[Build]r3   zT.Optional[Interpreter])__name__
__module____qualname__namer   r?   rK   __classcell__)r6   s   @r   r
   r
      s    DL*Khr7   r
   )
__future__r   r,   typingTxml.etree.ElementTreeetreeElementTreer;   vs2010backendr   TYPE_CHECKINGr2   r   r3   r   r
    r7   r   <module>rZ      s4    # 	  " " (??)%hM %hr7   