
    <h                       % S SK Jr  S SKJr  S SKJr  S SKJr  S SKrS SK	r	S SK
rSSKJrJrJrJrJr  SSKJr  SS	KJr  SS
KJrJr  SSKJr  SSKJr  SSKJrJr  SSKJ r   SSKJ!r!J"r"J#r#J$r$  SSK J%r%  SSK&J'r'  SSK(J)r)J*r*J+r+J,r,J-r-J.r.  SSK/J0r0  SSK1J2r2  SSK3J4r4J5r5J6r6J7r7J8r8J9r9J:r:J;r;J<r<J=r=J>r>J?r?J@r@JArA  \R                  (       ac  SSKJCrCJDrD  SSKJErE  SSKFJGrG  SSKHJIrI  SSKJJKrK  \R                  \M\N\O\\54   rP\R                  \P\R                  \P   4   rR\R                  \M\R4   rT/ SQrUS\VS'   SS S!S"S#.rWS$\VS%'   S&S'S(S)S&S*S+.rXS$\VS,'   S-/rYS\VS.'   / S/QrZS\VS0'   / S1Qr[S\VS2'   / S3Qr\S\VS4'   / S5Qr]S\VS6'   S*/r^S\VS7'   \	R                  " S85      r`SDS9 jra " S: S;5      rb " S< S=5      rc " S> S?5      rd " S@ SA5      re " SB SC5      rfg)E    )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]c                    [         R                  SU 5      n U [        ;   d.  U R                  S5      (       d  U S   R	                  5       (       a  SU -   n U $ )N_mesonr   cm_)_cmake_name_regexsubr$   
startswithisdigitnames    }/mnt/mint/home/seanl/mnt/public/Repos/ladybird/Build/vcpkg/downloads/tools/meson-1.9.0-d1fcc2/mesonbuild/cmake/interpreter.py_sanitize_cmake_namerm   ~   sI      d+D%%)A)AT!W__EVEVt|K    c                      \ rS rSr\R
                  " S5      rSS jrSS jrSS jr	SS jr
SS jrSS jrSS	 jrSS
 jrSS jrSS jrSS jrSS jrSS jrSrg)OutputTargetMap   z(\.[0-9]+)+$c                    0 U l         Xl        g N)tgt_map	build_dir)selfru   s     rl   __init__OutputTargetMap.__init__   s    Y["rn   c                v   U R                  UR                  5      /n[        U[        5      (       ai  X!R                  /-  nX!R
                   Vs/ s H  o0R                  U5      PM     sn-  nX!R
                   Vs/ s H  o0R                  U5      PM     sn-  n[        U[        5      (       aZ  X!R                   Vs/ s H  o0R                  U5      PM     sn-  nX!R                   Vs/ s H  o0R                  U5      PM     sn-  nU H  nUc  M  XR                  U'   M     g s  snf s  snf s  snf s  snf rs   )_target_key
cmake_name
isinstanceConverterTarget	full_name	artifacts_rel_artifact_key_base_artifact_keyConverterCustomTargetoriginal_outputs_rel_generated_file_key_base_generated_file_keyrt   )rv   tgtkeysxks        rl   addOutputTargetMap.add   s   )-)9)9#..)I(Jc?++]]O#DF1++A.FFDGA,,Q/GGDc011>R>RS>R11!4>RSSD?S?ST?S!2215?STTDA}"%Q  GGSTs   D'<D,>D1+D6c                h    U H,  nU(       d  M  X R                   ;   d  M  U R                   U   s  $    g rs   )rt   )rv   r   is      rl   _return_first_valid_key'OutputTargetMap._return_first_valid_key   s-    AqQ,,&||A&  rn   c                D    U R                  U R                  U5      /5      $ rs   )r   rz   )rv   rk   s     rl   targetOutputTargetMap.target   s!    ++T-=-=d-C,DEErn   c                    U R                  U5      nUb  [        U[        5      (       d  g UR                  5       S:w  a  g U$ )NrP   )r   r|   r}   
meson_func)rv   rk   r   s      rl   rP   OutputTargetMap.executable   s;    kk$;jo>>>>|+
rn   c           	        / nU[         R                  R                  SU5      /n[         HZ  nUR	                  SU-   5      (       d  M  US [        U5      * S-
   n[         R                  R                  SU5      nX5 SU 3/-  nM\     U HM  nX R                  [        U5      5      [        U5      R                  U R                  [        U5      5      /-  nMO     U R                  U5      $ )N .r   )rp   rm_so_versionrg   r!   endswithlenr   r   rk   r   r   )rv   rk   r   
candidatesr   new_names         rl   artifactOutputTargetMap.artifact   s    (*O99==b$GH
A==q))Lc!fWq[)H&4488XFHZq,--J  A++DG4d1gllDD[D[\`ab\cDdeeD ++D11rn   c                    U R                  U R                  U5      U R                  U5      /5      nUb  [        U[        5      (       d   eU$ rs   )r   r   r   r|   r   )rv   rk   ress      rl   	generatedOutputTargetMap.generated   sL    **D,H,H,NPTPmPmnrPs+tu{j.CDDDD
rn   c                v     UR                  5       R                  U R                  5      $ ! [         a     g f = frs   )resolverelative_toru   
ValueErrorrv   fnames     rl   	_rel_pathOutputTargetMap._rel_path   s7    	==?..t~~>> 		s   (+ 
88c                    SU S3$ )N__tgt___ )rv   tgt_names     rl   rz   OutputTargetMap._target_key   s    z$$rn   c                ^    U R                  U5      nU(       a  SUR                  5        S3$ S $ )N	__relgen_r   r   as_posixrv   r   paths      rl   r   'OutputTargetMap._rel_generated_file_key   -    ~~e$264==?+2.@D@rn   c                "    SUR                    S3$ )N__gen_r   rj   r   s     rl   r   (OutputTargetMap._base_generated_file_key       

|2&&rn   c                ^    U R                  U5      nU(       a  SUR                  5        S3$ S $ )N	__relart_r   r   r   s      rl   r   !OutputTargetMap._rel_artifact_key   r   rn   c                "    SUR                    S3$ )N__art_r   rj   r   s     rl   r   "OutputTargetMap._base_artifact_key   r   rn   )ru   rt   N)ru   r   )r   z3T.Union['ConverterTarget', 'ConverterCustomTarget']returnNone)r   zT.List[T.Optional[str]]r   ?T.Optional[T.Union['ConverterTarget', 'ConverterCustomTarget']])rk   strr   r   )rk   r   r   zT.Optional['ConverterTarget'])rk   r   r   z#T.Optional['ConverterCustomTarget'])r   r   r   T.Optional[Path])r   r   r   r   )r   r   r   zT.Optional[str])r   r   r   r   )__name__
__module____qualname____firstlineno__recompiler   rw   r   r   r   rP   r   r   r   rz   r   r   r   r   __static_attributes__r   rn   rl   rp   rp      sT    JJ/M#&F2%A'A'rn   rp   c                      \ rS rSrSS jrSS jr\R                  " S5      rSS jr	SS jr
SS jr\" SS	9SS
 j5       r\" SS	9SS j5       rSS jrSS jrSS jrSS jrSrg)r}      c                
   X l         X0l        UR                  U l        UR                  U l        UR                  U l        UR
                  U l        UR
                  U l        UR                  U l        UR                  U l        UR                  U l	        S U l
        UR                  U l        / U l        UR                  UR                  -   U l        / U l        / U l        / U l        UR$                  (       a  UR$                  S   U l
        ['        5       U l        / U l        / U l        / U l        / U l        / U l        / U l        / U l        0 U l        / U l        SU l        / U l        [A        U R
                  5      U l        / U l!        URD                   GH  n['        5       n['        5       nUR*                   H4  nURF                  (       d  M  URI                  URF                  SS  5        M6     [J        RL                  " 5        VV	s0 s H  u  pU	RO                  5       U_M     n
nn	URI                  U
RQ                  URR                  RO                  5       S5      5        U H:  n[T        RL                  " 5        H  u  pX;   d  M  URI                  U5          M8     M<     U H>  nU R(                  RI                  U5        XR8                  ;  d  M/  / U R8                  U'   M@     URV                  nXRX                   Vs/ s H  nSU 3PM
     sn-  nU H?  nU R8                  U==   U Vs/ s H  oU R8                  U   ;  d  M  UPM     sn-  ss'   MA     U =R0                  UR0                   Vs/ s H=  oRZ                  U R0                  ;  d  M  UR\                  (       a  M1  URZ                  PM?     sn-  sl        U =R2                  UR0                   Vs/ s H=  oRZ                  U R2                  ;  d  M  UR\                  (       d  M1  URZ                  PM?     sn-  sl        UR^                  (       a"  U =RB                  UR*                  -  sl!        GM  U =R*                  UR*                  -  sl        GM     S U l0        U R                   Rb                  Rd                  U R                     nS H  nXR(                  ;   d  M   X   U l0          g    g s  sn	nf s  snf s  snf s  snf s  snf ! [f         a     MJ  f = f)Nr   Fr   cz-D)objcppcppobjcfortranr   )4envfor_machiner   src_dirru   rk   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_ctgtincludessys_includes	link_withobject_libscompile_optspublic_compile_optspieoverride_optionsrm   generated_rawfilessuffixr   r
   itemslowergetlanguager   flagsdefinesr   isSystemis_generatedclib_compilercoredata	compilersKeyError)rv   r   r   r   r   r   src_suffixesjkeyvallang_cmake_to_mesonsfxlangargsr   r   s                   rl   rw   ConverterTarget.__init__   s   &))~~))KK	 ++))KK	~~-1$33)+ ++f.D.DD.0(*PR%33A6D%(U%'')=?&(*,RT466802  .0 )3	+-A$'EI'*uL YYxx  !".  EQDVDVDX"YDX399;#3DX"YMM-11!**2B2B2DcJK $ - 3 3 5HCz!c* !6 $ """4(000.0D%%d+ " 77Dyy1y!r!Xy11D!!!$'t+`t!HYHYZ^H_?_At+``' " MMajjkjFF$--<Wf`a`j`jfaffjkkM!**!o*QdN_N_@_&dedndn&!&&*!oo ~~""aii/""		)U X "HH%%//0@0@A	=D~~%)2D&	 >G #Z$ 2+` l!o    sN   	S S-S$S$3S)
S)
'S)
S.
<S.
S.
	S33
T Tc                P    SU R                   R                   SU R                   S3$ )N<: >)	__class__r   rk   rv   s    rl   __repr__ConverterTarget.__repr__6  s&    4>>**+2dii[::rn   z'([-]{1,2}std=|/std:v?|[-]{1,2}std:)(.*)c                  ^ ^^^^^ S GHV  nUT R                   ;  a  M  / nT R                   U    GH  n[        R                  R                  U5      n	UR	                  [        U5      5      n
U	(       az  U	R                  S5      nT R                  U5      nX;  a6  [        R                  " SR                  XkSR                  U5      5      SS9  M  T =R                  U SU 3/-  sl        M  US;   a	  ST l        M  [        U
[        5      (       a'  T =R                   [        U5      /-  sl        Xx/-  nGM	  U["        ;   a  GM  Xx/-  nGM     UT R                   U'   GMY     T R$                  R'                  5       S	:X  a  ST l        TR(                  R+                  T R,                  5      nU(       GaF  TR(                  T R,                     R.                  T l        [3        T R,                  TT R4                  T R6                  S
9nT =R8                  UR:                   Vs/ s H  n[        U5      PM     sn-  sl        T =R<                  UR<                  -  sl        T =R>                  UR>                  -  sl        T =R@                  UR@                  -  sl         T =RB                  URD                  -  sl!        T =R0                  URF                  -  sl        T =RH                  URF                  -  sl$        OTT R$                  R'                  5       S;  a6  [        R                  " S[        RJ                  " T R,                  5      S5        / nT RB                   H^  nSU;   a  M  [        U5      RM                  5       (       d0  URO                  U5      nU(       a  T =RP                  U/-  sl(        MY  Xv/-  nM`     UT l!        [S        [T        5      [S        [V        5      -   [S        [X        5      -   nT RZ                   H  nU[S        [\        U   5      -  nM     U Vs/ s H  nSU 3PM
     nnT R^                   V^s/ s H!  m[a        U4S jU 5       5      (       d  M  TPM#     snT l/        T R                    Vs/ s H&  oRb                  Re                  S5      (       a  M$  UPM(     snT l        SUU UU4S jjmSS jnU" U4S jT R                    5       5      T l        U" [f        Rh                  " U4S j[k        T R8                  5       5       5      5      T l        U" U4S j[k        T Rl                  5       5       5      T l6        U" U4S jT R^                   5       5      T l/        T R                    H  nUR	                  U5      n
U
(       al  [        U
[        5      (       d   eU
Ro                  U5      n[        U[p        5      (       a  URs                  5       (       d   eT =Rt                  U/-  sl:        M  T =R                  U/-  sl        M     [        S5      T R8                  ;  a  T =R8                  [        S5      /-  sl        T Rv                  (       aZ  T Rv                  RM                  5       (       a;  [y        T Rv                  U5      (       a   T Rv                  R{                  U5      T l;        SS jnT RB                   Vs/ s H  oR}                  5       [~        ;  d  M  UPM      snT l!        T R<                   Vs/ s H  nU" U5      (       d  M  UPM     snT l        SS jnU" T RB                  5      T l!        U" T R<                  5      T l        T R0                   H8  nUR                  U5      nU(       d  M  T R.                  R                  U5        M:     g s  snf s  snf s  snf s  snf s  snf s  snf )N)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-fpierV   )r   )rU   rV   zCMake: Targetz7not found in CMake trace. This can lead to build errorsz,-rpath,r   c              3  Z   >#    U  H   nTR                   R                  U5      v   M"     g 7frs   rk   r   .0yr   s     rl   	<genexpr>.ConverterTarget.postprocess.<locals>.<genexpr>  s#     6]S\aqvvq7I7IS\   (+z.rulec                  >^  T R                  5       (       d  TR                  T -  m T R                  5       m T R                  5       (       d   eT R                  5       (       d  [	        U 4S j[
         5       5      (       d  U(       d  [        T [        TR                  R                  5       5      SS9(       aE  T R                  SSS9  T R                  [        TR                  R                  5       5      T-  5      $ [        R                  " S[        R                  " T R                  5       5      S5        [        R                  " S5        g T TR                   ;   a  g [        T [        TR                  R#                  5       5      5      (       a  [        T T5      (       d  [        T [        TR                  R                  5       5      5      (       dg  [        R                  " S[        R                  " T R                  5       5      S[        R                  " S	5      S
5        [        R                  " S5        g [        T [        TR                  R                  5       5      5      (       a<  U(       a5  T R                  [        TR                  R                  5       5      T-  5      $ [        T T5      (       a  T R                  T5      $ T $ )Nc              3  Z   >#    U  H   nTR                   R                  U5      v   M"     g 7frs   r  r  s     rl   r  @ConverterTarget.postprocess.<locals>.rel_path.<locals>.<genexpr>  s!     )Sl!&&//!*<*<lr!  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   existsanyr    r   r   r   get_build_dirmkdirr   r   warningboldr   explicit_headersget_source_dir)r   r"   r   root_src_dirrv   subdirtraces   `  rl   rel_path-ConverterTarget.postprocess.<locals>.rel_path  s   ==??LL1$		A==??"?88::c)Sl)S&S&S\h"1d488+A+A+C&DdSGGD4G8==dhh.D.D.F)G&)PQQLL		!**,0GIZ[LL!PQE***#AtDHH,C,C,E'FGG'<88'40F0F0H+IJJ ]DIIajjl,CEegkgpgpqvgw  zR  SLMq$txx'='='?"@AAi}}T$((*@*@*B%Cf%LMMq,//}}\22Hrn   c                :    U  Vs/ s H	  oc  M  UPM     sn$ s  snf rs   r   )inputsps     rl   non_optional1ConverterTarget.postprocess.<locals>.non_optional  s    %7v!Av777s   c              3  8   >#    U  H  nT" US S5      v   M     g7f)FTNr   r  r   r6  s     rl   r  r     s     )_L^q(1eT*B*BL^   c              3  8   >#    U  H  nT" US S5      v   M     g7fTFNr   r>  s     rl   r  r     s      5rXqSThq$6N6NXqr?  c              3  8   >#    U  H  nT" US S5      v   M     g7frA  r   r>  s     rl   r  r     s     (iKha!T5)A)AKhr?  c              3  8   >#    U  H  nT" US S 5      v   M     g7f)FNr   r>  s     rl   r  r     s     #T|!HQu$=$=|r?  c                    U R                  5       [        ;   d  U [        ;   d
  U [        ;   a  gU R	                  S5      (       a  gg)NFz/DT)r   r^   r]   r_   rh   )flags    rl   
check_flag/ConverterTarget.postprocess.<locals>.check_flag  sB    zz|33t?W7W[_  dA  \At$$rn   c                    / nU  H[  n[        U5      nUR                  5       (       a   UR                  R                  S5      (       d  X/-  nMJ  USUR                  /-  nM]     U$ )Nz
.frameworkz
-framework)r   r+  rk   r   stem)r   r   r   r:  s       rl   handle_frameworks6ConverterTarget.postprocess.<locals>.handle_frameworks  s]    !CGxxzz)F)F3JCaff--  Jrn   )r   r   r"   boolr   rL  r   r   )r9  zT.Iterable[T.Optional[Path]]r   zT.List[Path])rE  r   r   rL  )r   T.List[str]r   rM  )Br   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   r0  r*  r   r   listr   r   r    r   r   r   r,  rk   r   	itertoolschainr   r   get_refCustomTargetReferencevalidr   r   r   r   r   r`   r   append)rv   output_target_mapr3  r4  install_prefixr5  r   tempr  mctgtstd	supportedr   rtgtr   r   r;  gen_filerefrF  rJ  dep_tgtr6  s   ` `` `         `       @rl   postprocessConverterTarget.postprocess;  s   A))) "D&&q)#--33A6(2247;''!*C $ 3 3A 6I+006qsxx	?R0S!%	 !))5.>-??)>>#DH&;<< &&47)3&CKD22CKD5 *8 $(Da C H 99?? 00DH mm0$}}T__=EED.ttxx_c_q_qrDMMt/G/GH/G!d1g/GHHMOOt.O""d&<&<<"$$(@(@@$4>>1 8 88!9!99YY__&FFLL$))DOO*DF  A$$AQ7&&((-66q9	NNyk1NCKD % # +,tO/DDtLGYY	AmA.//I  &/0iqWi	0#'<<^<a36]S\6]3]<^ *.););\);A66??SZC[a);\	 	>	8 *)_DL^L^)__$Y__5rXbcgcpcpXq5r%st((i:VZVgVgKh(ii##Tt||#TT **H$..x8D!$(=>>>>ll8,!#'<==#))++MM##u,#8*, + 9DMM)MMd3i[(M  0 0 < < > >t//@@#'#3#3#?#?#O 	 +/*=*=f*=QReAeq*=f&*ooGoA1oG	 00C0CD+DOO< !!A'..q1Gw##G, " I: 1^ ]L gGs<   "^,"^1^6$^6 #^;'^;_ 1_ _"_c           	       ^^	^
 U R                    V^s/ s H%  m[        U4S j[         5       5      (       d  M#  TPM'     nnU Vs/ s H  o3R                  PM     nnU R	                  5       nU GH  nUR
                  UR                   -    Vs/ s H  o3R                  PM     snm
U H  m	T	/n[        U	4S jU 5       5      (       d/  [        R                  " SSS9  X Vs/ s H
  nT	 SU 3PM     sn-  n[        U
4S jU 5       5      (       d  Mk  U(       a  U R                  U5        OXU =R                  UR                  -  sl
        [        [        U R                  5      5      U l
        U =R                  U/-  sl          GM     GM     U R                    V^s/ s H%  m[        U4S j[         5       5      (       a  M#  TPM'     snU l         g s  snf s  snf s  snf s  snf s  snf )	Nc              3  `   >#    U  H#  nTR                   R                  S U-   5      v   M%     g7fr   Nr  r  s     rl   r  6ConverterTarget.process_object_libs.<locals>.<genexpr>  s'     0`S_aq1I1IS_   +.c              3  L   >#    U  H  nTR                  S U-   5      v   M     g7fro  )r   )r  r   r  s     rl   r  rp    s!     =11::cAg..s   !$zWObject files do not contain source file extensions, thus falling back to guessing them.Tr  r   c              3  ,   >#    U  H	  oT;   v   M     g 7frs   r   )r  r   source_filess     rl   r  rp     s     =*QL(*s   c              3  `   >#    U  H#  nTR                   R                  S U-   5      v   M%     g7fro  r  r  s     rl   r  rp  
  s)     >nam\]qvvsUVw?W?Wamrq  )r   r,  r    rI  _all_source_suffixesr   rk   r   r/  _append_objlib_sourcesr   rY  r   r   )rv   obj_target_listlinker_workaroundr   rb  rI  extsr   r   r  rt  s      `     @@rl   process_object_libs#ConverterTarget.process_object_libs  s}   >>a>aS0`S_0`-`>a $%1%((* A,-II,CD,CqFF,CDL  S
====LL!z  BF  Gt"<t!aS!:t"<<J=*===(33A63(,Z-F(G((QC/(#  !, &*^^o^3>nam>n;n!^o5 b% E #= ps(   "GGGG G!
"G&G&c           
        U =R                   UR                   -  sl         U =R                  UR                  -  sl        U =R                  UR                  -  sl        U =R                  UR                  -  sl        [	        [        U R                   5      5      U l         [	        [        U R                  5      5      U l        [	        [        U R                  5      5      U l        [	        [        U R                  5      5      U l        UR                  R                  5        H_  u  p#X R                  ;  a  / U R                  U'   U R                  U==   U Vs/ s H  oDU R                  U   ;  d  M  UPM     sn-  ss'   Ma     g s  snf rs   )r   r   r   r   rY  r   r   r   )rv   r   r  optsr   s        rl   rw  &ConverterTarget._append_objlib_sources  s   %##--'s111Z67Jt||45j89":d.A.A#BC **002JD,,,*,!!$'d#4'\4aDDUDUVZD[;[4'\\# 3 (]s   F4FN)maxsizec                d    / n[         R                  " 5        H  nUR                  U5        M     U$ rs   )r   valuesextend)rv   suffixesrz  s      rl   rv  $ConverterTarget._all_source_suffixes  s+     "!((*DOOD! +rn   c                N    U R                   R                  R                  R                  [	        U S3[
        R                  S95      n[        U[        R                  [        R                  45      (       d   S5       eUR                  =(       d    / $ ! [         a    / s $ f = f)N_std)machinezfor mypy)r   r   optstoreget_value_objectr   r   BUILDr|   r   UserStdOptionUserComboOptionchoicesr   )rv   r  opts      rl   rQ  ConverterTarget._all_lang_stds#  s    	((##,,==i4&PT_l_r_r>stCcG$9$97;R;R#STT`V``T;;$"$ 	I	s   BB B$#B$c                B   [        U R                  5      n/ n/ nU Hb  nX$/-  n[        U[        5      (       a@  UR	                  5       [
        ;   a(  XR                   Vs/ s H  oUU;  d  M
  UPM     sn-  nM]  X4/-  nMd     [        [        U5      5      U l        g s  snf rs   rY  r   r|   r}   r   ra   r   rv   
to_process	processednew_depsr   r   s         rl   !process_inter_target_dependencies1ConverterTarget.process_inter_target_dependencies,      $,,'
	AI!_--!,,.D^2^))J)Q	7Iq)JJ
C  Jx01 K   	B,Bc                D    U R                  5       [        ;   a  / U l        g g rs   )r   ra   r   r  s    rl   cleanup_dependencies$ConverterTarget.cleanup_dependencies9  s    ?? ::DL ;rn   c                \    [         R                  U R                  R                  5       5      $ rs   )rX   r   r   rT  r  s    rl   r   ConverterTarget.meson_func>  s    ""499??#455rn   c                .
   [         R                  " S[         R                  " U R                  5      SU R                   S35        [         R                  " S[         R                  " [        U R                  5      5      5        [         R                  " S[         R                  " U R                  5      5        [         R                  " S[         R                  " U R                  5      5        [         R                  " S[         R                  " U R                  (       a  SOS	5      5        [         R                  " S
[         R                  " U R                  (       a  U R                  R                  5       OS5      5        [         R                  " S[         R                  " [        U R                  5      5      5        [         R                  " S[         R                  " [        U R                  5      5      5        [         R                  " S[         R                  " [        U R                  5      5      5        [         R                  " S[         R                  " [        U R                  5      5      5        [         R                  " S[         R                  " [        U R                   5      5      5        [         R                  " S[         R                  " [        U R"                  5      5      5        [         R                  " S[         R                  " [        U R$                  5      5      5        [         R                  " S[         R                  " [        U R&                  5      5      5        [         R                  " S[         R                  " [        U R(                  5      5      5        [         R                  " S[         R                  " [        U R*                  5      5      5        [         R                  " S[         R                  " U R,                  (       a  SOS	5      5        [         R                  " S[         R                  " [        U R.                  5      5      5        [         R                  " S[         R                  " [        U R0                  5      5      5        [         R                  " S5        U R2                  R5                  5        H;  u  p[         R                  " SUS[         R                  " [        U5      5      5        M=     g )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   logr0  rk   r{   r   r   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )rv   r  r  s      rl   r  ConverterTarget.logA  s   499TYY/1T__4EQ1GH($))C4G*HI($))DNN*CD($))DII*>?($))dllFPW*XY($))SWScScD4D4D4M4M4Oik*lm($))C8K8K4L*MN($))C4G*HI($))C8H8H4I*JK($))C4H*IJ($))C4G*HI($))C4F*GH($))C8I8I4J*KL($))C4E*FG($))C4G*HI($))C8K8K4L*MN($))dhhFG*TU($))C8M8M4N*OP($))C4E*FG!))//1HCHHWc3		#c((;< 2rn   )r   ru   r   r{   r   r   r   r   r   r~   r   r   r   r   r   r   r   r   r   r   r   rk   r   r   r   r   r   r   r   r   r   )r   r	   r   'Environment'r   r   r   r   r   r   )r`  rp   r3  r   r4  r   ra  r   r5  r   r   r   )rx  zT.List['ConverterTarget']ry  rL  r   r   )r   z'ConverterTarget'r   r   )r   'ImmutableListProtocol[str]')r  r   r   r  r   r   )r   r   r   r   rw   r  r   r   rN  rk  r{  rw  r   rv  rQ  r  r  r   r  r   r   rn   rl   r}   r}      sx    _B; 

EFIq-fp<]  t  t 2
6=rn   r}   c                  <    \ rS rSrSS jrS	S jrS
S jrS	S jrSrg)r]  iY  c                    Xl         X l        g rs   rd  index)rv   rd  r  s      rl   rw   CustomTargetReference.__init__Z  s    	
rn   c                   U R                  5       (       a\  SR                  U R                  R                  U R                  R
                  U R                  R                  U R                     5      $ SU R                  R                   S3$ )Nz<{}: {} [{}]>r  z: INVALID REFERENCE>)r^  rR  r  r   rd  rk   outputsr  r  s    rl   r  CustomTargetReference.__repr__^  sh    ::<<"))$..*A*A499>>SWS\S\SdSdeieoeoSpqqt~~..//CDDrn   c                J    U R                   S L=(       a    U R                  S:  $ Nr   r  r  s    rl   r^  CustomTargetReference.validd  s    yy$8q8rn   c                H    U R                   R                  U R                     $ rs   )rd  r  r  r  s    rl   filenameCustomTargetReference.filenameg  s    yy  ,,rn   r  N)rd  z'ConverterCustomTarget'r  intr   r   r  )r   rL  )	r   r   r   r   rw   r  r^  r  r   r   rn   rl   r]  r]  Y  s    E9-rn   r]  c                  X    \ rS rSrSrSrSS jrSS jrSS jrSS jr	SS jr
SS jrS	rg
)r   ij  r   c                   UR                   c   eUR                  c   eUR                  U l        U R                  (       d1  S[        R                   3U l        [        =R                  S-  sl        [        U R                  5      U l        [        UR                  5      U l	        U R                   Vs/ s H  oDR                  PM     snU l        0 U l
        / U l        UR                  U l        UR                  U l        / U l        / U l        UR                   U l         UR                  U l        X l        X0l        Xl        ['        U R                  5      U l        g s  snf )Ncustom_tgt_r   )current_bin_dircurrent_src_dirrk   r   tgt_counterr   r{   rY  r  r   conflict_mapcommandworking_dirr   r   r9  r   r   _raw_targetrm   )rv   r   r   r   r   s        rl   rw   ConverterCustomTarget.__init__n  s   %%111%%111KK	yy%&;&G&G%HIDI!--2-dii. $V^^ 4(,(=(=>(=1(=>.0FH!--!>>CEPR%55%55&! )3	 ?s   4Ec                j    SU R                   R                   SU R                   SU R                   S3$ )Nr  r  r  r  )r  r   rk   r  r  s    rl   r  ConverterCustomTarget.__repr__  s0    4>>**+2dii[$,,qIIrn   c                	  ^  T R                   c  T R                  T l         T R                   R                  5       (       d  T R                  T R                   -  T l         SU 4S jjnT R                   Vs/ s H
  oe" U5      PM     snT l        / nT R                   H[  nX;   aI  [        U5      n	S[        R                   SU 3n[        =R                  S-  sl        UT R                  U	'   X8/-  nXx/-  nM]     UT l        / n
T R                  R                   GHw  n[        U[        5      (       d   eUS   S:w  d   S5       e/ nU GH>  nU(       d  M  UR                  U5      nU(       a  T R                  R                  b  T R                  R                   T R"                     R%                  5       (       aR  [        T R                  R                  [&        5      (       d   eUT R                  R                  R)                  5       -  nX/-  nM  XR*                  ;   a_  UR*                  U   nUR,                  S:X  a$  S	UR                   ;   a  XR                   S	   -  nGM  [.        R0                  " S
U SU 35        X/-  nGMA     X/-  n
GMz     U
T l
        T R                  (       d  T R2                  S-   /T l        T R4                   GH  nU(       d  M  [7        U5      nUR9                  U5      nUR;                  U5      nUR=                  U5      nS n UR?                  U5      nUR                  5       (       dd  T RB                  U-  RE                  5       (       aB  T =RF                  T RB                  U-  R?                  U5      RI                  5       /-  sl#        M  UR                  5       (       a?  URK                  5       (       a*  Ub'  T =RF                  URI                  5       /-  sl#        GM,  U(       a  T =RL                  U/-  sl&        GML  U(       a  T =RL                  U/-  sl&        GMl  U(       d  GMv  URO                  U5      nUc   eT =RF                  U/-  sl#        GM     g s  snf ! [@         a    S n GN]f = f)Nc                P   > U R                  5       (       a  U $ TR                  U -  $ rs   )r*  r  )r   rv   s    rl   ensure_absolute:ConverterCustomTarget.postprocess.<locals>.ensure_absolute  s$    }}++a//rn   r   rc   r   r   r   z)An empty string is not a valid executablerU   IMPORTED_LOCATIONz#CMake: Found invalid CMake target "z" --> ignoring 
z.h)r   r   r   r   )(r  r  r*  r   r  r   r   out_counterr  r  r  r|   rY  rP   r   exe_wrapper
propertiesr   get_cmake_use_exe_wrapperr#   get_commandrU  r   r   rH   rk   r   r   r   r   r   r   r   r  is_filer9  r   r+  r   r\  )rv   r`  r3  all_outputsr5  r  r   temp_outputsr   oldcommandscurr_cmdcmdr  r   	trace_tgtrawartr   genrel_to_rootctgt_refs   `                     rl   rk  !ConverterCustomTarget.postprocess  s   ##33D ++--#33d6F6FFD	0
 >B=R=R S=R!3=R S
 %'A!f-99:!A3?%11Q61)*!!#&3KCL  $ CE((00Hh----A;"$Q&QQ$9;C*55a8xx++7DHH<O<OPTP`P`<a<{<{<}<})$((*>*>PPPPtxx33??AA8OC--' %a 0I ~~5:MQZQeQe:e334GHH JJ!DQCGXYbXcde s
' * H5 16   || II,-DL !!Aq'C#,,Q/C#**1-C#--c2CK#!ool; ??$$$*>*>*D)M)M)O)O!5!5!; H H V _ _ abb""szz||8O 4 4 677%%;;s++++z); "k !T@  #"#s   3Q5Q::R
	R
c                B   [        U R                  5      n/ n/ nU Hb  nX$/-  n[        U[        5      (       a@  UR	                  5       [
        ;   a(  XR                   Vs/ s H  oUU;  d  M
  UPM     sn-  nM]  X4/-  nMd     [        [        U5      5      U l        g s  snf rs   r  r  s         rl   r  7ConverterCustomTarget.process_inter_target_dependencies  r  r  c                    UR                   n X R                  ;   a  U R                  U   nU R                  R                  U5      n[	        X5      $ ! [
         a     g f = frs   )rk   r  r  r  r]  r   )rv   r   rk   idxs       rl   r\  ConverterCustomTarget.get_ref  s]    zz	(((((.,,$$T*C(33 		s   AA 
AAc                   [         R                  " S[         R                  " U R                  5      SU R                   S35        [         R                  " S[         R                  " [        U R                  5      5      5        [         R                  " S[         R                  " [        U R                  5      5      5        [         R                  " S[         R                  " [        U R                  5      5      5        [         R                  " S[         R                  " [        U R                  5      5      5        [         R                  " S[         R                  " [        U R                  5      5      5        [         R                  " S	[         R                  " [        U R                  5      5      5        [         R                  " S
[         R                  " [        U R                  5      5      5        g )NzCustom Targetr  r  z  -- command:      z  -- outputs:      z  -- conflict_map: z  -- working_dir:  z  -- depends_raw:  z  -- inputs:       z  -- depends:      )r   r  r0  rk   r{   r   r  r  r  r  r   r9  r   r  s    rl   r  ConverterCustomTarget.log  s   $))DII"6!DOO;LA8NO&		#dll2C(DE&		#dll2C(DE&		#d6G6G2H(IJ&		#d6F6F2G(HI&		#d6F6F2G(HI&		#dkk2B(CD&		#dll2C(DErn   )r  r{   r  r  r  r  r   r   r   r   r9  rk   r   r  r  N)r   r5   r   r  r   r   r   r   r  )
r`  rp   r3  r   r  rM  r5  r   r   r   r  )r   r   r   z!T.Optional[CustomTargetReference])r   r   r   r   r  r  rw   r  rk  r  r\  r  r   r   rn   rl   r   r   j  s.    KK42Jc*J2Frn   r   c                  Z    \ rS rSrSS jrSS jrSS jrSS jrSS jrSS jr	SS jr
S	rg
)CMakeInterpreteri  c                @   Xl         [        UR                  5       U5      U l        US-  U l        [        UR                  5       5      U R                  -  U l        X l        X0l        [        R                  U l        UR                  U l        [        5       U l        [!        U R                  5      U l        / U l        S U l        S U l        SU l        SU l        / U l        / U l        / U l        U   [5        U R                  5      U l        0 U l        0 U l        SU l        U R                  R?                  S5      (       a`  U R                  R@                  RB                  U R                     RE                  5        H   nURG                  5       S:X  d  M  SU l          g    g g )N__CMake_buildr   FvslinkT)$r4  r   r2  r   build_dir_relr-  ru   ra  r   r   HOSTr   rk   backend_namer   linkersr   fileapibs_filescodemodel_configscmake_stderrproject_nameproject_versionr   rU  custom_targetsrp   r`  generated_targetsinternal_name_map_object_lib_workaroundrh   r   r   r  get_linker_id)rv   r4  ra  r   backendcomps         rl   rw   CMakeInterpreter.__init__  sc   C..0&9#o5c//12T5G5GG,(--#LL#&5#DNN3 ')IM-1 !&(02=?!0!@ MO35 ',#''--))33D4D4DELLN%%'6126D/ O .rn   c           
        [        U R                  S[        R                  5      nUR	                  5       (       d  [        S5      e[        UR                  5       U R                  U R                  SS9U l	        [        S5      R                  U R                  5      n[        X R                  U R                  [        R                  U R                  U5      nUR!                  5       n[#        U5      n/ nU[%        U R                  5      -  nUSU R&                   3/-  nXa-  n[)        S U 5       5      (       dg  [*        R,                  " SU R                  R.                  R0                  R3                  [5        S	5      5      5      nU[6        ;   a  US
[6        U    3/-  nU R                  R9                  5       n[:         V	s/ s H	  n	SU	 S3PM     n
n	U R<                  R?                  5         [@        RB                  " 5         [@        RD                  " 5          [@        RB                  " S[@        RF                  " S5      S[@        RH                  " UR                  5       5      5        [@        RB                  " [@        RF                  " S5      SRK                  U5      5        [@        RB                  " [@        RF                  " S5      U R                  RM                  5       5        [@        RB                  " [@        RF                  " S5      U RN                  RM                  5       5        [@        RB                  " [@        RF                  " S5      URM                  5       5        [@        RB                  " [@        RF                  " S5      URM                  5       5        [@        RB                  " [@        RF                  " S5      SRK                  U5      5        [@        RB                  " [@        RF                  " S5      SRQ                  SRK                  [:        5      5      5        [@        RB                  " 5         U R                  RS                  SSS9  [T        RV                  " 5       nSUS'   Xh-   U
-   URY                  5       -   U RN                  RM                  5       /-   nUR[                  SU R                  R]                  5       S9  UR_                  XR                  USS9u  pU l0        S S S 5        [@        RB                  " 5         WS:X  a  [@        Rb                  " S 5      O[@        Rd                  " S!5      n[@        RB                  " S"U5        US:w  a  S#U R                  Rf                  S#   0U R                  l3        U R                  Ri                  U R`                  5        U R                  Rj                  (       a  S$U R                  Rj                  S%    3OS&n[        S'U 35      eU$ s  sn	f ! , (       d  f       GN= f)(Nz>=3.14zUnable to find CMakeT)
permissivezcmake/data/preload.cmakez-DCMAKE_INSTALL_PREFIX=c              3  B   #    U  H  oR                  S 5      v   M     g7f)-DCMAKE_BUILD_TYPE=N)rh   )r  args     rl   r  -CMakeInterpreter.configure.<locals>.<genexpr>J  s     OJS>>"788Js   r   	buildtyper  z-DCMAKE_POLICY_WARNING_z=OFFz$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, r&  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  ru   r5  r   write_to_privater   r   r   
SUBPROJECTwriter   r   ra  r,  Tcastr   r  get_value_forr   rL   
trace_argsrC   r  setup_requestr   r  nestedr0  cyanrS  r   r   rR  r.  r   copyget_cmake_argsset_exec_moderequires_stderrcallr  greenred	functionsparseerrors)rv   extra_cmake_options	cmake_exepreload_file	toolchaintoolchain_file
cmake_argsr  r  r   
cmcmp_argsos_env
final_argsrcrc   herrors                    rl   	configureCMakeInterpreter.configure7  s[    "$((Hm6I6IJ	   !788%i&7&7&94>>488`de
 :;LLTXXV"9hh8H8H.JcJceieses  vB  C	"* //BC
.txx88
01D1D0EFGG
)
OJOOOudhh&7&7&@&@&N&NyYdOe&fgIM)!4]95M4NOPP
ZZ**,
AXYAXA/s$7AX
Y""$ 	
[[]HH;TYYw=OQZ\`\e\efofwfwfy\z{HHTYY45sxx
7KLHHTYY>?AXAXAZ[HHTYY>?AVAVAXYHHTYY>?AXAXAZ[HHTYY>?AVAVAXYHHTYY>?*AUVHHTYY>?tyyYpOqArsHHJNN   =\\^F"F8#0:=	@X@X@ZZ^b^j^j^s^s^u]vvJ##DJJLfLfLh#i'0~~j..V\lp~'q$B4$! $ 	
')QwDJJ{#DHHX4F'+7$-tzz/C/CI/N#ODJJ JJT../48JJ4E4Eb**2./02E #KE7!STTE Z ]s   W/KW44
Xc           
     @   U R                  U5        U R                  R                  5         U R                  R                  5       nU Vs/ s H4  o3R                  (       a  M  UR
                  (       a  M(  UR                  PM6     snU l        U R                   Vs/ s H0  n[        U[        U R                  R                  5       5      5      PM2     snU l        U R                   Vs/ s H8  n[        U[        U R                  R                  5       5      SS9(       a  M6  UPM:     snU l        [        [        U R                  5      5      U l        U R                  R!                  5       U l        U R                  R%                  5       U l        g s  snf s  snf s  snf )NTr%  )r3  r  
load_replyget_cmake_sourcesis_cmakeis_tempfiler  r   r   r   r2  r   r-  rY  r   get_cmake_configurationsr  get_project_versionr  )rv   r'  cmake_filesr   s       rl   
initialiseCMakeInterpreter.initialiset  s   *+ 	! ll446)4YAJJqyyY^b^k^kl^kYZ0D9P9P9R4ST^kl$(MMzMqDQUQYQYQgQgQiLjtx9yMzZ67 "&!F!F!H#||??A Zlzs$   
F"F5F7F(5F!Fc                
   U R                   c  [        S5      eSU l        / U l        / U l        / U l        U R                  R                  U R                  5        / nU R                    H  nUR                   H  nU R                  (       d  UR                  U l        UR                   Hn  nUR                  [        ;  d  M  UR                  U;  d  M+  XR                  /-  nU =R                  [        X@R                  U R                  5      /-  sl        Mp     M     M     U R                   Vs/ s H  oUR                  PM     nnU R                  R                  R!                  5        H  nUR                  S:w  d!  UR                  U;   d  UR"                  (       a  M6  [%        UR                  SU R&                  U R(                  S.5      nU =R                  [        XR                  U R                  5      /-  sl        M     U R                  R
                   H7  n	U =R
                  [+        XR                  U R                  5      /-  sl        M9     / U R                  QU R
                  Q H;  n
[-        U
[        [*        45      (       d   eU R.                  R1                  U
5        M=     / n/ nU R
                   H4  nUR3                  U R.                  U R&                  XR                  5        M6     U R                   H  nUR3                  U R.                  U R&                  U R4                  U R6                  U R                  5        UR                  S:X  a  X/-  nU =R                  UR                   Vs/ s H  oUU R                  ;  d  M  UPM     sn-  sl        M     U R                   Hj  nUR8                   HW  nU R.                  R;                  U5      nU(       a  [-        U[*        5      (       a  M<  UR<                  R?                  U5        MY     Ml     U R                   H  nURA                  XRB                  5        M      U R                   H  nURE                  5         M     U R
                   H  nURE                  5         M     U R                   H  nURG                  5         M     [H        RJ                  " S[H        RL                  " U R                  5      [H        RL                  " U RN                  5      S[H        RL                  " [Q        [S        U R                  5      [S        U R
                  5      -   5      5      S	5        g s  snf s  snf )
Nz$CMakeInterpreter was not initializedr   	INTERFACErW   )rk   r   sourceDirectorybuildDirectoryrV   zCMake projecthaszbuild targets.)*r  r   r  r   rU  r  r5  r%  r  projectsrk   r   rZ   r}   r   r   r  importedr	   r   ru   r   r|   r`  r   rk  r4  ra  r   r   r   r_  r{  r  r  r  r   r  r0  r  r   r   )rv   added_target_namesi_0j_0k_0r   api_target_name_listi_1dummyi_2i_3r   custom_target_outputsrd  r   r   r   s                    rl   analyseCMakeInterpreter.analyse  sP   !!) !GHH   	

**+ +-))C||(((+D%;;C xx|3HZ8Z*xxj8*hhHXHX)Y(ZZ ' $ * 15=1=::%%,,.Cxx;&#((6J*Jcll+#'<<"&..	! E LL_UHHd>N>NOPPL / ::,,C$9#xxIYIY$Z#[[ - 9T\\8D$7$78CcO5J#KLLLL""&&s+ 9
 -/''DT33T\\CXZdZde (<<COOD22DLL$++tObObdhdndnoxx++u$NN#--S-QDNN;Rq-SSN	   <<C%% 2299!<	 Jy:O$P$P$$Y/ &   <<C##K1L1LM   <<C113  ''D224 ( <<C$$&   	$))D,=,=">		$J^J^@_afhlhqhqruvyz~  {G  {G  wH  KN  OS  Ob  Ob  Kc  wc  sd  ie  gw  	xo  >: Ts   0U>U
U
c                f  ^ ^^^^^^^	^
^^^^^^^^^^^^^ T R                   (       d  [        S5      eSSU 4S jjjmSU4S jjmSU4S jjmSU4S jjm	SU4S jjmSUUUU4S jjmSUU4S jjm
SUUU4S	 jjmSSU	UUU4S
 jjjmSSU	UUU4S jjjmS U	U4S jjm[        T" 5       5      mT=R                  T" ST R                   /T R                  -   T R
                  (       a  ST R
                  0OS 5      /-  sl        / m0 m0 mS!U	U4S jjmS"U4S jjmS#UU
4S jjmS$UUUUUU	UUUUUUUU4S jjmS%UUUUUUUUUU4
S jjmT R                   H  nUR                  T;  d  M  T" U5        M     T R                   H  nUR                  T;  d  M  T" U5        M     TT l	        TT l
        T$ )&Nz!CMakeInterpreter was not analysedc           	     V   > [        U TR                  R                  5       SSSS U5      $ r  )r%   r4  r   )tidr  rv   s     rl   token3CMakeInterpreter.pretend_to_be_meson.<locals>.token  s'    dkk224aAtSIIrn   c                (   > [        T" SU 5      5      $ )Nr   )r2   )r  rV  s    rl   symbol4CMakeInterpreter.pretend_to_be_meson.<locals>.symbol  s    eBn--rn   c                    > [        T" U S9SS9$ )Nr  F)escape)r-   valuerV  s    rl   string4CMakeInterpreter.pretend_to_be_meson.<locals>.string  s    e.u==rn   c                "   > [        T" U S95      $ Nr\  )r.   r^  s    rl   id_node5CMakeInterpreter.pretend_to_be_meson.<locals>.id_node  s    %E*++rn   c                4   > [        T" [        U 5      S95      $ rc  )r1   r   r^  s    rl   number4CMakeInterpreter.pretend_to_be_meson.<locals>.number  s    eE
344rn   c                  > [        U [        5      (       a  T" U 5      $ [        U [        5      (       a  T" U R                  5       5      $ [        U [        5      (       a  [        T" U S95      $ [        U [        5      (       a  T" U 5      $ [        U [        5      (       a  T" U 5      $ [        U [        5      (       a  U $ [        SR                  [        U 5      R                  [        U 5      5      5      e)Nr\  zinvalid type of value: {} ({}))r|   r   r   r   rL  r,   r  rY  r&   RuntimeErrorrR  r   r   )r_  arrayrg  r`  rV  s    rl   nodeify5CMakeInterpreter.pretend_to_be_meson.<locals>.nodeify  s    %%%e}$%&&enn.//E4(("5U#344E3''e}$E4((U|#E8,,?FFtE{G[G[]`af]ghiirn   c                D   > [        U T" S5      T" U5      T" S5      5      $ N[])r/   )noder  rl  rY  s     rl   indexed5CMakeInterpreter.pretend_to_be_meson.<locals>.indexed  s     T6#;sLLrn   c                   > [        T" 5       5      n[        U [        5      (       d  U/n U=R                  U  Vs/ s H  o"c  M  T" U5      PM     sn-  sl        [	        T" S5      UT" S5      5      $ s  snf ro  )r*   r|   rY  	argumentsr)   )elementsr  r   rl  rY  rV  s      rl   rk  3CMakeInterpreter.pretend_to_be_meson.<locals>.array  sc    (Dh-- 6NN8M8azwqz8MMNVC[$s<< Ns   A3A3c                  > Uc  / OUnUc  0 OUn[        T" 5       5      n[        U[        5      (       d/  [        U[        [        [
        [        [        45      (       d   eU/nU Vs/ s H  oDc  M  T	" U5      PM     snUl        UR                  5        VVs0 s H  u  pVUc  M
  T" U5      T	" U5      _M     snnUl
        [        T" U 5      T
" S5      UT
" S5      5      nU$ s  snf s  snnf )Nr  r  )r*   r|   rY  r   r  rL  r   r&   rv  r   kwargsr(   )rk   r  rz  args_nr   r   vfunc_nrd  rl  rY  rV  s           rl   function6CMakeInterpreter.pretend_to_be_meson.<locals>.function	  s    24D!>RvF!%'*FdD))!$c4x(HIIIIv48JDq

DJF@F`RS3WQZ3`FM!'$-ffSkRFM  K`s   (C$2C$	C)&C)c           
       > Uc  / OUnUc  0 OUn[        T" 5       5      n[        U[        5      (       d/  [        U[        [        [
        [        [        45      (       d   eU/nU Vs/ s H  oUc  M  T	" U5      PM     snUl        UR                  5        VVs0 s H  u  pgUc  M
  T" U5      T	" U5      _M     snnUl
        [        U T
" S5      T" U5      T
" S5      UT
" S5      5      $ s  snf s  snnf )Nr   r  r  )r*   r|   rY  r   r  rL  r   r&   rv  r   rz  r0   )objrk   r  rz  r{  r   r   r|  rd  rl  rY  rV  s           rl   method4CMakeInterpreter.pretend_to_be_meson.<locals>.method  s    24D!>RvF!%'*FdD))!$c4x(HIIIIv48JDq

DJF@F`RS3WQZ3`FMc6#;vc{FTZ[^T_``  K`s   (C*2C*	C/&C/c                6   > [        T" U 5      T" S5      U5      $ )Nr  )r+   )var_namer_  rd  rY  s     rl   assign4CMakeInterpreter.pretend_to_be_meson.<locals>.assign   s    !'("3VC[%HHrn   projectr  c                   > S n[        U [        [        45      (       a  U R                  nO+[        U [        5      (       a  U R
                  R                  nUb  UT;   d   eTU   S   nU(       a  T" U5      $ S $ )Nr   )r|   r}   r   rk   r]  rd  )r   r   res_varrd  r  s      rl   extract_tgt9CMakeInterpreter.pretend_to_be_meson.<locals>.extract_tgt.  ss    H#1FGHH88C!67788=='H	,AAA)%0G'.77#8D8rn   c                   > U R                   T;   a:  TR                  U R                   5        SR                  T5      n[        SU 35      eTR                  U R                   5        g )Nz -> z-Cycle in CMake inputs/dependencies detected: )rk   r_  rS  r   )r   stack
processings     rl   detect_cycle:CMakeInterpreter.pretend_to_be_meson.<locals>.detect_cycle8  sV    xx:%!!#((+J/$'TUZT[%\]]chh'rn   c                   > T" U 5      n[        U R                  R                  5      S:X  a  U$ T" XR                  5      $ )Nr   )r   rd  r  r  )ri  tgt_varr  rs  s     rl   resolve_ctgt_ref>CMakeInterpreter.pretend_to_be_meson.<locals>.resolve_ctgt_ref?  s8    !#&G388##$)w		22rn   c                Z
  > T"" U 5        / n/ n/ n/ n/ n/ n/ nU R                    H>  n[        U[        5      (       d   eUR                  T+;  a  T*" U5        UT#" U5      /-  nM@     U R                   H>  n[        U[        5      (       d   eUR                  T+;  a  T*" U5        UT#" U5      /-  nM@     U R
                   H>  n[        U[        5      (       d  M  UR                  T+;  a  T)" U5        UT#" U5      /-  nM@     X0R                  -  nX0R                  -  nU R                   HR  n	U	R                  n
U
R                  T+;  a  T)" U
5        UT," U	5      /-  nXYR                  5       /-  nX;  d  MM  Xj/-  nMT     U HV  n
U
R                   HC  n[        U5      (       a  X;   a  M  UT," U
R                  [        U5      5      5      /-  nX[/-  nME     MX     U R!                  5       nU(       d  [#        SU R$                   S35      eU R                   S3nU R                   S3nU R                   S3nU R                   S3nU R                   S3nU R                  nT(R&                  " U R(                  U R*                  5      nUT(R,                  " U R(                  U R.                  U R0                  -   5      UT%" U5      UT(R2                  " U R(                  U R4                  5      U Vs/ s H  nT&" US5      PM     snS	.nU(       a   U R6                  (       a  U R6                  US
'   U R8                  R;                  5        H*  u  nnT(R<                  " U R(                  UU5      UU S3'   M,     US:X  a  U R>                  US'   OUS:X  a  U R>                  US'   T%" U5      U R@                  T%" U5      S.nUS:X  a  U R.                  U R0                  -   US'   OU RB                  US'   U(       a  XG-  nT!" UT$" SU RD                  5      5      nT!" UT$" SU RF                  SS05      5      nT!" UT " T%" U5      T%" U5      /5      5      nUUU/nUS:X  a  US	 T!" UT$" SUS95      nUU/-  nS nS nOmT!" UT$" SU5      5      nT!" UT$" UUT%" U5      /UQU5      5      nUUU/-  nUS;   a  T!" UT$" SUS95      nUU/-  nO US:X  a  US	 T!" UT$" SUS95      nUU/-  nOS nT-=RH                  U-  sl$        UUUUUS.T+U R                  '   U R                  T'U R(                  '   g s  snf )NzUnknown target type ""_inc_dir_sys_src_depextract_all_objects)build_by_default	link_argsr   rV  r   r   objectsr   _argsrP   r   rM   pic)r   compile_argsrV  r  rV  	is_systemTrQ   r   declare_dependency)rz  r   >   rO   rM   rN   incsrcdepr   func)%r   r|   r}   rk   r   r   r   r   r   r   rd  r  r  r"   r\  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).r   r   
objec_libsr   r   generated_filenamesr  dependenciesr   r  rd  r  tgt_funcinc_vardir_varsys_varsrc_vardep_varr  install_tgtr   
tgt_kwargsr  r  
dep_kwargsdir_nodesys_nodeinc_node	node_listdep_nodesrc_nodetgt_noderk  r  r  r  r~  rd  r  name_mapr   process_custom_targetprocess_targetr  r  root_cbs.                                   rl   r  <CMakeInterpreter.pretend_to_be_meson.<locals>.process_targetF  sj    )+I)+J$&G<>I/1<>N+-L]]!!_555566*"1%k!n--		 #
 __!!_555566*"1%{1~..
	 %
 [[!!%:;;66*)!,Q 00 ! {{"G}}$G..}}99I-)$/.x899	#(9(9(;'<<#-"f,N / 'A$Q<<1+C "24<<Q3H"I!JJI'3.' & ' ~~'H$'<SXXJa%HII 
$'G
$'G
$'G
$'G
$'GhhG!--cnnckkJK %0$223>>3>>TWTfTfCfg&'.w'7&$+$@$@QTQeQe$fFPQjF1&;<jQ-J s,/OO
=)  ,,224S,3,D,DS^^UXZ],^
cU%=) 5 <'$'GG
5!--$'GG
5! %W- # 7 7'.w'7-J ++*-..3;M;M*M
;'*-*?*?
;')	 gx0Es||'TUHgx0EsGWGWZegkYl'mnHgugg.>@P-Q'RSH!8X6I=({+!'84HQ[+\]hZ'	!'8GW+EF!'8HwPWHX>e[d>egq+rsh11	CC%gx8LU_/`aH(+I0";/%gx8LU_/`aH(+I"G MMY&M*1''Zaks"tIchh'*xxHS^^$} Rs   1T(c           
     @  >
 T" U 5        U R                   nSU	UUUU4S jjn/ nU[        R                  " 5       -  nUSS/-  nUSS/-  nU R                  (       a1  US/U R                   Vs/ s H  oDR	                  5       PM     sn-   -  nUSU R
                  R	                  5       /-  nU R                   H!  nX5 Vs/ s H
  oB" U5      PM     snS/-   -  nM#     U R                   Vs/ s H
  oB" U5      PM     snU R                  UU R                   Vs/ s H
  oB" U5      PM     snS	.nT=R                  T" UT
" S
U R                   /U5      5      /-  sl
        S S S US
S.TU R                   '   U R                   TU R                  '   g s  snf s  snf s  snf s  snf )Nc                n  > [        U [        5      (       a   U R                  T;  a  T" U 5        T" U 5      $ [        U [        5      (       a   U R                  T;  a  T" U 5        T" U 5      $ [        U [        5      (       a4  U R
                  R                  T;  a  T" U R
                  5        T" U 5      $ U $ rs   )r|   r}   rk   r   r]  rd  )r   r  r  r  r  r  s    rl   resolve_source[CMakeInterpreter.pretend_to_be_meson.<locals>.process_custom_target.<locals>.resolve_source  s    a11vvY.&q)&q>)a!677vvY.-a0&q>)#899vv{{)3-aff5+A..Hrn   z
--internalcmake_run_ctgtz-oz@OUTPUT@z-Oz-dz;;;)inputoutputr  r   custom_targetr  )r   zKT.Union[str, ConverterTarget, ConverterCustomTarget, CustomTargetReference]r   zT.Union[str, IdNode, IndexNode])rk   r   get_meson_commandr   r   r  r  r9  r  r   r  r{   )r   r  r  r  r   r  r  r  r  r  r~  r  r  r  r  r  r  s          rl   r  CCMakeInterpreter.pretend_to_be_meson.<locals>.process_custom_target  s    hhG " @BGx1133G&677Gj))G##D63;O;O$P;OaZZ\;O$PPPcoo66899G {{s;s!N1-s;ugEE # 69ZZ@Z.+Z@++"7:{{C{!N1-{C	-J MMfWh
T^._`aaM*.tDQXbq"rIchh'*xxHS^^$! %Q
 < A Ds   ,F>F*FF
)r`  r   )rU  r   r  
TYPE_mixedr   r%   )r  r   r   r2   )r_  r   r   r-   )r_  r   r   r.   )r_  r  r   r1   )r_  TYPE_mixed_listr   r&   )rr  r&   r  r  r   r/   )rw  r  r   r)   )NN)rk   r   r  T.Optional[TYPE_mixed_list]rz  T.Optional[TYPE_mixed_kwargs]r   r(   )
r  r&   rk   r   r  r  rz  r  r   r0   )r  r   r_  r&   r   r+   )r   zFT.Union[ConverterTarget, ConverterCustomTarget, CustomTargetReference]r   r.   )r   z/T.Union[ConverterTarget, ConverterCustomTarget]r   r   )ri  r]  r   zT.Union[IdNode, IndexNode])r   r}   r   r   )r   r   r   r   )r  r   r'   r  r   r  r  rk   rU  r  r  )rv   r   rd  r   rk  r  r  r  r~  rd  rs  r  r  rl  rg  r  r  r  r  r  r  r`  rY  rV  s   ``  @@@@@@@@@@@@@@@@@@@@rl   pretend_to_be_meson$CMakeInterpreter.pretend_to_be_meson  s      !DEE	J 	J	.	>	,	5	j 	j	M 	M	= 	=
	 
			a 		a	I 	I  ((9t/@/@.ADNN.Ry}  zN  zNU^`d`t`tTu  TX  Y  Z  	Z
 #%
?A	%'	9 	9	(	3 	3L	0 L	0 L	0\/	0 /	0 /	0d ''Dyy	)%d+ ( <<Cxxy(s#   "+!)rn   c                    [        U5      nX R                  ;   a  U R                  U   $ XR                  ;   a/  U R                  U   nXR                  ;   d   eU R                  U   $ g rs   )rm   r  r  )rv   r   prx_tgts      rl   target_infoCMakeInterpreter.target_info  sm     'v.,,,))'22+++++F3F33333))&11rn   c                H    [        U R                  R                  5       5      $ rs   )rY  r  r   r  s    rl   target_listCMakeInterpreter.target_list  s    D**//122rn   )r  r  r  ru   r  r  r  r  r   r  r   r  ra  r  r   r  r`  r  r  r   r4  rU  r5  N)r4  r   ra  r   r   r  r  z	'Backend')r'  rM  r   r   )r'  rM  r   r   r  )r   r4   r   r'   )r   r   r   zT.Optional[T.Dict[str, str]])r   rM  )r   r   r   r   rw   r3  r>  rQ  r  r  r  r   r   rn   rl   r  r    s-    $L;zB&Txlrh	3rn   r  )rk   r   r   r   )g
__future__r   	functoolsr   osr   pathlibr   rZ  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.   r/   r0   r1   r2   TYPE_CHECKINGr3   r4   r5   _typingr6   backend.backendsr7   environmentr8   Unionr   r  rL  r  Sequencer  DictTYPE_mixed_kwargsrC   __annotations__rL   rX   rZ   r]   r^   r_   r`   ra   r   rf   rm   rp   r}   r]  r   r  r   rn   rl   <module>r     s   #     	  i i ! # 5 ) 5   Z Z    { { & -   $ ??91/*)c4x78Jggj!**Z*@@AOsO34. *  &	&"  '%&&&($  $-+ -/ + + ' 4 0 * &  2? - ?JJ/0 N' N'`C= C=J- -"dF dFLO3 O3rn   