
    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                  2     e Zd ZdZdd fdZd Zd Z xZS )Vs2022Backendvs2022c                l   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 )N)gen_litez12.00z
Version 17c              3  :   K   | ]  }|j                   d k(    yw)zclang-clNid.0cs     B/usr/lib/python3/dist-packages/mesonbuild/backend/vs2022backend.py	<genexpr>z)Vs2022Backend.__init__.<locals>.<genexpr>%   s     HAQTTZ/H   ClangCLc              3  :   K   | ]  }|j                   d k(    yw)zintel-clNr   r   s     r   r   z)Vs2022Backend.__init__.<locals>.<genexpr>'   s     Jaqttz1Jr   r   19zIntel C++ Compiler 19.0v1432022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interpreterr   compsr   sdk_version	__class__s          r   r   zVs2022Backend.__init__   s    h? '#/ '$$--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)r2   links     r   generate_debug_informationz(Vs2022Backend.generate_debug_information4   s    ?Jd67<r8   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>   )r2   	file_argsclconfxoptargss        r   generate_lang_standard_infoz)Vs2022Backend.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)F)r3   zT.Optional[Build]r4   zT.Optional[Interpreter]r   bool)__name__
__module____qualname__namer   r@   rL   __classcell__)r7   s   @r   r
   r
      s    DL*Khr8   r
   )
__future__r   r-   typingTxml.etree.ElementTreeetreeElementTreer<   vs2010backendr   TYPE_CHECKINGr3   r   r4   r   r
    r8   r   <module>r\      s4    # 	  " " (??)%hM %hr8   