
    -Ph	                        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                  8     e Zd ZdZd fdZdd	Zd
 Zd Z xZS )Vs2017Backendvs2017buildT.Optional[Build]interpreterT.Optional[Interpreter]c                v    t                                          ||           d| _        d| _        d| _        d S )N2017z12.0015)super__init__
vs_versionsln_file_versionsln_version_comment)selfr   r   	__class__s      `/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/mesonbuild/backend/vs2017backend.pyr   zVs2017Backend.__init__   s:    ,,,  '#'       returnNonec                P   | j         | j         j        j        j        }|r|r3t	          d |                                D                       rd| _        n|rt	          d |                                D                       rXt          |                                          d         }|j        	                    d          rd| _        nt          d          | j        d| _        t          j                            d	d           }|r|                    d
          | _        d S d S )Nc              3  ,   K   | ]}|j         d k    V  dS )zclang-clNid.0cs     r   	<genexpr>z/Vs2017Backend.detect_toolset.<locals>.<genexpr>!   s)       L L!3 L L L L L Lr   llvmc              3  ,   K   | ]}|j         d k    V  dS )zintel-clNr!   r#   s     r   r&   z/Vs2017Backend.detect_toolset.<locals>.<genexpr>#   s)      "N"N!14:#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\)environmentcoredata	compilershostallvaluesplatform_toolsetlistversion
startswithr   osenvirongetrstripwindows_target_platform_version)r   compsr%   sdk_versions       r   detect_toolsetzVs2017Backend.detect_toolset   s7   '$-7<E 	r rS L LU\\^^ L L LLL r,2D)) rs"N"Nu||~~"N"N"NNN rU\\^^,,Q/Ay++D11 r0I-- --pqqq ($*D!jnn%8$?? 	L3>3E3Ed3K3KD000	L 	Lr   c                :    dt          j        |d          _        d S )N	DebugFullGenerateDebugInformation)ET
SubElementtext)r   links     r   generate_debug_informationz(Vs2017Backend.generate_debug_information1   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++r6   r$   xs     r   
<listcomp>z=Vs2017Backend.generate_lang_standard_info.<locals>.<listcomp>7   s)    OOOQall:6N6NOqOOOr   r   rJ   stdcppLanguageStandardr%   c                <    g | ]}|                     d           |S )/std:crK   rL   s     r   rN   z=Vs2017Backend.generate_lang_standard_info.<locals>.<listcomp>;   s)    KKKQALL4J4JKqKKKr   rR   stdcLanguageStandard_C)replacerB   rC   rD   )r   	file_argsclconfoptargss       r   generate_lang_standard_infoz)Vs2017Backend.generate_lang_standard_info5   s    IOO)E"2OOOG jAHASAST^`hAiAif&899>)KK)C.KKKG hCJ1:CUCUV^`fCgCgf&:;;@@@ h hr   )r   r   r   r   )r   r   )	__name__
__module____qualname__namer   r>   rF   rY   __classcell__)r   s   @r   r   r      s        D( ( ( ( ( (L L L L*K K Kh h h h h h hr   r   )
__future__r   r7   typingTxml.etree.ElementTreeetreeElementTreerB   vs2010backendr   mesonlibr   TYPE_CHECKINGr   r   r   r	   r    r   r   <module>ri      s    # " " " " " 				     " " " " " " " " " ( ( ( ( ( ( % % % % % %? *))))))+h +h +h +h +hM +h +h +h +h +hr   