
    -Ph                       U d dl mZ d dlmZ d dlmZ d dlmZ d dlZd dl	Z	d dl
ZddlmZmZmZmZmZ ddlmZ dd	lmZ dd
lmZmZ ddlmZ ddlmZ ddlmZmZ ddlm Z  ddlm!Z!m"Z"m#Z#m$Z$ ddl m%Z% ddl&m'Z' ddl(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z. ddl/m0Z0 ddl1m2Z2 ddl3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZA ejB        r[ddlmCZCmDZD ddlmEZE ddlFmGZG ddlHmIZI ddlJmKZK ejL        eMeNeOee5f         ZPejL        ePejQ        eP         f         ZRejS        eMeRf         ZTg dZUdeVd<   dd d!d"d#ZWd$eVd%<   d&d'd(d)d&d*d+ZXd$eVd,<   d-gZYdeVd.<   g d/ZZdeVd0<   g d1Z[deVd2<   g d3Z\deVd4<   g d5Z]deVd6<   d*gZ^deVd7<    e	j_        d8          Z`dGd<Za G d= d>          Zb G d? d@          Zc G dA dB          Zd G dC dD          Ze G dE dF          ZfdS )H    )annotations)	lru_cache)environPathN   )CMakeExceptionCMakeTargetlanguage_mapcmake_get_generator_argscheck_cmake_args)CMakeFileAPI)CMakeExecutor)CMakeToolchainCMakeExecScope)CMakeTraceParser)resolve_cmake_trace_targets   )mlogmesonlib)options)MachineChoice
OrderedSetpath_is_in_rootrelative_to_if_possible)	OptionKey)DataFile)assembler_suffixeslang_suffixesheader_suffixesobj_suffixeslib_suffixes	is_header)ExternalProgram)FORBIDDEN_TARGET_NAMES)TokenBaseNodeCodeBlockNodeFunctionNode	ArrayNodeArgumentNodeAssignmentNodeBooleanNode
StringNodeIdNode	IndexNode
MethodNode
NumberNode
SymbolNode)CMakeConfigurationTargetOptions)CMakeGeneratorTarget)ImmutableListProtocol)Backend)Environment)
CMP0025CMP0047CMP0056CMP0060CMP0065CMP0066CMP0067CMP0082CMP0089CMP0102zT.Collection[str]DISABLE_POLICY_WARNINGSDebugRelWithDebInfoRelease
MinSizeRel)debugdebugoptimizedreleaseminsizezT.Mapping[str, str]BUILDTYPE_MAPstatic_libraryshared_moduleshared_library
executableheader_only)STATIC_LIBRARYMODULE_LIBRARYSHARED_LIBRARY
EXECUTABLEOBJECT_LIBRARYINTERFACE_LIBRARYTARGET_TYPE_MAPUTILITYSKIP_TARGETS) z-Wallz-Wextraz-Weverythingz-Werrorz
-Wpedanticz	-pedanticz-wz/W1z/W2z/W3z/W4z/Wallz/WXz/wz/O1z/O2z/Obz/Odz/Ogz/Oiz/Osz/Otz/Oxz/Oyz/Ob0/RTC1z/RTCcz/RTCsz/RTCuz/Z7/Ziz/ZIBLACKLIST_COMPILER_FLAGS)	z/machine:x64z/machine:x86z/machine:armz/machine:ebcz/debugz/debug:fastlinkz/debug:fullz/debug:nonez/incrementalBLACKLIST_LINK_FLAGS)z/GRz/EHscz/MDdr]   r\   BLACKLIST_CLANG_CL_LINK_FLAGS)
zkernel32.libz
user32.libz	gdi32.libzwinspool.libzshell32.libz	ole32.libzoleaut32.libzuuid.libzcomdlg32.libzadvapi32.libBLACKLIST_LINK_LIBSTRANSFER_DEPENDENCIES_FROMz[^_a-zA-Z0-9]namestrreturnc                    t                               d|           } | t          v s|                     d          rd| z   } | S )N_mesoncm_)_cmake_name_regexsubr%   
startswithrc   s    \/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/mesonbuild/cmake/interpreter.py_sanitize_cmake_namero   ~   sB      d++D%%%)A)A%t|K    c                      e Zd Z ej        d          Zd!dZd"d	Zd#dZd$dZ	d%dZ
d$dZd&dZd'dZd(dZd)dZd*dZd)dZd*dZd S )+OutputTargetMapz(\.[0-9]+)+$	build_dirr   c                "    i | _         || _        d S N)tgt_maprs   )selfrs   s     rn   __init__zOutputTargetMap.__init__   s    Y["rp   tgt3T.Union['ConverterTarget', 'ConverterCustomTarget']re   Nonec                z                          |j                  g}t          |t                    r7||j        gz  }| fd|j        D             z  }| fd|j        D             z  }t          |t                    r,| fd|j        D             z  }| fd|j        D             z  }|D ]}|
| j        |<   d S )Nc                :    g | ]}                     |          S  )_rel_artifact_key.0xrw   s     rn   
<listcomp>z'OutputTargetMap.add.<locals>.<listcomp>   s'    FFF1T++A..FFFrp   c                :    g | ]}                     |          S r~   )_base_artifact_keyr   s     rn   r   z'OutputTargetMap.add.<locals>.<listcomp>   s'    GGGAT,,Q//GGGrp   c                :    g | ]}                     |          S r~   )_rel_generated_file_keyr   s     rn   r   z'OutputTargetMap.add.<locals>.<listcomp>   s'    SSST11!44SSSrp   c                :    g | ]}                     |          S r~   )_base_generated_file_keyr   s     rn   r   z'OutputTargetMap.add.<locals>.<listcomp>   s'    TTT!T22155TTTrp   )	_target_key
cmake_name
isinstanceConverterTarget	full_name	artifactsConverterCustomTargetoriginal_outputsrv   )rw   ry   keysks   `   rn   addzOutputTargetMap.add   s    )-)9)9#.)I)I(Jc?++ 	HS]O#DFFFFFFFFDGGGGGGGGDc011 	USSSSc>RSSSSDTTTTs?STTTTD 	& 	&A}"%Q	& 	&rp   r   T.List[T.Optional[str]]?T.Optional[T.Union['ConverterTarget', 'ConverterCustomTarget']]c                D    |D ]}|r|| j         v r| j         |         c S d S ru   )rv   )rw   r   is      rn   _return_first_valid_keyz'OutputTargetMap._return_first_valid_key   s=     	' 	'A 'Q$,&&|A&&&trp   rc   rd   c                T    |                      |                     |          g          S ru   )r   r   )rw   rc   s     rn   targetzOutputTargetMap.target   s'    ++T-=-=d-C-C,DEEErp   T.Optional['ConverterTarget']c                    |                      |          }|t          |t                    sd S |                                dk    rd S |S )NrQ   )r   r   r   
meson_func)rw   rc   ry   s      rn   rQ   zOutputTargetMap.executable   sJ    kk$;jo>>;4>>|++4
rp   c           	        g }|t           j                            d|          g}t          D ]a}|                    d|z             s|d t          |           dz
           }t           j                            d|          }|| d| gz  }b|D ]\}||                     t          |                    t          |          j        | 	                    t          |                    gz  }]| 
                    |          S )N .r   )rr   rm_so_versionrk   r"   endswithlenr   r   rc   r   r   )rw   rc   r   
candidatesr   new_names         rn   artifactzOutputTargetMap.artifact   s	   (*O9==b$GGH
 	. 	.A==q)) Lc!ffWq[L)H&488XFFHh,,,,--JJ 	f 	fAT++DGG44d1gglDD[D[\`ab\c\cDdDdeeDD++D111rp   #T.Optional['ConverterCustomTarget']c                    |                      |                     |          |                     |          g          }|t          |t                    sJ |S ru   )r   r   r   r   r   )rw   rc   ress      rn   	generatedzOutputTargetMap.generated   sU    **D,H,H,N,NPTPmPmnrPsPs+tuu{j.CDD{{{
rp   fnameT.Optional[Path]c                    	 |                                                     | j                  S # t          $ r Y nw xY wd S ru   )resolverelative_tors   
ValueErrorrw   r   s     rn   	_rel_pathzOutputTargetMap._rel_path   sJ    	==??..t~>>> 	 	 	D	ts   +. 
;;tgt_namec                    d| dS )N__tgt___r~   )rw   r   s     rn   r   zOutputTargetMap._target_key   s    $$$$$rp   T.Optional[str]c                d    |                      |          }|rd|                                 dnd S )N	__relgen_r   r   as_posixrw   r   paths      rn   r   z'OutputTargetMap._rel_generated_file_key   7    ~~e$$26@.4==??....D@rp   c                    d|j          dS )N__gen_r   rm   r   s     rn   r   z(OutputTargetMap._base_generated_file_key       &
&&&&rp   c                d    |                      |          }|rd|                                 dnd S )N	__relart_r   r   r   s      rn   r   z!OutputTargetMap._rel_artifact_key   r   rp   c                    d|j          dS )N__art_r   rm   r   s     rn   r   z"OutputTargetMap._base_artifact_key   r   rp   N)rs   r   )ry   rz   re   r{   )r   r   re   r   )rc   rd   re   r   )rc   rd   re   r   )rc   r   re   r   )r   r   re   r   )r   rd   re   rd   )r   r   re   r   )r   r   re   rd   )__name__
__module____qualname__recompiler   rx   r   r   r   rQ   r   r   r   r   r   r   r   r   r~   rp   rn   rr   rr      s5       BJ//M# # # #& & & &   F F F F   2 2 2 2      % % % %A A A A' ' ' 'A A A A' ' ' ' ' 'rp   rr   c                      e Zd Zd(d	Zd)dZ ej        d          Zd*dZd+dZ	d,dZ
 ed          d-d!            Z ed          d.d#            Zd/d$Zd/d%Zd)d&Zd/d'ZdS )0r   r   r
   env'Environment'for_machiner   re   r{   c                    | _         | _        |j         _        |j         _        |j         _        |j         _        |j         _        |j         _        |j         _        |j	         _	        d  _
        |j         _        g  _        |j        |j        z    _        g  _        g  _        g  _        |j        r|j        d          _
        t'                       _        g  _        g  _        g  _        g  _        g  _        g  _        g  _        i  _        g  _        d _        g  _        tA           j                   _        g  _!        |j"        D ]}t'                      }t'                      }|j        D ],}|j#        s
|$                    |j#        dd                     -d tK          j&                    D             }|$                    |'                    |j(        )                                d                     |D ]6}	tU          j&                    D ] \  }
}|	|v r|$                    |
            n!7|D ]/ j        $                                j        vr
g  j        <   0|j+        }|d |j,        D             z  }|D ]$ j        xx          fd|D             z  cc<   % xj         fd|j        D             z  c_         xj         fd	|j        D             z  c_        |j-        r xj!        |j        z  c_!         xj        |j        z  c_        d  _.         j         j/        j0         j                 }d
D ], j        v r!	 |          _.         d S # tb          $ r Y (w xY w-d S )Nr   Fr   c                >    i | ]\  }}|                                 |S r~   )lower)r   keyvals      rn   
<dictcomp>z,ConverterTarget.__init__.<locals>.<dictcomp>  s&    "Y"Y"YS399;;"Y"Y"Yrp   cc                    g | ]}d | S )z-Dr~   r   r   s     rn   r   z,ConverterTarget.__init__.<locals>.<listcomp>  s    111!X!XX111rp   c                2    g | ]}|j                  v|S r~   compile_optsr   r   langrw   s     rn   r   z,ConverterTarget.__init__.<locals>.<listcomp>  s,    +`+`+`!qHYZ^H_?_?_A?_?_?_rp   c                H    g | ]}|j         j        v|j        |j         S r~   )r   includesisSystemr   s     rn   r   z,ConverterTarget.__init__.<locals>.<listcomp>"  s2    kkkAF$-<W<W`a`j<Waf<W<W<Wrp   c                H    g | ]}|j         j        v|j        |j         S r~   )r   sys_includesr   r   s     rn   r   z,ConverterTarget.__init__.<locals>.<listcomp>#  s3    !o!o!oQdN_@_@_dedn@_!&@_@_@_rp   )objcppcppobjcfortranr   )2r   r   r   src_dirrs   rc   r   r   typeinstallinstall_dirlink_librarieslink_targets
link_flagslink_lang_flagspublic_link_flagsdepends_rawdependsinstall_pathsset	languagessourcesr   generated_ctgtr   r   	link_withobject_libsr   public_compile_optspieoverride_optionsro   generated_rawfilessuffixr   r   itemsgetlanguager   r   flagsdefinesis_generatedclib_compilercoredata	compilersKeyError)rw   r   r   r   r   r   src_suffixesjlang_cmake_to_mesonsfxr   r   argsr  r   s   `             @rn   rx   zConverterTarget.__init__   s   &)~)K	 +)K	~-1$3)+ +f.DD.0(*PR 	7%3A6D%(UU%'')=?&(*,RT466802  .0 )33	+- *	* *	*A$'EEI'*uuL Y / /x   !"".... #Z"YLDVDXDX"Y"Y"YMM-11!*2B2B2D2DcJJKKK $   - 3 5 5  HCczz!c*** "
 " 1 1""4(((t000.0D%d+ 7D11qy1111D! a a!$'''+`+`+`+`+`t+`+`+``'''' MMkkkkajkkkkMM!o!o!o!o!*!o!o!oo ~ *""ai/"""	)!H%/0@A	= 	 	Dt~%%)24D&EE   D	 &	 	s   M))
M65M6rd   c                2    d| j         j         d| j         dS )N<: >)	__class__r   rc   rw   s    rn   __repr__zConverterTarget.__repr__6  s"    :4>*::di::::rp   z'([-]{1,2}std=|/std:v?|[-]{1,2}std:)(.*)output_target_maprr   root_src_dirr   subdirinstall_prefixtracer   c                    dD ]J}| j         vrg } j         |         D ]"}t          j                            |          }	|                    t          |                    }
|	r|	                    d          }                     |          |vr?t          j	        d
                    ||d                                        d            xj        | d| gz  c_        |dv rd _        t          |
t                    r& xj        t          |          gz  c_        ||gz  }|t"          v r||gz  }$| j         |<   L j                                        d	k    rd _        j                             j                  }|r܉j         j                 j         _        t3           j         j         j        
          } xj        d |j        D             z  c_         xj        |j        z  c_         xj        |j        z  c_         xj         |j         z  c_          xj!        |j"        z  c_!         xj        |j#        z  c_         xj$        |j#        z  c_$        nH j                                        dvr-t          j	        dt          j%         j                  d           g } j!        D ]W}d|v rt          |          &                                s)|'                    |          }|r xj(        |gz  c_(        Q||gz  }X| _!        tS          tT                    tS          tV                    z   tS          tX                    z    j-        D ]}tS          t\          |                   z   d D             fd j/        D              _/        d  j        D              _        d, fdd-d} |fd j        D                        _         |ta          j1        fd te           j                  D                                  _         |fd!te           j3                  D                        _3         |fd" j/        D                        _/         j        D ]}|                    |          }
|
rit          |
t                    sJ |
4                    |          }t          |tj                    r|6                                sJ  xj7        |gz  c_7         xj        |gz  c_        t          d#           j        vr xj        t          d#          gz  c_         j8        rM j8        &                                r4ts           j8        |          r j8        :                    |           _8        d.d&d'  j!        D              _!        fd( j        D              _        d/d+} | j!                   _!         | j                   _         j        D ]3}|;                    |          }|r j        <                    |           4d S )0N)r   r   r   zwUnknown {0}_std "{1}" -> Ignoring. Try setting the project-level {0}_std if build errors occur. Known {0}_stds are: {2} Toncez_std=>   -fPIC-fPIE-fpic-fpierW   )r  c                ,    g | ]}t          |          S r~   r   r   s     rn   r   z/ConverterTarget.postprocess.<locals>.<listcomp>j  s    HHH!d1ggHHHrp   )rV   rW   zCMake: Targetz7not found in CMake trace. This can lead to build errorsz,-rpath,c                    g | ]}d | S r   r~   r   s     rn   r   z/ConverterTarget.postprocess.<locals>.<listcomp>  s    000WWW000rp   c                L    g | ]t          fd D                        S )c              3  L   K   | ]}j                             |          V  d S ru   rc   r   r   yr   s     rn   	<genexpr>z9ConverterTarget.postprocess.<locals>.<listcomp>.<genexpr>  s1      6]6]aqvq7I7I6]6]6]6]6]6]rp   )any)r   r   	supporteds    @rn   r   z/ConverterTarget.postprocess.<locals>.<listcomp>  s=    ^^^a36]6]6]6]S\6]6]6]3]3]^^^^rp   c                F    g | ]}|j                             d           |S )z.ruler'  r   s     rn   r   z/ConverterTarget.postprocess.<locals>.<listcomp>  s,    \\\A16??SZC[C[\a\\\rp   r   r   r#   boolr  re   r   c                                                      s
j         z                                                                       sJ                                  st	           fdt
          D                       s|st           t          j        	                                          d          rS 
                    dd                                t          j        	                                          z            S t          j        dt          j                                                   d           t          j        d           d S  j        v rd S t           t          j                                                            rt                     st           t          j        	                                                    sdt          j        dt          j                                                   dt          j        d	          d
           t          j        d           d S t           t          j        	                                                    r>|r<                     t          j        	                                          z            S t                     r                               S  S )Nc              3  L   K   | ]}j                             |          V  d S ru   r'  r(  s     rn   r*  z@ConverterTarget.postprocess.<locals>.rel_path.<locals>.<genexpr>  s1      )S)S!&//!*<*<)S)S)S)S)S)Srp   Tr   parentsexist_okzCMake: pathzdoes not exist.z- --> Ignoring. This can lead to build errors.zis inside the root project butnotzinside the subproject.)is_absoluter   r   existsr+  r!   r   r   r   get_build_dirmkdirr   r   warningboldr   explicit_headersget_source_dir)r   r#   r  r  rw   r  r  s   `  rn   rel_pathz-ConverterTarget.postprocess.<locals>.rel_path  s   ==?? %L1$		A==??"""88::  c)S)S)S)Sl)S)S)S&S&S  \h  "1d48+A+A+C+C&D&DdSSS  GGD4G888==dh.D.D.F.F)G)G&)PQQQL	!**,,0G0GIZ[[[L!PQQQ4E***t#AtDH,C,C,E,E'F'FGG	 (<88	 (40F0F0H0H+I+IJJ		 ]DIajjll,C,CEegkgpqvgwgw  zR  S  S  SLMMMtq$tx'='='?'?"@"@AA Ni N}}T$(*@*@*B*B%C%Cf%LMMMq,// 3}}\222Hrp   inputsT.Iterable[T.Optional[Path]]T.List[Path]c                    d | D             S )Nc                    g | ]}||S ru   r~   )r   ps     rn   r   zEConverterTarget.postprocess.<locals>.non_optional.<locals>.<listcomp>  s    777!Arp   r~   )r?  s    rn   non_optionalz1ConverterTarget.postprocess.<locals>.non_optional  s    77v7777rp   c              3  2   K   | ]} |d d          V  dS )FTNr~   r   r   r>  s     rn   r*  z.ConverterTarget.postprocess.<locals>.<genexpr>  s1      )_)_q((1eT*B*B)_)_)_)_)_)_rp   c              3  2   K   | ]} |d d          V  dS TFNr~   rG  s     rn   r*  z.ConverterTarget.postprocess.<locals>.<genexpr>  s2      5r5rSThhq$6N6N5r5r5r5r5r5rrp   c              3  2   K   | ]} |d d          V  dS rI  r~   rG  s     rn   r*  z.ConverterTarget.postprocess.<locals>.<genexpr>  s1      (i(ia!T5)A)A(i(i(i(i(i(irp   c              3  2   K   | ]} |d d           V  dS )FNr~   rG  s     rn   r*  z.ConverterTarget.postprocess.<locals>.<genexpr>  s1      #T#T!HHQu$=$=#T#T#T#T#T#Trp   r   flagrd   c                    |                                  t          v s| t          v s	| t          v rdS |                     d          rdS dS )NFz/DT)r   r_   r^   r`   rl   )rL  s    rn   
check_flagz/ConverterTarget.postprocess.<locals>.check_flag  s\    zz||333t?W7W7W[_  dA  \A  \Aut$$ u4rp   c                H    g | ]}|                                 t          v| S r~   )r   ra   r   s     rn   r   z/ConverterTarget.postprocess.<locals>.<listcomp>  s+    fffQReAeAeqAeAeAerp   c                *    g | ]} |          |S r~   r~   )r   r   rN  s     rn   r   z/ConverterTarget.postprocess.<locals>.<listcomp>  s&    GGGAG1GGGrp   r  T.List[str]c                    g }| D ]R}t          |          }|                                r|j                            d          s||gz  }F|d|j        gz  }S|S )Nz
.frameworkz
-framework)r   r7  rc   r   stem)r  r   r   rD  s       rn   handle_frameworksz6ConverterTarget.postprocess.<locals>.handle_frameworks  sl    !C . .GGxxzz )F)F A3JCaf--Jrp   )r   r   r#   r.  r  r.  re   r   )r?  r@  re   rA  )rL  rd   re   r.  )r  rQ  re   rQ  )=r   r   	std_regexmatchr   r   group_all_lang_stdsr   r:  formatjoinr   r   r   r   r   r^   r   uppertargetsr   r   r   r   r   r   r  r   include_directoriesr   r   r   r   	librariestarget_dependenciesr   r;  r6  r   r   listr   r    r!   r   r   r   	itertoolschainr   r   get_refCustomTargetReferencevalidr   r   r   r   r   append)rw   r  r  r  r  r  r   tempr
  mctgtstdry   rtgtr   rE  gen_filerefrT  dep_tgtrN  r>  r,  s   ` `` `              @@@rn   postprocesszConverterTarget.postprocess;  s     !	( !	(A))) "D&q)    #-33A66(22477;;  ''!**C $ 3 3A 6 6I)++006q#sxx	?R?R0S0S!%	    !)).>.>.>.>-??)))>>>#DHH&;<< 	  &&477)3&&QCKDD222QCKDD#'Da   9?? 000DH m00 	A$}T_=ED.ttx_c_qrrrDMMHHt/GHHHHMMOOt.OO""d&<<""$$(@@$$4>1 88!99Y__&FFFL$)DO*D*DF  A  A  A$ 
	 
	AQ77&&(( -66q99	 NNyk1NNQCKDD" +,,tO/D/DDtLGYGYY	 	0 	0AmA.///II00i000	^^^^4<^^^ ]\);\\\	 	 	 	 	 	 	 	 	>	8 	8 	8 	8 *\)_)_)_)_DL^)_)_)___$Y_5r5r5r5rXbcgcpXqXq5r5r5r%s%stt(L(i(i(i(i:VZVgKhKh(i(i(iii#|#T#T#T#Tt|#T#T#TTT * 	- 	-H$..x88D -!$(=>>>>>ll8,,!#'<==M#))++MMM##u,###8*, 99DM))MMd3ii[(MM  	P 0 < < > > 	Pt/@@ P#'#3#?#?#O#O 	 	 	 	 gf$*=fffGGGGdoGGG	 	 	 	 0/0CDD++DO<< ! 	- 	-A'..q11G -##G,,,	- 	-rp   obj_target_listT.List['ConverterTarget']linker_workaroundr.  c                j  	 d | j         D             }d |D             }|                                 }|D ]}d |j        |j         z   D             	|D ]Ȋg}t          fd|D                       s't	          j        dd           |fd|D             z  }t          	fd	|D                       rf|r|                     |           nL| xj        |j        z  c_        t          t          | j                            | _        | xj
        |gz  c_
         nɌd
 | j         D             | _         d S )Nc                T    g | ]$t          fd t          D                       "%S )c              3  R   K   | ]!}j                             d |z             V  "dS r   Nr'  r(  s     rn   r*  zAConverterTarget.process_object_libs.<locals>.<listcomp>.<genexpr>  s5      0`0`aq1I1I0`0`0`0`0`0`rp   r+  r!   r   s    @rn   r   z7ConverterTarget.process_object_libs.<locals>.<listcomp>  s<    aaaaS0`0`0`0`S_0`0`0`-`-`aaaarp   c                    g | ]	}|j         
S r~   )rS  r   s     rn   r   z7ConverterTarget.process_object_libs.<locals>.<listcomp>  s    %%%1%%%rp   c                    g | ]	}|j         
S r~   rm   r   s     rn   r   z7ConverterTarget.process_object_libs.<locals>.<listcomp>  s    DDDqAFDDDrp   c              3  H   K   | ]}                     d |z             V  dS rv  )r   r   r   r
  s     rn   r*  z6ConverterTarget.process_object_libs.<locals>.<genexpr>  s3      ==11::cAg..======rp   zWObject files do not contain source file extensions, thus falling back to guessing them.Tr  c                    g | ]	} d | 
S r$  r~   r{  s     rn   r   z7ConverterTarget.process_object_libs.<locals>.<listcomp>  s#    "<"<"<!a::!::"<"<"<rp   c              3      K   | ]}|v V  	d S ru   r~   )r   r   source_filess     rn   r*  z6ConverterTarget.process_object_libs.<locals>.<genexpr>   s(      ==QqL(======rp   c                T    g | ]$t          fd t          D                       "%S )c              3  R   K   | ]!}j                             d |z             V  "dS rv  r'  r(  s     rn   r*  zAConverterTarget.process_object_libs.<locals>.<listcomp>.<genexpr>
  s7      >n>n\]qvsUVw?W?W>n>n>n>n>n>nrp   rw  r   s    @rn   r   z7ConverterTarget.process_object_libs.<locals>.<listcomp>
  s<    ooo3>n>n>n>nam>n>n>n;n;no!ooorp   )r   _all_source_suffixesr   r+  r   r:  _append_objlib_sourcesr   r`  r   r   )
rw   rp  rr  rg  rS  extsr   r   r
  r~  s
           @@rn   process_object_libsz#ConverterTarget.process_object_libs  s   aa4>aaa%%%%%((**  	 	ADDAI,CDDDL    S
========= =L!z  BF  G  G  G  G"<"<"<"<t"<"<"<<J====*===== ( 033A66663(,Z-F-F(G(G((QC/((E poT^ooorp   ry   'ConverterTarget'c                     xj         |j         z  c_          xj        |j        z  c_         xj        |j        z  c_         xj        |j        z  c_        t	          t           j                              _         t	          t           j                             _        t	          t           j                             _        t	          t           j                             _        |j                                        D ]:\  } j        vr
g  j        <    j        xx          fd|D             z  cc<   ;d S )Nc                2    g | ]}|j                  v|S r~   r   r   s     rn   r   z:ConverterTarget._append_objlib_sources.<locals>.<listcomp>  s,    '\'\'\a1DDUVZD[;[;[;[;[;[rp   )r   r   r   r   r`  r   r   r   )rw   ry   optsr   s   `  @rn   r  z&ConverterTarget._append_objlib_sources  s>   %##-'s11Z6677Jt|4455j8899":d.A#B#BCC *0022 	] 	]JD$4,,,*,!$'d###'\'\'\'\'\4'\'\'\\####	] 	]rp   N)maxsize'ImmutableListProtocol[str]'c                `    g }t          j                    D ]}|                    |           |S ru   )r   valuesextend)rw   suffixesr  s      rn   r  z$ConverterTarget._all_source_suffixes  s9     "!(** 	" 	"DOOD!!!!rp   r   c                   	 | j         j        j                            t	          | dt
          j                            }t          |t          j	        t          j
        f          s
J d            |j        pg S # t          $ r g cY S w xY w)N_std)machinezfor mypy)r   r  optstoreget_value_objectr   r   BUILDr   r   UserStdOptionUserComboOptionchoicesr  )rw   r   opts      rn   rX  zConverterTarget._all_lang_stds#  s    	(#,==i4_l_r>s>s>sttCcG$97;R#STT``V````;$"$ 	 	 	III	s   A8A; ;B
	B
c                *   t          | j                  }g g }|D ]U}|gz  t          |t                    r2|                                t
          v r|fd|j        D             z  }O||gz  }Vt          t          |                    | _        d S )Nc                    g | ]}|v|	S r~   r~   r   r   	processeds     rn   r   zEConverterTarget.process_inter_target_dependencies.<locals>.<listcomp>4  #    JJJQq	7I7Iq7I7I7Irp   r`  r   r   r   r   rb   r   rw   
to_processnew_depsr   r  s       @rn   !process_inter_target_dependenciesz1ConverterTarget.process_inter_target_dependencies,      $,''
	 	  	 A!I!_--  !,,..D^2^2^JJJJ!)JJJJ

QCJx0011rp   c                N    |                                  t          v r	g | _        d S d S ru   )r   rb   r   r  s    rn   cleanup_dependenciesz$ConverterTarget.cleanup_dependencies9  s+    ?? :::DLLL ;:rp   c                d    t                               | j                                                  S ru   )rY   r   r   r[  r  s    rn   r   zConverterTarget.meson_func>  s"    ""49??#4#4555rp   c                	   t          j        dt          j        | j                  d| j         d           t          j        dt          j        t          | j                                       t          j        dt          j        | j                             t          j        dt          j        | j                             t          j        dt          j        | j	        rdnd	                     t          j        d
t          j        | j
        r| j
                                        nd                     t          j        dt          j        t          | j                                       t          j        dt          j        t          | j                                       t          j        dt          j        t          | j                                       t          j        dt          j        t          | j                                       t          j        dt          j        t          | j                                       t          j        dt          j        t          | j                                       t          j        dt          j        t          | j                                       t          j        dt          j        t          | j                                       t          j        dt          j        t          | j                                       t          j        dt          j        t          | j                                       t          j        dt          j        | j        rdnd	                     t          j        dt          j        t          | j                                       t          j        dt          j        t          | j                                       t          j        d           | j                                        D ];\  }}t          j        d|dt          j        t          |                               <d S )NTarget()z  -- artifacts:      z  -- full_name:      z  -- type:           z  -- install:        truefalsez  -- install_dir:    r   z  -- link_libraries: z  -- link_with:      z  -- object_libs:    z  -- link_flags:     z  -- languages:      z  -- includes:       z  -- sys_includes:   z  -- sources:        z  -- generated:      z  -- generated_ctgt: z  -- pie:            z  -- override_opts:  z  -- depends:        z  -- options:z    -=)r   logr;  rc   r   rd   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )rw   r   r   s      rn   r  zConverterTarget.logA  s_   49TY//1GT_1G1G1GHHH($)C4G4G*H*HIII($)DN*C*CDDD($)DI*>*>???($)dl4WFFPW*X*XYYY($)SWSc4kD4D4M4M4O4O4Oik*l*lmmm($)C8K4L4L*M*MNNN($)C4G4G*H*HIII($)C8H4I4I*J*JKKK($)C4H4H*I*IJJJ($)C4G4G*H*HIII($)C4F4F*G*GHHH($)C8I4J4J*K*KLLL($)C4E4E*F*FGGG($)C4G4G*H*HIII($)C8K4L4L*M*MNNN($)dh4SFFG*T*TUUU($)C8M4N4N*O*OPPP($)C4E4E*F*FGGG!!!)//11 	= 	=HCHWc3	#c(((;(;<<<<	= 	=rp   )r   r
   r   r   r   r   re   r{   re   rd   )r  rr   r  r   r  r   r  r   r  r   re   r{   )rp  rq  rr  r.  re   r{   )ry   r  re   r{   )re   r  )r   rd   re   r  re   r{   )r   r   r   rx   r  r   r   rU  ro  r  r  r   r  rX  r  r  r   r  r~   rp   rn   r   r      sJ       _ _ _ _B; ; ; ; 
EFFIq- q- q- q-fp p p p<] ] ] ]  Yt    Yt   2 2 2 2   
6 6 6 6= = = = = =rp   r   c                  .    e Zd ZddZdd	ZddZddZdS )rd  ri  'ConverterCustomTarget'indexintre   r{   c                "    || _         || _        d S ru   ri  r  )rw   ri  r  s      rn   rx   zCustomTargetReference.__init__Z  s    	


rp   rd   c                    |                                  r@d                    | j        j        | j        j        | j        j        | j                           S d| j        j         dS )Nz<{}: {} [{}]>r  z: INVALID REFERENCE>)re  rY  r  r   ri  rc   outputsr  r  s    rn   r  zCustomTargetReference.__repr__^  sZ    ::<< 	E"))$.*A49>SWS\SdeieoSpqqqDt~.DDDDrp   r.  c                *    | j         d uo
| j        dk    S Nr   r  r  s    rn   re  zCustomTargetReference.validd  s    y$8q8rp   c                0    | j         j        | j                 S ru   )ri  r  r  r  s    rn   filenamezCustomTargetReference.filenameg  s    y ,,rp   N)ri  r  r  r  re   r{   r  )re   r.  )r   r   r   rx   r  re  r  r~   rp   rn   rd  rd  Y  sh           E E E E9 9 9 9- - - - - -rp   rd  c                  F    e Zd ZdZdZdd
ZddZddZddZd dZ	ddZ
dS )!r   r   r   r6   r   r   r   r   re   r{   c                &   |j         J |j        J |j        | _        | j        s)dt          j         | _        t          xj        dz  c_        t          | j                  | _        t          |j                  | _	        d | j	        D             | _        i | _
        g | _        |j        | _        |j        | _        g | _        g | _        |j         | _         |j        | _        || _        || _        || _        t'          | j                  | _        d S )Ncustom_tgt_r   c                    g | ]	}|j         
S r~   rm   r   s     rn   r   z2ConverterCustomTarget.__init__.<locals>.<listcomp>w  s    >>>1>>>rp   )current_bin_dircurrent_src_dirrc   r   tgt_counterrd   r   r`  r  r   conflict_mapcommandworking_dirr   r   r?  r   r   _raw_targetro   )rw   r   r   r   s       rn   rx   zConverterCustomTarget.__init__n  s	   %111%111K	y 	3I&;&GIIDI!--2--di.. $V^ 4 4>>(=>>>.0FH!-!>CEPR%5%5&! )33			rp   rd   c                B    d| j         j         d| j         d| j         dS )Nr  r  r  r  )r  r   rc   r  r  s    rn   r  zConverterCustomTarget.__repr__  s,    I4>*IIdiII$,IIIIrp   r  rr   r  r   all_outputsrQ  r  r   c                     j          j         _          j                                         s j         j         z   _         d fdfd j        D              _        g } j        D ]R}||v r@t          |          }dt          j         d| }t          xj        dz  c_        | j        |<   ||gz  }||gz  }S| _        g } j	        j
        D ]0}	t          |	t                    sJ |	d	         d
k    s
J d            g }
|	D ]}|s|                    |          }|r~ j        j        k j        j         j                                                 rBt           j        j        t&                    sJ |
 j        j                                        z  }
|
|gz  }
||j        v rL|j        |         }|j        dk    rd|j        v r|
|j        d         z  }
t/          j        d| d|            |
|gz  }
||
gz  }2| _
         j        s j        dz   g _         j        D ]}|st7          |          }|                    |          }|                    |          }|                    |          }d }	 |                    |          }n# t@          $ r d }Y nw xY w|                                s[ j!        |z  "                                r? xj#         j!        |z                      |          $                                gz  c_#        |                                r;|%                                r'|% xj#        |$                                gz  c_#        =|r xj&        |gz  c_&        R|r xj&        |gz  c_&        g|r*|'                    |          }|J  xj#        |gz  c_#        d S )Nr   r   re   c                D    |                                  r| S j        | z  S ru   )r6  r  )r   rw   s    rn   ensure_absolutez:ConverterCustomTarget.postprocess.<locals>.ensure_absolute  s&    }} 0+a//rp   c                &    g | ]} |          S r~   r~   )r   r   r  s     rn   r   z5ConverterCustomTarget.postprocess.<locals>.<listcomp>  s#     S S S!3!3 S S Srp   r   rg   r   r   r   z)An empty string is not a valid executablerV   IMPORTED_LOCATIONz#CMake: Found invalid CMake target "z" --> ignoring 
z.h)r   r   re   r   )(r  r  r6  r   r  rd   r   out_counterr  r  r  r   r`  rQ   r   exe_wrapper
propertiesr   get_cmake_use_exe_wrapperr$   get_commandr\  r   r   rI   rc   r   r   r   r   r   r   r   r  is_filer?  r   r7  r   rc  )rw   r  r  r  r  temp_outputsr   oldcommandscurr_cmdcmdr
  r   	trace_tgtrawartry   genrel_to_rootctgt_refr  s   `                   @rn   ro  z!ConverterCustomTarget.postprocess  s   ##3D ++-- 	G#3d6FFD	0 	0 	0 	0 	0 	0
 !T S S ST=R S S S
 %' 	  	 AK!ff?-9??A??%11Q611)*!#&A3KQCLL# CE(0 	 	Hh-----A;"$$$&Q$$$9;C   *55a88 fx+7DH<OPTP`<a<{<{<}<}7)$(*>PPPPPtx3??AAAF8OC%-'' %a 0I ~55:MQZQe:e:ey34GHH JdQddYbddeee s
HH | 	. I,-DL ! 	* 	*A q''C#,,Q//C#**1--C#--c22CK#!ool;; # # #"# ??$$ *$*>*D)M)M)O)O *!5!; H H V V _ _ a abb"" 	*szz|| 	*8O 4 4 6 677 *% *% *;;s+++++z);	* 	*s    JJ%$J%c                *   t          | j                  }g g }|D ]U}|gz  t          |t                    r2|                                t
          v r|fd|j        D             z  }O||gz  }Vt          t          |                    | _        d S )Nc                    g | ]}|v|	S r~   r~   r  s     rn   r   zKConverterCustomTarget.process_inter_target_dependencies.<locals>.<listcomp>  r  rp   r  r  s       @rn   r  z7ConverterCustomTarget.process_inter_target_dependencies  r  rp   r   !T.Optional[CustomTargetReference]c                    |j         }	 || j        v r| j        |         }| j                            |          }t	          | |          S # t
          $ r Y d S w xY wru   )rc   r  r  r  rd  r   )rw   r   rc   idxs       rn   rc  zConverterCustomTarget.get_ref  sp    z	t((((.,$$T**C(s333 	 	 	44	s   ?A	 	
AAc                   t          j        dt          j        | j                  d| j         d           t          j        dt          j        t          | j                                       t          j        dt          j        t          | j                                       t          j        dt          j        t          | j                                       t          j        dt          j        t          | j	                                       t          j        dt          j        t          | j
                                       t          j        d	t          j        t          | j                                       t          j        d
t          j        t          | j                                       d S )NzCustom Targetr  r  z  -- command:      z  -- outputs:      z  -- conflict_map: z  -- working_dir:  z  -- depends_raw:  z  -- inputs:       z  -- depends:      )r   r  r;  rc   r   rd   r  r  r  r  r   r?  r   r  s    rn   r  zConverterCustomTarget.log  sJ   $)DI"6"68NDO8N8N8NOOO&	#dl2C2C(D(DEEE&	#dl2C2C(D(DEEE&	#d6G2H2H(I(IJJJ&	#d6F2G2G(H(HIII&	#d6F2G2G(H(HIII&	#dk2B2B(C(CDDD&	#dl2C2C(D(DEEEEErp   N)r   r6   r   r   r   r   re   r{   r  )
r  rr   r  r   r  rQ  r  r   re   r{   r  )r   r   re   r  )r   r   r   r  r  rx   r  ro  r  rc  r  r~   rp   rn   r   r   j  s        KK4 4 4 42J J J Jc* c* c* c*J2 2 2 2   F F F F F Frp   r   c                  F    e Zd ZddZddZddZddZddZd dZd!dZ	dS )"CMakeInterpreterr  r   r  r   r   backend	'Backend'c                .   || _         t          |                                |          | _        |dz  | _        t          |                                          | j        z  | _        || _        || _        t          j
        | _        |j        | _        t                      | _        t!          | j                  | _        g | _        d | _        d | _        d| _        d| _        g | _        g | _        g | _        |  t5          | j                  | _        i | _        i | _        d| _        | j                            d          rS| j        j         j!        | j                 "                                D ]&}|#                                dk    r
d| _         d S %d S d S )N__CMake_buildr   FvslinkT)$r  r   r=  r   build_dir_relr8  rs   r  r   r   HOSTr   rc   backend_namer   linkersr   fileapibs_filescodemodel_configscmake_stderrproject_nameproject_versionr   r\  custom_targetsrr   r  generated_targetsinternal_name_map_object_lib_workaroundrl   r  r  r  get_linker_id)rw   r  r  r   r  comps         rn   rx   zCMakeInterpreter.__init__  s   C..00&99#o5c//1122T5GG,(-#L#&55#DN33 ')IM-1 !&(02=?$!0!@!@ MO35 ',#''-- 	)3D4DELLNN  %%''61126D/EE 2	 	 rp   extra_cmake_optionsrQ  re   r   c           
     v   t          | j        dt          j                  }|                                st          d          t          |                                | j        | j        d          | _	        t          d                              | j                  }t          || j        | j        t          j        | j        |          }|                                }t#          |          }g }|t%          | j                  z  }|d| j         gz  }||z  }t)          d |D                       sat+          j        d| j        j        j                            t5          d	                              }|t6          v r|d
t6          |          gz  }| j	                                        }d t:          D             }	| j                                         tA          j!                     tA          j"                    5  tA          j!        dtA          j#        d          dtA          j$        |                                                     tA          j!        tA          j#        d          d%                    |                     tA          j!        tA          j#        d          | j        &                                           tA          j!        tA          j#        d          | j'        &                                           tA          j!        tA          j#        d          |&                                           tA          j!        tA          j#        d          |&                                           tA          j!        tA          j#        d          d%                    |                     tA          j!        tA          j#        d          d(                    d%                    t:                                         tA          j!                     | j        )                    dd           tU          j+                    }
d|
d<   ||z   |	z   |,                                z   | j'        &                                gz   }|-                    d| j	        .                                           |/                    || j        |
d          \  }}| _0        d d d            n# 1 swxY w Y   tA          j!                     |dk    rtA          j1        d          ntA          j2        d           }tA          j!        d!|           |dk    rrd"| j	        j3        d"         i| j	        _3        | j	        4                    | j0                   | j	        j5        rd#| j	        j5        d$          nd%}t          d&|           |S )'Nz>=3.14zUnable to find CMakeT)
permissivezcmake/data/preload.cmakez-DCMAKE_INSTALL_PREFIX=c              3  @   K   | ]}|                     d           V  dS )-DCMAKE_BUILD_TYPE=N)rl   )r   args     rn   r*  z-CMakeInterpreter.configure.<locals>.<genexpr>J  s/      OOS3>>"788OOOOOOrp   rd   	buildtyper  c                    g | ]}d | d	S )z-DCMAKE_POLICY_WARNING_z=OFFr~   r   s     rn   r   z.CMakeInterpreter.configure.<locals>.<listcomp>P  s$    YYYA7777YYYrp   z$Configuring the build directory withCMakeversionzRunning CMake with:r  z  - build directory:         z  - source directory:        z  - toolchain file:          z  - preload file:            z  - trace args:              z  - disabled policy warnings:z[{}]z, r2  CLC_ALL)print_cmoutalways_capture_stderr)r   disable_cacher   	SUCCEEDEDFAILEDzCMake configuration:messager  r   z(Failed to configure the CMake subproject)6r   r   r   r  foundr	   r   r  rs   r  r   write_to_privater   r   r   
SUBPROJECTwriter   r   r  r+  Tcastr  r  get_value_forr   rM   
trace_argsrD   r  setup_requestr   r  nestedr;  cyanrZ  r   r   rY  r9  r   copyget_cmake_argsset_exec_moderequires_stderrcallr  greenred	functionsparseerrors)rw   r  	cmake_exepreload_file	toolchaintoolchain_file
cmake_argsr  r  
cmcmp_argsos_env
final_argsrcrg   herrors                   rn   	configurezCMakeInterpreter.configure7  s/    "$(Hm6IJJ	   	9 !7888%i&7&7&9&94>48`deee
 :;;LLTXVV"9dh8H.Jceies  vB  C  C	"** //BCC
.tx888
F1DFFGG
))
OOJOOOOO 	Qudh&7&@&N&NyYdOeOe&f&fggIM))O]95MOOPP
Z**,,
YYAXYYY
""$$$ 	


[]] 	r 	rH;TYw=O=OQZ\`\efofwfwfyfy\z\z{{{HTY455sxx
7K7KLLLHTY>??AXAXAZAZ[[[HTY>??AVAVAXAXYYYHTY>??AXAXAZAZ[[[HTY>??AVAVAXAXYYYHTY>??*AUAUVVVHTY>??tyyYpOqOqArArsssHJJJN   ===\^^F"F8#j0:=	@X@X@Z@ZZ^b^j^s^s^u^u]vvJ##DJLfLfLhLh#iii'0~~j$.V\lp~'q'q$B4$!	r 	r 	r 	r 	r 	r 	r 	r 	r 	r 	r 	r 	r 	r 	r$ 	


')QwwDJ{###DHX4F4F'+++77$-tz/CI/N#ODJ JT.///48J4EM0*2.0002E !SE!S!STTTs   >KS  S$'S$r{   c                                          |            j                                          j                                        }d |D              _         fd j        D              _         fd j        D              _        t          t           j                             _         j                                         _         j        	                                 _
        d S )Nc                8    g | ]}|j         	|j        |j        S r~   )is_cmakeis_tempfiler   s     rn   r   z/CMakeInterpreter.initialise.<locals>.<listcomp>}  s(    YYYAAJYqyYYYYrp   c           	     x    g | ]6}t          |t          j                                                            7S r~   )r   r   r   r=  r   s     rn   r   z/CMakeInterpreter.initialise.<locals>.<listcomp>~  s;    lllYZ0D9P9P9R9R4S4STTlllrp   c           	         g | ]:}t          |t          j                                                  d           8|;S )Tr1  )r   r   r   r8  r   s     rn   r   z/CMakeInterpreter.initialise.<locals>.<listcomp>  sF    zzzqDQUQYQgQgQiQiLjLjtx9y9y9yzzzzrp   )r1  r  
load_replyget_cmake_sourcesr  r`  r   get_cmake_configurationsr  get_project_versionr  )rw   r  cmake_filess   `  rn   
initialisezCMakeInterpreter.initialiset  s    *+++ 	!!! l4466YYYYYllll^b^klllzzzzDMzzzZ6677 "&!F!F!H!H#|??AArp   c                     j         t          d          d _        g  _        g  _        g  _         j                             j                   g } j         D ]u}|j	        D ]k} j        s|j
         _        |j        D ]N}|j        t          vr>|j
        |vr5||j
        gz  } xj        t          | j         j                  gz  c_        Olvd  j        D             } j        j                                        D ]k}|j        dk    s|j
        |v s|j        rt%          |j
        d j         j        d          } xj        t          | j         j                  gz  c_        l j        j        D ],} xj        t+          | j         j                  gz  c_        -g  j         j        D ]:}	t-          |	t          t*          f          sJ  j                            |	           ;g }
g } j        D ])}|                     j         j        | j                   * j        D ]f}|                     j         j         j         j         j                   |j        dk    r|
|gz  }
 xj         fd|j        D             z  c_        g j        D ]X}|j        D ]N} j                            |          }|rt-          |t*                    r4|j                            |           OY j        D ]}|                     |
 j!                    j        D ]}|"                                  j        D ]}|"                                  j        D ]}|#                                 tI          j%        d	tI          j&         j                  tI          j&         j'                  d
tI          j&        tQ          tS           j                  tS           j                  z                       d           d S )Nz$CMakeInterpreter was not initializedr   c                    g | ]	}|j         
S r~   rm   r   s     rn   r   z,CMakeInterpreter.analyse.<locals>.<listcomp>  s    ===1===rp   	INTERFACErX   )rc   r   sourceDirectorybuildDirectoryrW   c                &    g | ]}|j         v|S r~   )r   r   s     rn   r   z,CMakeInterpreter.analyse.<locals>.<listcomp>  s%    SSSQ1DN;R;Rq;R;R;Rrp   zCMake projecthaszbuild targets.)*r  r	   r  r   r\  r  r  r$  r  projectsrc   r   r[   r   r   r   r  importedr
   r   rs   r   r   r  r   ro  r  r  r   r   r   rf  r  r  r  r  r   r  r;  r  rd   r   )rw   added_target_namesi_0j_0k_0api_target_name_listi_1dummyi_2i_3r   custom_target_outputsri  ry   r   r   s   `               rn   analysezCMakeInterpreter.analyse  s   !) !GHHH   	
*+++ +-) 		[ 		[C| [ [( 1(+D%; [ [C x|33HZ8Z8Z*sxj8*dhHX)Y)Y(ZZ[[  >====:%,,.. 		Q 		QCx;&&#(6J*J*Jcl*J+#'<"&.	! !  E LL_UDHd>NOOPPLLL:, 	\ 	\C$9#txIY$Z$Z#[[ 9T\8D$78 	, 	,CcO5J#KLLLLL"&&s++++ -/' 	f 	fDT3T\CXZ^Zdeeee< 	T 	TCOOD2DL$+tObdhdnooox+++u$NNSSSS#-SSSSNNN < 	0 	0C% 0 0 299!<<	  Jy:O$P$P $$Y////0 < 	N 	NC##K1LMMMM < 	4 	4C113333' 	5 	5D224444 < 	' 	'C$$&&&&$)D,=">">	$J^@_@_afhlhqruvyz~  {G  wH  wH  KN  OS  Ob  Kc  Kc  wc  sd  sd  ie  ie  gw  	x  	x  	x  	x  	xrp   r   r5   r(   c                   	
  j         st          d          d<d= fd
d>fdd?fdd@fd	dAfddBfddCfd
dDfddEdF	fd%dEdG	fd(dH	fd+t                                 xj         d, j         g j        z    j        r	d- j        ind           gz  c_        g i i dI	fd0dJfd3dK
fd7dL	fd9dMf
d; j        D ]}|j        vr |            j        D ]}|j        vr |            _	         _
        S )NNz!CMakeInterpreter was not analysedstringr   tidrd   r   
TYPE_mixedre   r&   c           	     \    t          | j                                        dddd |          S r  )r&   r  r   )rU  r   rw   s     rn   tokenz3CMakeInterpreter.pretend_to_be_meson.<locals>.token  s+    dk2244aAtSIIIrp   r3   c                6    t           d|                     S )Nr   )r3   )r   rX  s    rn   symbolz4CMakeInterpreter.pretend_to_be_meson.<locals>.symbol  s    eeBnn---rp   valuer.   c                :    t           |           d          S )Nr   F)escape)r.   r[  rX  s    rn   rT  z4CMakeInterpreter.pretend_to_be_meson.<locals>.string  s#    ee...u====rp   r/   c                6    t           |                     S Nr]  )r/   r_  s    rn   id_nodez5CMakeInterpreter.pretend_to_be_meson.<locals>.id_node  s    %%E***+++rp   r  r2   c                P    t           t          |                               S ra  )r2   rd   r_  s    rn   numberz4CMakeInterpreter.pretend_to_be_meson.<locals>.number  s$    eeE

333444rp   TYPE_mixed_listr'   c                6   t          | t                    r |           S t          | t                    r |                                           S t          | t                    rt           |                     S t          | t                    r |           S t          | t                    r |           S t          | t                    r| S t          d
                    t          |           j        t          |                               )Nr]  zinvalid type of value: {} ({}))r   rd   r   r   r.  r-   r  r`  r'   RuntimeErrorrY  r   r   )r[  arrayrd  rT  rX  s    rn   nodeifyz5CMakeInterpreter.pretend_to_be_meson.<locals>.nodeify  s   %%% %ve}}$%&& 	venn..///E4(( "55U#3#3#3444E3'' ve}}$E4(( uU||#E8,, ?FFtE{{G[]`af]g]ghhiiirp   noder  r0   c                ^    t          |  d           |           d                    S )N[])r0   )rj  r  ri  rZ  s     rn   indexedz5CMakeInterpreter.pretend_to_be_meson.<locals>.indexed  s/    T66#;;sLLLrp   elementsr*   c                    t                                 }t          | t                    s|g} |xj        fd| D             z  c_        t	           d          | d                    S )Nc                *    g | ]}| |          S ru   r~   r   r   ri  s     rn   r   zGCMakeInterpreter.pretend_to_be_meson.<locals>.array.<locals>.<listcomp>  s"    MMMaq}wwqzz}}}rp   rl  rm  )r+   r   r`  	argumentsr*   )ro  r  ri  rZ  rX  s     rn   rh  z3CMakeInterpreter.pretend_to_be_meson.<locals>.array  sv    ((Dh-- " 6NNMMMM8MMMMNNVVC[[$s<<<rp   rc   r  T.Optional[TYPE_mixed_list]kwargsT.Optional[TYPE_mixed_kwargs]r)   c                   |g n|}|i n|}t                                 }t          |t                    s3t          |t          t          t
          t          t          f          sJ |g}fd|D             |_        fd|	                                D             |_
        t           |            d          | d                    }|S )Nc                *    g | ]}| |          S ru   r~   rr  s     rn   r   zJCMakeInterpreter.pretend_to_be_meson.<locals>.function.<locals>.<listcomp>  "    JJJqAM

MMMrp   c                D    i | ]\  }}| |           |          S ru   r~   r   r   vrb  ri  s      rn   r   zJCMakeInterpreter.pretend_to_be_meson.<locals>.function.<locals>.<dictcomp>  5    ```1RSR_WWQZZR_R_R_rp   r  r  )r+   r   r`  rd   r  r.  r   r'   rs  r   ru  r)   )	rc   r  ru  args_nfunc_nrb  ri  rZ  rX  s	        rn   functionz6CMakeInterpreter.pretend_to_be_meson.<locals>.function	  s    224D!>RRvF!%%''**FdD)) !$c4x(HIIIIIvJJJJDJJJF````````FM!''$--fffSkkRRFMrp   objr1   c           
        |g n|}|i n|}t                                 }t          |t                    s3t          |t          t          t
          t          t          f          sJ |g}fd|D             |_        fd|	                                D             |_
        t          |  d           |           d          | d                    S )Nc                *    g | ]}| |          S ru   r~   rr  s     rn   r   zHCMakeInterpreter.pretend_to_be_meson.<locals>.method.<locals>.<listcomp>  ry  rp   c                D    i | ]\  }}| |           |          S ru   r~   r{  s      rn   r   zHCMakeInterpreter.pretend_to_be_meson.<locals>.method.<locals>.<dictcomp>  r}  rp   r   r  r  )r+   r   r`  rd   r  r.  r   r'   rs  r   ru  r1   )	r  rc   r  ru  r~  rb  ri  rZ  rX  s	        rn   methodz4CMakeInterpreter.pretend_to_be_meson.<locals>.method  s    224D!>RRvF!%%''**FdD)) !$c4x(HIIIIIvJJJJDJJJF````````FMc66#;;vvc{{FTZTZ[^T_T_```rp   var_namer,   c                J    t           |            d          |          S )Nr  )r,   )r  r[  rb  rZ  s     rn   assignz4CMakeInterpreter.pretend_to_be_meson.<locals>.assign   s'    !''("3"3VVC[[%HHHrp   projectr  ry   FT.Union[ConverterTarget, ConverterCustomTarget, CustomTargetReference]c                    d }t          | t          t          f          r| j        }n!t          | t                    r| j        j        }||v sJ |         d         }|r |          nd S )Nry   )r   r   r   rc   rd  ri  )ry   r   res_varrb  r  s      rn   extract_tgtz9CMakeInterpreter.pretend_to_be_meson.<locals>.extract_tgt.  s    H#1FGHH )8C!677 )8='H	,A,A,A,A)%0G'.8777###D8rp   /T.Union[ConverterTarget, ConverterCustomTarget]r{   c                    | j         v rA                    | j                    d                              }t          d|                               | j                    d S )Nz -> z-Cycle in CMake inputs/dependencies detected: )rc   rf  rZ  r	   )ry   stack
processings     rn   detect_cyclez:CMakeInterpreter.pretend_to_be_meson.<locals>.detect_cycle8  sk    x:%%!!#(+++J//$%\UZ%\%\]]]ch'''''rp   rm  rd  T.Union[IdNode, IndexNode]c                z     |           }t          | j        j                  dk    r|S  || j                  S )Nr   )r   ri  r  r  )rm  tgt_varr  rn  s     rn   resolve_ctgt_refz>CMakeInterpreter.pretend_to_be_meson.<locals>.resolve_ctgt_ref?  sC    !k#&&G38#$$))ww	222rp   r   c           
     	    !|            g }g }g }g }g }g }g }| j         D ]<}t          |t                    sJ |j        *vr )|           | "|          gz  }=| j        D ]<}t          |t                    sJ |j        *vr )|           | "|          gz  }=| j        D ];}t          |t                    s|j        *vr (|           | "|          gz  }<|| j        z  }|| j        z  }| j	        D ]N}	|	j
        }
|
j        *vr (|
           | +|	          gz  }||	                                gz  }|
|vr||
gz  }O|D ]U}
|
j        D ]K}t          |          r||v r| +|
                    t          |                              gz  }||gz  }LV|                                 }|st#          d| j         d          | j         d}| j         d}| j         d}| j         d}| j         d}| j        } 'j        | j        | j                  }| 'j        | j        | j        | j        z             | $|          | 'j        | j        | j                  %fd|D             d	}|r| j        r
| j        |d
<   | j                                        D ]"\  }} 'j        | j        ||          || d<   #|dk    r| j        |d<   n|dk    r
| j        |d<    $|          | j          $|          d}|dk    r| j        | j        z   |d<   n
| j!        |d<   |r||z  }  | #d| j"                            }  | #d| j#        ddi                    }  |  $|           $|          g                    }|||g}|dk    r%|d=   | #d|                    }||gz  }d }d }n  | #d|                    }  | #|| $|          g||                    }|||gz  }|dv r  | #d|                    }||gz  }n)|dk    r!|d=   | #d|                    }||gz  }nd },xj$        |z  c_$        |||||d*| j        <   | j        &| j        <   d S )NzUnknown target type ""_inc_dir_sys_src_depc                (    g | ]} |d           S )extract_all_objectsr~   )r   r   r  s     rn   r   zPCMakeInterpreter.pretend_to_be_meson.<locals>.process_target.<locals>.<listcomp>  s&    QQQFF1&;<<QQQrp   )build_by_default	link_argsr   r]  r   r   objectsr   _argsrQ   r   rN   pic)r   compile_argsr]  r  r]  	is_systemTrR   r   declare_dependency)ru  r   >   rP   rN   rO   incsrcdepry   func)%r   r   r   rc   r   r   r   r   r   r   ri  r  r  r#   rc  r   r   r	   r   get_installr   r   get_link_argsr   r   get_override_optionsr   r   r   r   get_compile_argsr   r   r   r   r   lines)-ry   r   
objec_libsr   r   generated_filenamesr  dependenciesr   r  ri  r
  tgt_funcinc_vardir_varsys_varsrc_vardep_varr  install_tgt
tgt_kwargsr   r   
dep_kwargsdir_nodesys_nodeinc_node	node_listdep_nodesrc_nodetgt_noderh  r  r  r  r  rb  r  name_mapr   process_custom_targetprocess_targetr  r  root_cbs-                                  rn   r  z<CMakeInterpreter.pretend_to_be_meson.<locals>.process_targetF  s   L )+I)+J$&G<>I/1<>N+-L] . .!!_555556**"N1%%%kk!nn--		_ / /!!_555556**"N1%%%{{1~~..

[ 1 1!!%:;; 6**))!,,,Q 00 s{"Gs}$G. - -}9I--))$///..x8899	#(9(9(;(;'<<#~--"tf,N ' / / / /A$Q<< !10C+C+C "2"24<<Q3H3H"I"I!JJI'A3.''/ ~~''H J$%HSX%H%H%HIII '''G'''G'''G'''G'''GhG-'-cnckJJK %02W23>3>TWTfCfgg&'.ww'7'7&$@G$@QTQe$f$fQQQQjQQQ- -J  <s <,/O
=)  ,2244 _ _S,DG,DS^UXZ],^,^
c===)) <''$'G
5!!---$'G
5! %WW-- # 7'.ww'7'7- -J +++*-.3;M*M
;''*-*?
;' *\)	 vgxx0Es|'T'TUUHvgxx0EsGWZegkYl'm'mnnHvguuggg.>.>@P@P-Q'R'RSSH!8X6I=(({+!6'884HQ[+\+\+\]]hZ'	!6'88GW+E+EFF!6'88HwPWHXHX>e[d>egq+r+rssh11	CCC%vgxx8LU_/`/`/`aaH(+II00";/%vgxx8LU_/`/`/`aaH(+II"G MMY&MM*1''Zaks"t"tIch'*xHS^$$$rp   r   c           
     8  
  |            | j         }dfdg }|t          j                    z  }|ddgz  }|dd	gz  }| j        r|d
gd | j        D             z   z  }|d| j                                        gz  }| j        D ]}|fd|D             dgz   z  }fd| j        D             | j        |fd| j	        D             d}xj
         | 	d| j         g|                    gz  c_
        d d d |dd| j         <   | j         
| j        <   d S )Nr   KT.Union[str, ConverterTarget, ConverterCustomTarget, CustomTargetReference]re   T.Union[str, IdNode, IndexNode]c                T   t          | t                    r| j        vr |             |           S t          | t                    r| j        vr |             |           S t          | t                    r)| j        j        vr | j                    |           S | S ru   )r   r   rc   r   rd  ri  )r   r  r  r  r  r  s    rn   resolve_sourcez[CMakeInterpreter.pretend_to_be_meson.<locals>.process_custom_target.<locals>.resolve_source  s    a11 *vY..&q)))&;q>>)a!677 	vY..--a000&;q>>)#899 v{)33--af555++A...Hrp   z
--internalcmake_run_ctgtz-oz@OUTPUT@z-Oc                6    g | ]}|                                 S r~   )r   r   s     rn   r   zWCMakeInterpreter.pretend_to_be_meson.<locals>.process_custom_target.<locals>.<listcomp>  s     $P$P$PaQZZ\\$P$P$Prp   z-dc                &    g | ]} |          S r~   r~   r   r   r  s     rn   r   zWCMakeInterpreter.pretend_to_be_meson.<locals>.process_custom_target.<locals>.<listcomp>  s#    ;;;!NN1--;;;rp   z;;;c                &    g | ]} |          S r~   r~   r  s     rn   r   zWCMakeInterpreter.pretend_to_be_meson.<locals>.process_custom_target.<locals>.<listcomp>  s#    @@@..++@@@rp   c                &    g | ]} |          S r~   r~   r  s     rn   r   zWCMakeInterpreter.pretend_to_be_meson.<locals>.process_custom_target.<locals>.<listcomp>  s#    CCC!NN1--CCCrp   )inputoutputr  r   custom_targetr  )r   r  re   r  )rc   r   get_meson_commandr   r  r   r  r?  r  r   r  r   )ry   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  s        @rn   r  zCCMakeInterpreter.pretend_to_be_meson.<locals>.process_custom_target  s    LhG         " @BGx1333G&677Gj))G# QD6$P$P3;O$P$P$PPPco668899G { F F;;;;s;;;ugEE A@@@SZ@@@+"CCCCs{CCC	- -J MMffWhh
T^._._``aaMM*.tDQXbq"r"rIch'*xHS^$$$rp   )rT  r   )rU  rd   r   rV  re   r&   )r   rd   re   r3   )r[  rd   re   r.   )r[  rd   re   r/   )r[  r  re   r2   )r[  re  re   r'   )rj  r'   r  r  re   r0   )ro  re  re   r*   )NN)rc   rd   r  rt  ru  rv  re   r)   )
r  r'   rc   rd   r  rt  ru  rv  re   r1   )r  rd   r[  r'   re   r,   )ry   r  re   r/   )ry   r  re   r{   )rm  rd  re   r  )ry   r   re   r{   )ry   r   re   r{   )r  r	   r(   r  r   r  r  rc   r\  r  r  )rw   r   ri  ry   rh  r  r  r  r  rb  rn  r  r  ri  rd  r  r  r  r  r  r  rT  rZ  rX  s   ``  @@@@@@@@@@@@@@@@@@@@rn   pretend_to_be_mesonz$CMakeInterpreter.pretend_to_be_meson  s     	F !DEEE	J 	J 	J 	J 	J 	J 	J	. 	. 	. 	. 	. 	.	> 	> 	> 	> 	> 	>	, 	, 	, 	, 	, 	,	5 	5 	5 	5 	5 	5	j 	j 	j 	j 	j 	j 	j 	j 	j	M 	M 	M 	M 	M 	M 	M	= 	= 	= 	= 	= 	= 	= 	=
	 
	 
	 
	 
	 
	 
	 
	 
	 
			a 		a 		a 		a 		a 		a 		a 		a 		a 		a	I 	I 	I 	I 	I 	I 	I  ((((9t/@.ADN.Ry}  zN  UXU^`d`tTuTu  TX  Y  Y  Z  	Z
 #%
?A	%'	9 	9 	9 	9 	9 	9 	9	( 	( 	( 	( 	( 	(	3 	3 	3 	3 	3 	3 	3L	0 L	0 L	0 L	0 L	0 L	0 L	0 L	0 L	0 L	0 L	0 L	0 L	0 L	0 L	0 L	0 L	0 L	0 L	0\/	0 /	0 /	0 /	0 /	0 /	0 /	0 /	0 /	0 /	0 /	0 /	0 /	0 /	0 /	0d ' 	, 	,Dy	))%%d+++< 	$ 	$Cxy((s###!*!)rp   r   rd   T.Optional[T.Dict[str, str]]c                    t          |          }|| j        v r| j        |         S || j        v r%| j        |         }|| j        v sJ | j        |         S d S ru   )ro   r  r  )rw   r   prx_tgts      rn   target_infozCMakeInterpreter.target_info  so     'v..d,,,)'22T++++F3FT33333)&11trp   c                N    t          | j                                                  S ru   )r`  r  r   r  s    rn   target_listzCMakeInterpreter.target_list  s    D*//11222rp   N)r  r   r  r   r   r   r  r  )r  rQ  re   r   )r  rQ  re   r{   r  )r   r5   re   r(   )r   rd   re   r  )re   rQ  )
r   r   r   rx   r1  r>  rR  r  r  r  r~   rp   rn   r  r    s        $ $ $ $L; ; ; ;zB B B B&Tx Tx Tx Txlr r r rh	   3 3 3 3 3 3rp   r  )rc   rd   re   rd   )g
__future__r   	functoolsr   osr   pathlibr   ra  r   typingr  commonr	   r
   r   r   r   r  r   executorr   r(  r   r   traceparserr   tracetargetsr   r   r   r   r   r   r   r   r   r   	mesondatar   compilers.compilersr   r   r    r!   r"   r#   programsr$   r  r%   mparserr&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   TYPE_CHECKINGr4   r5   r6   _typingr7   backend.backendsr8   environmentr9   Unionrd   r  r.  rV  Sequencere  DictTYPE_mixed_kwargsrD   __annotations__rM   rY   r[   r^   r_   r`   ra   rb   r   rj   ro   rr   r   rd  r   r  r~   rp   rn   <module>r     s   # " " " " " "                       				     i i i i i i i i i i i i i i ! ! ! ! ! ! # # # # # # 5 5 5 5 5 5 5 5 ) ) ) ) ) ) 5 5 5 5 5 5               Z Z Z Z Z Z Z Z Z Z Z Z                   { { { { { { { { { { { { { { { { & & & & & & - - - - - -                               $ ? 	599999999111111//////******))))))c4x78Jgj!*Z*@@AOsO34. . .      &	& &     '%&&&( (     $-+ - - - -/ / /     + + +     4 4 4     * * *      2?  ? ? ? ?BJ/00    N' N' N' N' N' N' N' N'`C= C= C= C= C= C= C= C=J- - - - - - - -"dF dF dF dF dF dF dF dFLO3 O3 O3 O3 O3 O3 O3 O3 O3 O3rp   