+
    UBiE                    @   ^ RI Ht ^ RIt^ RIt^RIHtHtHtH	t	 ^RI
HtHtHtHtHt ^RIHt ^RIHtHtHt ^RIHt ^RI	Ht ^R	IHtHtHtHtHtHt ^R
IHtH t H!t! ]PD                  '       d   ^RI
H#t#H$t$ ^RIH%t% ^RI&H't' . ROt( ! R R4      t) ! R R]4      t*R# )    )annotationsN)	compilersenvironmentmesonliboptions)
ExecutableJarSharedLibrarySharedModuleStaticLibrary)detect_compiler_for)InvalidArguments
SubProjectUnknownValue)MachineChoice)	OptionKey)BaseNode	ArrayNodeElementaryNodeIdNodeFunctionNode
StringNode)AstInterpreterIntrospectionBuildTargetIntrospectionDependency)BuildTargetBuildTargetKeywordArguments)TYPE_var)
AstVisitorc                  .    ] tR t^!tR R ltR R ltRtR# )IntrospectionHelperc                   V ^8  d   QhRR/# )   
cross_fileT.Optional[str] )formats   "A/usr/lib/python3.14/site-packages/mesonbuild/ast/introspection.py__annotate__ IntrospectionHelper.__annotate__#   s     . .? .    c                	L    Ve   V.M. V n         . V n        / V n        . V n        R # N)r$   native_filecmd_line_optionsprojectoptions)selfr$   s   &&r(   __init__IntrospectionHelper.__init__#   s*    *4*@:,b(*8:+-r+   c                    V ^8  d   QhRRRR/# )r#   otherobjectreturnboolr&   )r'   s   "r(   r)   r*   )   s      F t r+   c                	    \         # r-   )NotImplemented)r1   r5   s   &&r(   __eq__IntrospectionHelper.__eq__)   s    r+   )r/   r$   r.   r0   N)__name__
__module____qualname____firstlineno__r2   r;   __static_attributes__r&   r+   r(   r!   r!   !   s    . r+   r!   c                  0  a  ] tR t^,tRR]! R4      RR3R V 3R llltR R ltR R	 ltR
 R ltR R lt	R R lt
R R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR  R! ltR" R# ltR$ R% ltR& R' ltR( R) ltR-R* R+ lltR,tV ;t# ).IntrospectionInterpreterN subprojectsc               8    V ^8  d   QhRRRRRRRRRRR	R
RRRR/# )r#   source_rootstrsubdirbackendvisitorszT.Optional[T.List[AstVisitor]]r$   r%   
subprojectr   subproject_direnvz#T.Optional[environment.Environment]r&   )r'   s   "r(   r)   %IntrospectionInterpreter.__annotate__2   sX      !  :	
 - ( "% :r+   c	                	  < \        V4      p	T;'       g    \        P                  ! VR V	4      p
\        SV `  WWgWR7       WPn        W0n        / V n        . V n        . V n	        R V n
        V P                  P                  RV P                  RV P                  RV P                  RV P                   RV P"                  RV P$                  RV P&                  R	V P(                  R
V P*                  RV P,                  /
4       R # )N)rK   add_languages
dependency
executablejarlibraryprojectshared_libraryshared_modulestatic_libraryboth_libraries)r!   r   Environmentsuperr2   r$   rJ   project_datatargetsdependenciesproject_nodefuncsupdatefunc_add_languagesfunc_dependencyfunc_executablefunc_jarfunc_libraryfunc_projectfunc_shared_libfunc_shared_modulefunc_static_libfunc_both_lib)r1   rG   rI   rJ   rK   r$   rL   rM   rN   r   env_	__class__s   &&&&&&&&&  r(   r2   !IntrospectionInterpreter.__init__2   s     &j1IIk--k4Ij$b$029;=?*.

T44$..$..4==t((t((d22T44d22d00
 	r+   c               (    V ^8  d   QhRRRRRRRR/# )	r#   noder   argsT.List[TYPE_var]kwargsT.Dict[str, TYPE_var]r7   Noner&   )r'   s   "r(   r)   rO   S   s1     3C 3C 3C1A 3CK` 3Cei 3Cr+   c                	   V P                   '       d   \        R 4      h\        V\        4      '       g   Q hWn         \	        V4      ^8  d   \        R4      hR R lpV^ ,          pVP                  RR4      p\        V\        4      '       d   VP                  p\        V\        4      '       g   RpV P                  VR,          4      pV! VP                  RR4      4      ;'       g    R	.pV! VP                  R
R4      4      ;'       g    . p	RVRVRVR
V	/V n
        V P                  4        V P                  4       '       gZ   RV9   dS   VR,          p
\        V
\        4      '       d4   \        V
P                  \        4      '       g   Q hV
P                  V n        V P                  4       '       g   . V P                  R&   \        P                   P#                  V P$                  V P                  4      p\        P                   P'                  V4      '       d|   \        P(                  ! V4       Fa  p\        P                   P'                  \        P                   P#                  W4      4      '       g   KG  V P+                  \-        V4      4       Kc  	  V P.                  P1                  V P2                  4       V P5                  VR\6        P8                  4       V P5                  VR\6        P:                  4       R# )zSecond call to project()zCNot enough arguments to project(). Needs at least the project name.c                    V ^8  d   QhRRRR/# )r#   rq   zT.Anyr7   zT.Optional[T.List[str]]r&   )r'   s   "r(   r)   ;IntrospectionInterpreter.func_project.<locals>.__annotate__[   s     
	 
	E 
	&= 
	r+   c                "   \        V \        4      '       dV   . pV P                  P                   F7  p\        V\        4      '       g    R # VP                  VP                  4       K9  	  V# \        V \        4      '       d   V P                  .# R # r-   )
isinstancer   rr   	argumentsr   appendvalue)rq   rvs   &  r(   	_str_list8IntrospectionInterpreter.func_project.<locals>._str_list[   sk    $	**,,A%a44#HHQWW% - $
++

|#r+   version	undefined   NNlicenseNunknownlicense_filesdescriptive_namerM   rE   T)r`   r   r{   r   lengetr   r~   rH   flatten_argsr]   _load_option_fileis_subprojectr   rM   ospathjoinrG   isdirlistdirdo_subprojectr   r   init_backend_optionsrJ   _add_languagesr   HOSTBUILD)r1   rq   rr   rt   r   	proj_name	proj_vers
proj_langsproj_licenseproj_license_files	spdirnamesubprojects_diris   &&&&         r(   rh   %IntrospectionInterpreter.func_projectS   sH   "#=>>$---- t9q="#hii
	 G	JJy+6	i00!I)S))#I&&tBx0
 !It!<=LL)&vzz/4'HIOOR/IyR[]ikz  }O  P !!##(8F(B/0I)Z00!)//37777&/oo#!!##/1Dm, ggll4+;+;T=P=PQOww}}_--O4Aww}}RWW\\/%EFF**:a=9 5 	--dll;Jm.@.@AJm.A.ABr+   c                    V ^8  d   QhRRRR/# )r#   dirnamer   r7   rv   r&   )r'   s   "r(   r)   rO      s     	 	Z 	D 	r+   c                	&   \         P                  P                  V P                  P	                  4       V P
                  4      p\         P                  P                  W!4      p \        VR V P                  V P                  WP
                  V P                  V P                  R7      pVP                  4        WP                  R&   V P                  R;;,          VP                  .,          uu&   R#   \        P                  \        3 d     R# i ; i)rD   )r$   rL   rM   rN   rK   namerE   N)r   r   r   r   get_source_dirrM   rC   rJ   r$   rK   analyzer]   r   MesonExceptionRuntimeError)r1   r   subproject_dir_abssubprsubis   &&   r(   r   &IntrospectionInterpreter.do_subproject   s    WW\\$*:*:*I*I*KTM`M`a/9	+E2t||PTP_P_ls  EX  EX  ^b  ^n  ^n  y}  yF  yF  GDLLN(/f%m,1B1B0CC,''6 		s   #BC1 1DDc               (    V ^8  d   QhRRRRRRRR/# )	r#   rq   r   rr   rs   rt   ru   r7   r   r&   )r'   s   "r(   r)   rO      s+      x 7G Qf kw r+   c                	H   V P                  V4      pVP                  R R4      p\        V\        \        P
                  \        34      '       g   Q R4       h\        V\        P
                  4      '       d   VP                  4       pRV9   dU   VP                  RR4      pT P                  Y$V'       d   \        P                  M\        P                  4       \        4       # \        P                  \        P                  3 F  pV P                  W$V4       K  	  \        4       # )requiredTfor mypynativeF)flatten_kwargsr   r{   r8   r   UserFeatureOptionr   
is_enabledr   r   r   r   )r1   rq   rr   rt   r   r   for_machines   &&&&   r(   rc   +IntrospectionInterpreter.func_add_languages   s    $$V,::j$/(T7+D+Dl$STT`V``Th 9 9::**,HvZZ%0Fv0C0CS`SeSef ~ !. 3 3]5G5GH##DK@  I~r+   c               (    V ^8  d   QhRRRRRRRR/# )	r#   	raw_langsrs   r   zT.Union[bool, UnknownValue]r   r   r7   rv   r&   )r'   s   "r(   r)   rO      s6     X X(8 XD_ Xn{ X  AE Xr+   c                	   . pV P                  V4       F_  p\        V\        4      '       d   VP                  V4       K,  \        V\        4      '       g   KD  VP                  VP
                  4       Ka  	  \        V\        P                  R 7       F  pVP                  4       pW`P                  P                  V,          9  g   K6   \        V P                  WcRV P                  4      pT'       g   Kc  T P                  P#                  YgT P                  4       K  	  R#   \        P                   d$    \        T\         4      '       g	   T'       d   h  K  i ; i))keyTN)r   r{   rH   r}   r   r~   sortedr   
sort_clinklowercoredatar   r   rL   r   r   r   process_compiler_options)r1   r   r   r   langsllangcomps   &&&&    r(   r   'IntrospectionInterpreter._add_languages   s    ""9-A!S!!QAz**QWW%	 . 5i&:&:;D::<D==22;??!.t/?/?TXZ^ZiZijD 4MM::4tW <
  .. !!(L99X !s   	"D!!2EEEc               (    V ^8  d   QhRRRRRRRR/# )	r#   rq   r   rr   rs   rt   ru   r7   z#T.Optional[IntrospectionDependency]r&   )r'   s   "r(   r)   rO      s/      H 4D Nc   iL r+   c           	     	n   \        V\        4      '       g   Q hV P                  V4      pV P                  V4      pV'       g   R # V^ ,          p\        V\        \
        34      '       g   Q hRV9   pVP                  RR4      pVP                  R. 4      p\        V\        4      '       g   V.p\        ;QJ d    R V 4       F  '       g   K   RM	  RM! R V 4       4      '       d   \        4       pMl\        ;QJ d    R V 4       F  '       d   K   RM	  RM! R V 4       4      '       g   Q h\        P                  ! \        P                  \        ,          V4      p\        V\        \
        34      '       g   Q h\        VVVVVP                  ^ 8  VR7      pV ;P                   V.,          un        V# )	Nfallbackr   Tr   c              3  B   "   T F  p\        V\        4      x  K  	  R # 5ir-   )r{   r   .0els   & r(   	<genexpr>;IntrospectionInterpreter.func_dependency.<locals>.<genexpr>   s     >gz"l++g   Fc              3  B   "   T F  p\        V\        4      x  K  	  R # 5ir-   )r{   rH   r   s   & r(   r   r      s     =Wrz"c**Wr   )r   r   r   has_fallbackconditionalrq   )r{   r   r   r   rH   r   r   listanyallTcastListr8   r   condition_levelr_   )	r1   rq   rr   rt   r   r   r   r   newdeps	   &&&&     r(   rd   (IntrospectionInterpreter.func_dependency   sZ   $----  &$$V,Aw$l 34444!V+::j$/**Y+'4((iG3>g>333>g>>>"nG3=W=333=W=====ffQVVC['2G(T<$89999(%,,q0 	fX%r+   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )r#   rq   r   rr   rs   
kwargs_rawru   targetclasszT.Type[BuildTarget]r7   /T.Union[IntrospectionBuildTarget, UnknownValue]r&   )r'   s   "r(   r)   rO      sB     G G G1A GOd G  tG G  L{ Gr+   c                		   \        V\        4      '       g   Q hV P                  V4      pV'       d   \        V^ ,          \        4      '       g   \	        4       # V^ ,          pV.p. pRV9   d%   V\
        P                  ! VR,          4      ,          pRV9   d%   V\
        P                  ! VR,          4      ,          pV P                  VR4      p\        VP                  P                  4      p	VP                  P                  R,          p
VP                  P                  P                  4        FA  w  r\        V\        4      '       g   Q hVP                  R8X  g   K0  V
P                  V4       KC  	  V	\        VP                  P                  4      8X  g   Q hRpVP                  P                  P                  4        F8  w  r\        V\        4      '       g   Q hVP                  R8X  g   K0  Ve   Q hTpK:  	  VP                  4        UUu/ uF"  w  rWP                   9   g   K  VR9   g   K   WbK$  	  pppVP                  4        UUu/ uF*  w  rT\        V\"        4      '       d   VP                  MTbK,  	  pppVP                  4        UUu/ uF%  w  r\        V\$        \        34      '       d   K#  WbK'  	  ppp\&        P(                  ! RV4      pVP+                  R	R
4      '       d   \,        P.                  M\,        P0                  p. p. pRVR&   V! WPP2                  V P4                  VVRVV P6                  V P8                  P:                  V,          V4
      pVP=                  4        VP>                  pRV9   d'   \        VR,          \        4      '       d
   VR,          pVPA                  4       pRV9   d'   \        VR,          \        4      '       d
   VR,          p\C        VPE                  4       VPF                  PI                  4       VPK                  4       VPM                  4       \N        PP                  PS                  \N        PP                  PU                  V PV                  V P2                  \6        PX                  4      4      V P2                  VVVP[                  4       V
VVVR7      pV ;P\                  V.,          un.        V# u uppi u uppi u uppi )r   sourcesextra_filesTr   Ninstallbuild_by_defaultr   r   F_allow_no_sources)r   machineidtypename
defined_inrI   r   	installedoutputssource_nodesr   rt   rq   >   r   name_prefixbuild_alwaysr   )/r{   r   r   rH   r   r   listifyr   r   rr   r|   rt   itemsr   r~   r}   known_kwargsr   r   r   r   r   r   r   r   rI   rL   r   r   r   process_compilers_later   should_installr   get_basenamer   get_lower_case_nameget_idget_typenamer   r   normpathr   rG   build_filenameget_outputsr^   )r1   rq   rr   r   r   r   srcqueueextra_queuert   oldlenr   kr   extraf_nodes_kwargs_reducedkwargs_reducedr   objectsempty_sourcestargetr   r   
new_targets   &&&&&                  r(   build_target%IntrospectionInterpreter.build_target   s   $----  &:d1gs33>!Aw&*V 
"((I)>??HJ&8++J},EFFK$$Z6TYY(()yy**2.II$$**,DAa((((ww)###A& - TYY001111II$$**,DAa((((ww-'#+++ 	 - -3LLN  eNDAaC[C[>[4`a  fd  ad414N  eZiZoZoZqrZqRVRS1A~)F)FaggAMZqr,;,A,A,Cs,CDA:VWZbdpYqKr414,Cs =O-3ZZ%-H-Hm))mN`N`!#').2*+T;;m]acj!--t}}/F/F{/SUce%%'8>8O8O'Jv>P7QS_,`,`%&89/5/D/D/F:fY.?#N#NY'G-$$&&&::<}}((*ww''T5E5Et{{T_TnTn(op;;-&&(%$
 	$K erss$   S(S1S0S S 8S c               (    V ^8  d   QhRRRRRRRR/# 	r#   rq   r   rr   rs   rt   ru   r7   r   r&   )r'   s   "r(   r)   rO     s/      ( 2B La   gV r+   c                	.   V P                   P                  P                  \        R V P                  R7      4      pVR8X  d   V P                  WV\        4      # VR8X  d   V P                  WV\        4      # VR8X  d   V P                  WV\        4      # R# )default_libraryrL   sharedstaticbothN)r   optstoreget_value_forr   rL   r  r
   r   )r1   rq   rr   rt   r  s   &&&& r(   build_library&IntrospectionInterpreter.build_library  s    --00>>yIZgkgvgv?wxh&$$TGG($$TGG&$$TGGr+   c               (    V ^8  d   QhRRRRRRRR/# r
  r&   )r'   s   "r(   r)   rO   '  s5     A AH A4D ANc A  iX Ar+   c                	0    V P                  WV\        4      # r-   )r  r   r1   rq   rr   rt   s   &&&&r(   re   (IntrospectionInterpreter.func_executable'  s      VZ@@r+   c               (    V ^8  d   QhRRRRRRRR/# r
  r&   )r'   s   "r(   r)   rO   *  5     D DH D4D DNc D  iX Dr+   c                	0    V P                  WV\        4      # r-   )r  r   r  s   &&&&r(   rk   (IntrospectionInterpreter.func_static_lib*        V]CCr+   c               (    V ^8  d   QhRRRRRRRR/# r
  r&   )r'   s   "r(   r)   rO   -  r  r+   c                	0    V P                  WV\        4      # r-   r  r
   r  s   &&&&r(   ri   (IntrospectionInterpreter.func_shared_lib-  r  r+   c               (    V ^8  d   QhRRRRRRRR/# r
  r&   )r'   s   "r(   r)   rO   0  s5     D D( D2B DLa D  gV Dr+   c                	0    V P                  WV\        4      # r-   r   r  s   &&&&r(   rl   &IntrospectionInterpreter.func_both_lib0  r  r+   c               (    V ^8  d   QhRRRRRRRR/# r
  r&   )r'   s   "r(   r)   rO   3  s5     C Cx C7G CQf C  l[ Cr+   c                	0    V P                  WV\        4      # r-   )r  r   r  s   &&&&r(   rj   +IntrospectionInterpreter.func_shared_module3  s      V\BBr+   c               (    V ^8  d   QhRRRRRRRR/# r
  r&   )r'   s   "r(   r)   rO   6  s/     6 6 61A 6K` 6  fU 6r+   c                	&    V P                  WV4      # r-   )r  r  s   &&&&r(   rg   %IntrospectionInterpreter.func_library6  s    !!$f55r+   c               (    V ^8  d   QhRRRRRRRR/# r
  r&   )r'   s   "r(   r)   rO   9  s/     : :X :-= :G\ :  bQ :r+   c                	0    V P                  WV\        4      # r-   )r  r	   r  s   &&&&r(   rf   !IntrospectionInterpreter.func_jar9  s      VS99r+   c               (    V ^8  d   QhRRRRRRRR/# r
  r&   )r'   s   "r(   r)   rO   <  s/      h 6F Pe   kZ r+   c                	   R V9  d   R# VP                  R 4      p\        V\        4      '       d   VP                  pVR8X  d   V P	                  WV\
        4      # VR8X  d   V P	                  WV\        4      # VR8X  d   V P	                  WV\        4      # VR8X  d   V P	                  WV\        4      # VR8X  d   V P                  WV4      # VR8X  d   V P	                  WV\        4      # R# )target_typeNrS   rW   rY   rZ   rU   rT   )
popr{   r   r~   r  r   r
   r   r  r	   )r1   rq   rr   rt   r0  s   &&&& r(   func_build_target*IntrospectionInterpreter.func_build_target<  s    &jj/k>22%++K,&$$TDD,,$$TGG,,$$TGG,,$$TGGI%%%d&99E!$$T==r+   c                   V ^8  d   QhRR/# )r#   r7   r8   r&   )r'   s   "r(   r)   rO   P  s     % %t %r+   c                	     V P                   R 8g  # )rD   r  r1   s   &r(   r   &IntrospectionInterpreter.is_subprojectP  s    "$$r+   c                   V ^8  d   QhRR/# )r#   r7   rv   r&   )r'   s   "r(   r)   rO   S  s       r+   c                	    V P                  4        V P                  4        V P                  4        V P                  4        R # r-   )load_root_meson_filesanity_check_astparse_projectrunr6  s   &r(   r    IntrospectionInterpreter.analyzeS  s/    !!#
r+   c                   V ^8  d   QhRR/# )r#   r7   r%   r&   )r'   s   "r(   r)   rO   Y  s       r+   c                   V P                   P                  '       g   R# V P                   P                  ^ ,          p\        V\        4      '       g   R# VP                  P
                  P                  4        FY  w  r#\        V\        4      '       g   Q R4       hVP                  R8X  g   K5  \        V\        4      '       g   KM  VP                  u # 	  R# )zFast path to extract subproject_dir kwarg.
This is faster than self.parse_project() which also initialize options
and also calls parse_project() on every subproject.
Nr   rM   )
astlinesr{   r   rr   rt   r   r   r~   r   )r1   rV   kwvals   &   r(   extract_subproject_dir/IntrospectionInterpreter.extract_subproject_dirY  s    
 xx~~~((..#'<00||**002GBb&))5:5)xx++c:..99$ 3 r+   c               $    V ^8  d   QhRRRRRR/# )r#   rt   ru   include_unknown_argsr8   r7   r&   )r'   s   "r(   r)   rO   l  s$     	  	 %: 	 RV 	 cx 	 r+   c                	
   / pVP                  4        Fl  w  rE\        V\        4      '       d   V P                  V4      pVe   WcV&   K6  K8  \        V\        \
        \        \        34      '       g   V'       g   Kh  WSV&   Kn  	  V# r-   )r   r{   r   node_to_runtime_valuerH   r8   intfloat)r1   rt   rH  flattened_kwargsr   rD  resolveds   &&&    r(   r   'IntrospectionInterpreter.flatten_kwargsl  sv    HC#x((55c:',4S) (C#tS%!899=Q=Q(+% '  r+   )rJ   r$   r_   r]   r`   rM   r^   )F)r=   r>   r?   r@   r   r2   rh   r   rc   r   rd   r  r  re   rk   ri   rl   rj   rg   rf   r2  r   r   rE  r   rA   __classcell__)rn   s   @r(   rC   rC   ,   s     =A/3*4R.'4<@ B3Cj	X,:GRADDDC6:(%&	  	 r+   rC   )rS   rT   rU   rW   rX   rY   rZ   )+
__future__r   r   typingr   rD   r   r   r   r   buildr   r	   r
   r   r   r   interpreterbaser   r   r   r   r   mparserr   r   r   r   r   r   interpreterr   r   r   TYPE_CHECKINGr   r   r   visitorr   BUILD_TARGET_FUNCTIONSr!   rC   r&   r+   r(   <module>rZ     si    # 	  8 8 O O + H H $  [ [ Z Z???@*# 
	 	I ~ I r+   