+
    UBi                      ^ RI Ht ^ RIt^ RIt^ RIt^RIHt ^RIHt ^RIHt ^RIH	t	 ^RIH
t
 ^RIHt ^R	IHt ^R
IHt ^RIHt ^RIHtHt ^RIHt ^RIHtHtHtHtHtHtHtHtHtHtHtHtHt ^RIHt ^RI H!t!H"t" ^RI	H#t# ^RI$H%t% ^RI&H't'H(t(H)t)H*t*H+t+ ^RI&H,t,H-t-H.t.H/t/H0t0H1t1 ^RI&H2t2H3t3H4t4H5t5 ^RI&H6t6H7t7 ^RI&H8t8H9t9H:t:H;t; ^RI&H<t<H=t= ^RI&H>t> ^RI?H@t@HAtAHBtBHCtCHDtD ^RIEHFtF ^RIHGtH ^RIHItJ ^RIKHLtL ^RIMHNtN ^R IGHOtOHPtPHQtQHRtRHStSHTtT ^R!IUHVtVHWtWHXtXHYtYHZtZH[t[H\t\H]t]H^t^H_t_H`t`HataHbtbHctcHdtdHeteHftfHgtgHhthHitiHjtjHktkHltlHmtmHntnHotoHptpHqtqHrtrHstsHtttHutuHvtvHwtwHxtxHytyHztzH{t{H|t|H}t}H~t~HtHtHtHtHtHt ^R"IHt ^ R#IHt ^ R$IHt ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt]EP.                  '       EdY   ^ R%IHt ^R&IHt ^R'IHt ^R(IHt ^R)IHtHtHt ^R*IHt ^R+I Ht ^R,IUHt ]EPL                  ]EPN                  ]EPP                  ]EPR                  ]EPT                  ]EPV                  3,          t]EPL                  ]EPZ                  ]EPP                  ]EPR                  ]EPV                  ]EP\                  3,          t]EPL                  ]EPN                  ]EPP                  ]EP\                  3,          t]EPb                  ]EPL                  ]!]EPd                  ]3,          .]3,          t]EPj                  ! R-]PR.7      tR/ R0 lt ! R1 R24      t]EPr                  ]EPt                  ,          ]EPv                  R30,
           U u0 uF  q  R42kK	  	  up ,          ]EPv                  R30,
           U u0 uF  q  R52kK	  	  up ,          t]]EPz                  ,          ]EP|                  ,          R60,          t ! R7 R8]4      tR9t ! R: R;](]4      tR# u up i u up i )<    )annotationsN)mparser)environment)coredata)dependencies)mlog)options)build)	compilers)	envconfig)wrapWrapMode)mesonlib)EnvironmentVariablesExecutableSerialisationMesonBugExceptionMesonExceptionHoldableObjectFileModeMachineChoiceis_parent_pathlistifyextract_as_listhas_path_seppath_is_in_root
PerMachine)	OptionKey)ExternalProgramNonExistingExternalProgram)
Dependency)DepFile)ContainerTypeInfoInterpreterBase	KwargInfotyped_kwargstyped_pos_args)	noPosargsnoKwargspermittedKwargsnoArgsFlatteningnoSecondLevelHolderResolvingunholder_return)InterpreterExceptionInvalidArgumentsInvalidCodeSubdirDoneRequest)DisablerdisablerIfNotFound)
FeatureNewFeatureDeprecatedFeatureBrokenFeatureNewKwargs)ObjectHolderContextManagerObject)stringifyUserArguments)ExtensionModuleModuleObjectMutableModuleObjectNewExtensionModuleNotFoundExtensionModule)optname_regex)interpreterobjects)compiler)	MesonMain)DependencyFallbacksHolder)SubprojectHolderTest
RunProcessextract_required_kwargextract_search_dirsNullSubprojectInterpreter)/BUILD_TARGET_KWS
COMMAND_KWCT_BUILD_ALWAYSCT_BUILD_ALWAYS_STALECT_BUILD_BY_DEFAULTCT_INPUT_KWCT_INSTALL_DIR_KWEXCLUSIVE_EXECUTABLE_KWSEXECUTABLE_KWSJAR_KWSLIBRARY_KWSMULTI_OUTPUT_KW	OUTPUT_KWDEFAULT_OPTIONSDEPENDENCIES_KWDEPENDENCY_KWS
DEPENDS_KWDEPEND_FILES_KW
DEPFILE_KWDISABLER_KWD_MODULE_VERSIONS_KWENV_KWENV_METHOD_KWENV_SEPARATOR_KWINCLUDE_DIRECTORIES
INSTALL_KWINSTALL_DIR_KWINSTALL_MODE_KWINSTALL_FOLLOW_SYMLINKSLINK_WITH_KWLINK_WHOLE_KWCT_INSTALL_TAG_KWINSTALL_TAG_KWLANGUAGE_KW	NATIVE_KWPRESERVE_PATH_KWREQUIRED_KWSHARED_LIB_KWSSHARED_MOD_KWSDEPENDENCY_SOURCES_KWSOURCES_VARARGSSTATIC_LIB_KWSVARIABLES_KWTEST_KWSNoneTypein_set_validatorenv_convertor_with_method)
primitives)Path)Enum)Literalcargo)kwargs)Backend)InterpreterObjectTYPE_varTYPE_kwargs)
OptionDict)OverrideProgram)SourcesVarargsType	TestClass)boundc                    V ^8  d   QhRRRR/# )   valuez)T.Union[T.List, str, mesonlib.File, None]returnT.Optional[str] )formats   "G/usr/lib/python3.14/site-packages/mesonbuild/interpreter/interpreter.py__annotate__r      s      &O Tc     c                    \        V \        4      '       d<   \        V 4      ^8w  d   R# \        V ^ ,          \        P                  4      '       g   R# R# )   z,when passed as array must have a length of 1z(when passed as array must contain a FileN)
isinstancelistlenr   File)r   s   &r   _project_version_validatorr      s8    %u:?AE!Hhmm44=r   c                  :    ] tR t^tR R ltR R ltR tR tRtR# )	Summaryc                    V ^8  d   QhRRRR/# )r   project_namestrproject_versionr   )r   s   "r   r   Summary.__annotate__   s      S 3 r   c                	j    Wn         W n        \        P                  ! \        4      V n        ^ V n        R# )r   N)r   r   collectionsdefaultdictdictsectionsmax_key_len)selfr   r   s   &&&r   __init__Summary.__init__   s(    (.#//5r   c               0    V ^8  d   QhRRRRRRRRR	RR
R/# )r   sectionr   valuesT.Dict[str, T.Any]bool_ynboollist_sepr   
subprojectr   Noner   )r   s   "r   r   r      s:     = =3 =0B =T =-=;>=CG=r   c                	   VP                  4        EFX  w  rgW`P                  V,          9   d   \        R V: RV: 24      h. p\        V4       EF  p	\	        V	\
        4      '       dk   V'       dF   TP                  V	'       d   \        P                  ! R4      M\        P                  ! R4      4       Kg  TP                  V	'       d   RMR4       K  \	        V	\        \        34      '       d   VP                  \        V	4      4       K  \	        V	\        \        34      '       d;   \        P                  ! RRV4       VP                  V	P!                  4       4       EK  \	        V	\"        4      '       dA   \        P                  ! RR	V4       VP                  \        P                  ! R4      4       EKh  \	        V	\$        P&                  4      '       d;   \        P                  ! R
RV4       VP                  V	P)                  4       4       EK  Rp
\        V
P+                  W4      4      h	  W3V P                  V,          V&   \-        V P.                  \1        V4      4      V n        EK[  	  R# )zSummary section z already have key YESNOtruefalsez)dependency or external program in summary0.57.0zdisabler in summary0.64.0zfeature option in summary0.58.0ztSummary value in section {!r}, key {!r}, must be string, integer, boolean, dependency, disabler, or external programN)itemsr   r-   r   r   r   appendr   greenredr   intr   r    r3   
single_usesummary_valuer1   r	   
UserOptionprintable_valuer   maxr   r   )r   r   r   r   r   r   kvformatted_valuesims   &&&&&&     r   add_sectionSummary.add_section   s   LLNDAMM'***-=g[HZ[\Z_+`aa!QZa&&(//Q

50ADHHUYN[(//!IC:..$++CF3OZ#@AA))*UW_akl$++AOO,=>8,,))*?:V$++DHHTN;7#5#566))*ExQ[\$++A,=,=,?@ OA.qxx/CDD'  ( *:(DDMM'"1%"4#3#3SV<D3 #r   c                	   \         P                  ! V P                  \         P                  ! V P                  4      4       V P
                  P                  4        F  w  r\         P                  ! R 4       V'       d,   \         P                  ! R\         P                  ! V4      4       VP                  4        F  w  r4Vw  rEV P                  \        V4      ,
          pV'       d   RMR p\         P                  ! RVRV,          ,           R,           VR7       V P                  ^,           pV P                  WEV4       K  	  K  	  \         P                  ! R 4       R# )  :)endNz   )r   logr   normal_cyanr   r   r   boldr   r   
dump_value)	r   r   r   r   r   r   paddingr   indents	   &        r   dumpSummary.dump   s    ""D$4$4T5I5I$JK#}}224OGHHRLdii01**SV3cB!cGm"3c"9sC))A-V4 '	  5 	r   c                	   R RV,          ,           pVf   \         P                  ! VRVRR/  R# \        P                  ! 4       P                  p. pTpVP                  4       V,           pV Fh  p\        V4      \        V4      ,           p	V'       d*   Wy,           V8  d   \         P                  ! VRVRV/  Tp. pVP                  V4       Wy,          pKj  	  \         P                  ! VRVRR/  R# )
r   Nsepdisplay_timestampFr   )r   r   shutilget_terminal_sizecolumnsrstripr   r   )
r   arrr   r   	lines_sepmax_lenlineline_lenr   v_lens
   &&&&      r   r   Summary.dump_value   s    3<'	HHcByBEB**,44OO%	1	AFS]*E(72$<H<)<!KKNH  	$>H>>r   )r   r   r   r   N)	__name__
__module____qualname____firstlineno__r   r   r   r   __static_attributes__r   r   r   r   r      s    =:?r   r   java_shared_args_static_argstarget_typec                  "    ] tR t^tRt^t^tRtR# )InterpreterRuleRelaxationzDefines specific relaxations of the Meson rules.

This is intended to be used for automatically converted
projects (CMake subprojects, build system mixing) that
generate a Meson AST via introspection, etc.
r   N)r   r   r   r   __doc__ALLOW_BUILD_DIR_FILE_REFERENCESCARGO_SUBDIRr   r   r   r   r   r      s     '(#Lr   r   zYou should add the boolean check kwarg to the run_command call.
         It currently defaults to false,
         but it will default to true in meson 2.0.
         See also: https://github.com/mesonbuild/meson/issues/9300c                  &  a  ] tR t^tERR 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 ]4      ]! R ]P,                  ! R!R"7      ]P,                  ! R!R"7      4      ]R# R$ l4       4       4       t]! R%]R&7      ]R' R( l4       4       t]]! R)]! R*]! ]]4      R+. R,7      ] P,                  ! R-R.R/7      ]!P,                  ! R.R"7      ]! R0]! ]]4      R+. R,7      ]"] ]#]$P,                  ! R1R"7      ]%]! R2]! ]]&PN                  ]34      R+. R3R47      ](P,                  ! R5]R6/R77      ]! R8]])34      ]! R9]! ]]*PV                  4      R+. R:R47      4      R; R< l4       4       t,]! R=]-].R>7      ]R? R@ l4       4       t.RA t/]! RB]*P`                  ]1]2Pf                  ]&PN                  ]3]*P`                  ]1]2Pf                  ]&PN                  ]3R&7      ]! RB]! RC]-])3RDR"7      ]! RE]-R+RDRF7      ]4P,                  ! RGR"7      4      RH RI l4       4       t5ERRK RL llt6RM t7]! RN]4      ]! RN]]8P,                  ! ROR"7      ]! R8]! ]]4      . R+RP7      4      RQ RR l4       4       t9ERRS RT llt:ERRU RV llt;RW RX lt<ERRY RZ llt=R[ R\ lt>R] R^ lt?]! R_]4      ]R` Ra l4       4       t@]! Rb]A.R>7      ]Rc Rd l4       4       tBRe Rf ltC]! Rg]]R&7      ]! Rg]8]! Rh]])34      ]! R8]]&PN                  ])]3Ri]DRj Rk7      ]! Rl]! ]]4      ])3RR+RP7      ]! Rm]! ]]4      . R+R:Rn7      ]! Ro]RRp7      4      Rq Rr l4       4       tE]! Rs]! Rt]-])3R5R"7      ]4      ]! Rs]R&7      Ru Rv l4       4       tFRw Rx ltG]H]Ry Rz l4       4       tIR{ tJ]H]K! R|R}4      ]! R|]]A3]L.R>7      ]! R|]! R~]RRp7      ]! R]-RJRp7      ]! R]])3R5R"7      4      R R l4       4       4       4       tMR R ltNR R ltO]H]K! RR4      ]R 4       4       4       tP]H]R 4       4       tQ]H]K! RR4      ]R 4       4       4       tR]]R 4       4       tS]! R]4      ]! R]! R]R]T! RR04      R7      4      R R l4       4       tUR R ltVR R ltWR R ltXR R ltYR R ltZR R lt[R R lt\R R lt]R R lt^]_P                  RR+R+RRRR3R R lltaR R ltbR R ltcR R ltd]! R]]&PN                  3^R7      ]! R]P,                  ! RR"7      ]e]]! R]! ]]4      . R+R}Rn7      ]! R8]! ]]4      . R+RRn7      ]! R]RRRF7      ]8P,                  ! RR"7      4      ]R R l4       4       4       tf]! R]^R7      ]! R.]gO5!  ]R R l4       4       4       th]K! RR4      ]]R 4       4       4       tiR R ltj]k! ]*P                  4      ]! R]]mR&7      ]! R.]nO5RR+/ R R l4       4       4       to]k! ]*P                  4      ]! R]]mR&7      ]! R.]qO5RR+/ R R l4       4       4       tr]k! ]*P                  4      ]! R]]mR&7      ]! R.]tO5RR+/ R R l4       4       4       tu]k! ]v4      ]! R]]mR&7      ]! R.]wO5RR+/ ]xR R l4       4       4       4       ty]K! RR4      ]k! ]*P                  4      ]! R]]mR&7      ]! R.]{O5RR+/ R R l4       4       4       4       t|]k! ]v4      ]! R]]mR&7      ]! R.]wO5RR+/ ]xR R l4       4       4       4       t}]k! ]*P                  4      ]! R]]]&PN                  ]*P                  ]*EP                   ]*EP                  ]*PV                  ]*EP                  3R&7      ]! R.]O5RR+/ R R l4       4       4       t]! RRRR.4      ]k! ]4      ]! R]]mR&7      ]! R.]O5RR+/ R R l4       4       4       4       t]]! R]P,                  ! R+R7      ]]! R]! ]]]*EP                  ]*P                  ]*EP                   ]1]&PN                  34      R+. R,7      ]! R]])34      ]! R]RRp7      ]P,                  ! RR"7      ]P,                  ! RR"7      ]P,                  ! RR"7      ]P,                  ! RR"7      4
      R R l4       4       t]K! RR14      ]]R R l4       4       4       tR R lt]! R].R>7      ]! R]]]]]]]]]]]]4P,                  ! RR"7      ]]P,                  ! RDR"7      ]! R]-RJR!RF7      ]! RE]-RJRp7      ]! R]-RJRRF7      ]! R]RRRF7      4      R R l4       4       t]! R]4      ]! R]]]4P,                  ! RR"7      4      R R l4       4       t]K! RR4      ]! R]]*EP:                  ]*EP<                  3^R7      ]R R l4       4       4       t]! R]*P`                  ]134      ]! R]! R]! ]]RJR7      R+R+R7      ]! R]! ]]RJR7      R+R+R7      ]]]! RE]-RJER RF7      4      ER ER l4       4       t]! ER]]*P`                  ]*EPB                  ]1]&PN                  ]*P                  ]*EP                   34      ]! ER.]O5!  ER ER l4       4       t]! ER]]*P`                  ]*EPB                  ]1]&PN                  ]*P                  ]*EP                   34      ]! ER.]O]! ER]-R+Rp7      N5!  ER ER	 l4       4       tER
 ER lt]3ER ER lltER ER lt]! ER]]&PN                  3R&7      ]! ER]]! ER]])34      ]P,                  ! RDR"7      ]]4      ER ER l4       4       t]! ER]]&PN                  3R&7      ]! ER]! ER]])3ERR"7      ]P,                  ! RDR"7      ]4      ER ER l4       4       t]K! ERER4      ]! ER]]! ER]])3R.R"7      4      ER ER l4       4       t]K! ERER4      ]! ER ]4      ]! ER]! ER!]R+R7      ]! ER"]R+R7      ]4      ER# ER$ l4       4       4       t]K! ER%R.4      ]! ER%]L]A.R>7      ]]HER& ER' l4       4       4       4       t]! ER]4      ]! ER]! ER(]! ]]L4      ER) R. R+ER*7      4      ER+ ER, l4       4       tER- ER. lt]! ER/]]&PN                  3R&7      ]! ER/]! ER0]! ]]]&PN                  34      R+. R,7      ]! ER1]! ]]4      . R+R1Rn7      ]P,                  ! ROR"7      ]P,                  ! ERR"7      ]]P,                  ! ER2R"7      ]4      ER3 ER4 l4       4       tERER5 ER6 llt]! ER7]4      ]! ER7]! ER"]R+R7      ]! ER8]-RJRp7      ]! ER9]! ]]4      . R+ER:ER; ER<7      ]! ER=]! ]]4      . R+ER:ER> ER<7      ]P,                  ! ROR"7      ]P,                  ! ERR"7      ]4      ER? ER@ l4       4       tERA ERB lt]]! ERC]P,                  ! RR"7      ]P,                  ! ERDR"7      ]P,                  ! ERR"7      ]! RE]-RJERERF7      ]! R]! ]]*P`                  ]1]2Pf                  ]&PN                  ]3RJR7      ])3R+ERF7      ]! ERG]! ]A]]]-34      ]*EPn                  ])34      ]! ERH]-RJRDRF7      ]! ERI]ERJRDRF7      ]! ERK]ERLR1]T! 0 ERm4      ERM7      ]! ERN]! ]]&PN                  ]34      R+. R,7      ]! ERO]-])3RGR"7      ]! ER"]]-3RERP R7      ]]! ERQ]ERRRDERSR/]T! 0 ERm4      ERT7      ]! ERU]])3RRRF7      ]! R]RRRF7      4      ERV ERW l4       4       tERERY ERZ llt]! ERX]R&7      ]! ERX]! ER[]-RJRp7      4      ER\ ER] l4       4       tERER^ ER_ llt]! ER`]4      ]! ER`]! ERa]! ]]]134      R+. R,7      ]! ERb]-RJRp7      ]! ERc]^Rp7      ]! ERd]! ]]4      R+. RR47      ]! ERe]-RJRRF7      ]44      ERf ERg l4       4       t]! ERh]R&7      ]! ERh]e]4      ERi ERj l4       4       t]! ERk]R&7      ]! ERh]e]4      ERl ERm l4       4       t]! ERn]R&7      ]! ERn]e]4      ERo ERp l4       4       t]! ERq]R&7      ]! ERh]e]4      ERr ERs l4       4       t]K! ERtR4      ]! ERt]EP                  R&7      ]! ERt]e]4      ERu ERv l4       4       4       tERw ERx ltERy ERz ltER{ ER| ltER} ER~ lt]H]! ER]]]A3.R>7      ]! ER]]P,                  ! R.R"7      4      ER ER l4       4       4       t]! ER]^R7      ]ER ER l4       4       tER V 3ER lltER ER ltER ER ltER t]EP                  ERER ER ll4       t]EP                  ERER ER ll4       t]EP                  ER ER l4       t]EP                  ERER ER ll4       t]EP                  ERER ER ll4       tERER ER llt]ER ER l4       tER ER lt]K! RR14      ER ER l4       tER ER ltER ER ltER ER lt]ERER ER ll4       t]EP                  ER ER l4       t]EP                  ER ER l4       t]EP                  ER ER l4       t]EP                  ER ER l4       t]EP                  ER ER l4       tER ER ltER tER tER tER ER lt]! ER]]L4      ]]H]xER ER l4       4       4       4       t]! ER]]3]L.R>7      ]]H]ER ER l4       4       4       4       t]! ER]4      ]ER ER l4       4       t]K! ERER4      ]! ER]4      ]ER ER l4       4       4       t]ER ER l4       t]K! ERR4      ]! ER]L4      ]ER ER l4       4       4       t]]K! ERER4      ]! ER]]].R>7      ER ER l4       4       4       tERtV ;t# (  InterpreterNr   subprojectsc               D    V ^8  d   QhRRRRRRRRRRR	R
RRRRRRRRRR/# )r   _buildzbuild.BuildbackendzT.Optional[Backend]r   r   subdirsubproject_dirinvoker_method_default_optionsT.Optional[OptionDict]ast!T.Optional[mparser.CodeBlockNode]relaxations,T.Optional[T.Set[InterpreterRuleRelaxation]]user_defined_optionsz%T.Optional[coredata.SharedCMDOptions]r~   T.Optional[cargo.Interpreter]r   r   r   )r   s   "r   r   Interpreter.__annotate__   s{     -" -"#-" --"  	-"
 -" !$-" 1G-" 7-" J-" 'L-" 5-" -"r   c                	"  < \         SV `  VP                  P                  4       WCWQP                  4       R V n        Wn        W n        Wn        / V n        / V n	        T;'       g    \        4       V n        Vf   V P                  4        MWpn        V P                  4        V P                  P!                  R\#        V P
                  V 4      /4       \        4       V n        RV n        RV n        / V n        . V n        / V n        V'       d    \1        V\2        4      '       g   Q hW`n        M/ V n        / V n        V P9                  4        V P;                  4        Wn        \?        / / 4      V n         V PC                  4        V PE                  4        R# )r   NmesonF)#superr   r   get_source_diractive_projectnamer
   r   r~   summarymodulessetr  load_root_meson_filer   sanity_check_astbuiltinupdaterB   validated_cacheproject_args_frozenglobal_args_frozenr   subproject_stackconfigure_file_outputsr   r   r   project_default_optionsbuild_func_dictbuild_holder_mapr  r   r   parse_project_redetect_machines)r   r   r   r   r   r   r   r   r  r  r~   	__class__s   &&&&&&&&&&&r   r   Interpreter.__init__   sL    	++::<fR`btbtu"$

/18:&//#%;%%'HWi

D&ABC+.5#( "':<-/8:#)<dCCCC2P/24D/35$$8!HRSUWYHZ!r   c                   V ^8  d   QhRR/# )r   r   z-T.Tuple[T.Tuple[object], T.Dict[str, object]]r   )r   s   "r   r   r  &  s     = =#P =r   c                	    \        R 4      h)zThis class is unpicklable)r   r   s   &r   __getnewargs_ex__Interpreter.__getnewargs_ex__&  s     ;<<r   c                   V ^8  d   QhRR/# r   r   r   r   )r   s   "r   r   r  )  s     	F 	F4 	Fr   c                	   \         P                  P                  V P                  V P                  R 4      p\         P                  P                  V4      '       g   R# ^RIHp  VP                  ! V P                  V P                  V P                  4      V n        R#   TP                   d'   p\        P                  ! RT 2RR7        Rp?R# Rp?ii ; i)z
Cargo.lockNr}   zcannot load Cargo.lock: F)fatal)ospathjoinsource_rootr   isfiler   r~   r   r   r   TomlImplementationMissingr   warning)r   
cargo_lockr~   es   &   r   load_root_cargo_lock_file%Interpreter.load_root_cargo_lock_file)  s    WW\\$"2"2DKKN
ww~~j))	F**4+;+;T[[$J]J]^DJ.. 	FLL3A37uEE	Fs   $7B C.CCc                   V ^8  d   QhRR/# r%  r   )r   s   "r   r   r  4  s     L LD Lr   c                	>   V P                   P                  P                  P                  4       p\        P
                  ! V P                  P                  P                   4      Vn         VP                  4       V P                   P                  n        V P                   P                  P                  P                   P                  f   Q hV P                   P                  P                  P                  P                  f   Q hV P                   P                  P                  P                  P                  f   Q h\        P                  ! V P                   P                  P                  P                   V 4      V P                  R&   \        P                  ! V P                   P                  P                  P                  V 4      V P                  R&   \        P                  ! V P                   P                  P                  P                  V 4      V P                  R&   R # )Nbuild_machinehost_machinetarget_machine)r
   r   machinesmiss_defaultingr   detect_machine_infor   r   default_missingcpuhosttargetOBJMachineHolderr  )r   r8  s   & r   r  Interpreter._redetect_machines4  sz    ::))22BBD"66t}}7N7N7T7TU*2*B*B*D

'zz%%..4488DDDzz%%..3377CCCzz%%..5599EEE djj44==CCTJ 	_% djj44==BBDI 	^$ djj44==DDdK 	%&r   c                   V ^8  d   QhRR/# r%  r   )r   s   "r   r   r  F  s     @H @H @Hr   c                	*   V P                   P                  / R V P                  bRV P                  bRV P                  bRV P
                  bRV P                  bRV P                  bRV P                  bRV P                  bRV P                  bR	V P                  bR
V P                  bRV P                  bRV P                  bRV P                  bRV P                   bRV P"                  bRV P$                  b/ RV P&                  bRV P(                  bRV P*                  bRV P,                  bRV P.                  bRV P0                  bRV P2                  bRV P4                  bRV P6                  bRV P8                  bRV P:                  bRV P<                  bRV P>                  bRV P@                  bRV PB                  bR V PD                  bR!V PF                  bC/ R"V PH                  bR#V PJ                  bR$V PL                  bR%V PN                  bR&V PP                  bR'V PR                  bR(V PT                  bR)V PV                  bR*V PX                  bR+V PZ                  bR,V P\                  bR-V P^                  bR.V P`                  bR/V Pb                  bR0V Pd                  bR1V Pf                  bR2V Ph                  bCR3V Pj                  R4V Pl                  R5V Pn                  R6V Pp                  R7V Pr                  R8V Pt                  R9V Pv                  R:V Px                  /C4       R;\z        P|                  9   d(   V P                   P                  R<V P~                  /4       R=\z        P|                  9   d*   V P                   P                  R>V P                  /4       R?# R?# )@add_global_argumentsadd_global_link_argumentsadd_languagesadd_project_argumentsadd_project_dependenciesadd_project_link_argumentsadd_test_setupalias_targetassert	benchmarkboth_librariesbuild_targetconfiguration_dataconfigure_filecustom_targetdebugdeclare_dependency
dependencydisablerr   error
executablefilesfind_program	generator
get_optionget_variableimportinclude_directoriesinstall_datainstall_emptydirinstall_headersinstall_maninstall_subdirinstall_symlinkis_disableris_variablejar
join_pathslibrarymessageoptionprojectrangerun_command
run_targetset_variablestructured_sourcesr   shared_libraryshared_modulestatic_librarysubdir_doner   r  testunset_variablevcs_tagr.  MESON_UNIT_TEST	exceptionMESON_RUNNING_IN_PROJECT_TESTSexpect_errorN)Afuncsr  func_add_global_argumentsfunc_add_global_link_argumentsfunc_add_languagesfunc_add_project_argumentsfunc_add_project_dependenciesfunc_add_project_link_argumentsfunc_add_test_setupfunc_alias_targetfunc_assertfunc_benchmarkfunc_both_libfunc_build_targetfunc_configuration_datafunc_configure_filefunc_custom_target
func_debugfunc_declare_dependencyfunc_dependencyfunc_disablerfunc_environment
func_errorfunc_executable
func_filesfunc_find_programfunc_generatorfunc_get_optionfunc_get_variablefunc_importfunc_include_directoriesfunc_install_datafunc_install_emptydirfunc_install_headersfunc_install_manfunc_install_subdirfunc_install_symlinkfunc_is_disablerfunc_is_variablefunc_jarfunc_join_pathsfunc_libraryfunc_messagefunc_optionfunc_project
func_rangefunc_run_commandfunc_run_targetfunc_set_variablefunc_structured_sourcesfunc_subdirfunc_shared_libfunc_shared_modulefunc_static_libfunc_subdir_donefunc_subprojectfunc_summary	func_testfunc_unset_variablefunc_vcs_tagfunc_warningr(  environfunc_exceptionfunc_expect_errorr!  s   &r   r  Interpreter.build_func_dictF  s~   

 ;143Q3Q ;68[8[;*D,C,C; 3D4S4S; 6t7Y7Y	;
 89]9]; ,T-E-E; *4+A+A; $T%5%5; '(;(;; ,T-?-?; *4+A+A; 01M1M; ,T-E-E; +D,C,C; #DOO;  01M1M!;" ()=)=#;$ &t'9'9%;& )$*?*?';( #DOO);* ()=)=+;, #DOO-;. *4+A+A/;0 '(;(;1;2 ()=)=3;4 *4+A+A5;6 $T%5%57;8 1$2O2O9;: *4+A+A;;< .t/I/I=;> -d.G.G?;@ )$*?*?A;B ,T-E-EC;D -d.G.GE;F )$*?*?G;H )$*?*?I;J !$--K;L ()=)=M;N %d&7&7O;P %d&7&7Q;R $T%5%5S;T %d&7&7U;V #DOOW;X )$*?*?Y;Z ()=)=[;\ *4+A+A];^ 01M1M_;` $T%5%5a;b ,T-A-Ac;d +D,C,Ce;f ,T-A-A($*?*?')=)=$d&7&7!4>>+T-E-E$d&7&7$d&7&7u; ;	x 

*JJ{D,?,?@A+rzz9JJ~t/E/EFG :r   c                   V ^8  d   QhRR/# r%  r   )r   s   "r   r   r    s     @ @$ @r   c                	   V P                   P                  / \        \        P                  b\
        \        P                  b\        \        P                  b\        \        P                  b\        \        P                  b\        P                  \        P                  b\        P                  \        P                   b\        P"                  \        P$                  b\&        P(                  \*        P,                  b\.        P0                  \*        P2                  b\.        P4                  \*        P6                  b\.        P8                  \*        P:                  b\.        P<                  \*        P>                  b\.        P@                  \*        PB                  b\.        PD                  \*        PF                  b\.        PH                  \*        PJ                  b\.        PL                  \*        PN                  b/ \.        PP                  \*        PR                  b\.        PT                  \*        PV                  b\.        PX                  \*        PZ                  b\.        P\                  \*        P^                  b\.        P`                  \*        Pb                  b\.        Pd                  \*        Pf                  b\.        Ph                  \*        Pj                  b\.        Pl                  \*        Pn                  b\.        Pp                  \*        Pr                  b\.        Pt                  \*        Pv                  b\.        Px                  \*        Pz                  b\.        P|                  \*        P~                  b\.        P                  \*        P                  b\&        P                  \*        P                  b\.        P                  \*        P                  b\        P                  \        P                  b\        P                  \*        P                  bC\        P                  \*        P                  \        P                  \*        P                  \.        P                  \*        P                  /C4        V P                  P                  \        P                  \*        P                  \        \*        P                  \        P                  \        P                  \        \*        P                  \        \*        P                  /4       R# )z
Build a mapping of `HoldableObject` types to their corresponding
`ObjectHolder`s. This mapping is used in `InterpreterBase` to automatically
holderify all returned values from methods and functions.
N)`
holder_mapr  r   P_OBJArrayHolderr   
DictHolderr   IntegerHolderr   BooleanHolderr   StringHolderMesonVersionStringMesonVersionStringHolderDependencyVariableStringDependencyVariableStringHolderOptionStringOptionStringHolderr   r   r?  
FileHolderr
   SharedLibrarySharedLibraryHolderStaticLibraryStaticLibraryHolderBothLibrariesBothLibrariesHolderSharedModuleSharedModuleHolder
ExecutableExecutableHolderJar	JarHolderCustomTargetCustomTargetHolderCustomTargetIndexCustomTargetIndexHolder	GeneratorGeneratorHolderGeneratedListGeneratedListHolderExtractedObjectsGeneratedObjectsHolderOverrideExecutableOverrideExecutableHolder	RunTargetRunTargetHolderAliasTargetAliasTargetHolderHeadersHeadersHolderMan	ManHolderEmptyDirEmptyDirHolderData
DataHolderSymlinkDataSymlinkDataHolder
InstallDirInstallDirHolderIncludeDirsIncludeDirsHolderr   EnvironmentVariablesHolderStructuredSourcesStructuredSourcesHolderr   	RunResultcompilerOBJTryRunResultHolderr   ExternalLibraryExternalLibraryHolderr	   UserFeatureOptionFeatureOptionHolderr   MachineInfor@  ConfigurationDataConfigurationDataHolderbound_holder_mapr    DependencyHolderr   ExternalProgramHolderCompilerCompilerHolderr;   ModuleObjectHolderr<   MutableModuleObjectHolderr!  s   &r   r  Interpreter.build_holder_map  s    	 ) 
%##) 
 %"") 
 $$	) 

 %%%) 
 ##) 
 $$e&D&D) 
 **E,P,P) 
  8 8) 
 MM3>>) 
 !8!8) 
 !8!8) 
 !8!8) 
   6 6!) 
" c22#) 
$ IIs}}%) 
&  6 6') 
( ##S%@%@)) 
* OOS00+) 
, !8!8-) 
. ""C$>$>/) 
0 $$c&B&B1) 
2 OOS003) 
4 s445) 
6 MM3,,7) 
8 IIs}}9) 
: NNC..;) 
< JJ=) 
> s44?) 
@ c22A) 
B s44C) 
D ))3+I+IE) 
F ##S%@%@G) 
H !?!?I) 
J ((#*C*CK) 
L %%s'>'>!!3#4#4##S%@%@Q) 
 )	V	 	$$##S%9%9S66 : :#00!>!>&
 	r   c               $    V ^8  d   QhRRRRRR/# )r   	held_typezT.Type[mesonlib.HoldableObject]holder_typezT.Type[ObjectHolder]r   r   r   )r   s   "r   r   r    s$     	 	+J 	Ym 	rv 	r   c                >    V P                   P                  W/4       R# )z
Adds one additional mapping to the `holder_map`.

The intended use for this function is in the `initialize` method of
modules to register custom object holders.
N)r  r  )r   r  r  s   &&&r   append_holder_mapInterpreter.append_holder_map  s     	 
 	r   c                    V ^8  d   QhRRRR/# )r   invaluesz2T.List[T.Union[TYPE_var, ExecutableSerialisation]]r   r   r   )r   s   "r   r   r    s      ^ ^+] ^bf ^r   c                	   \        V4      pV EF  p\        V\        4      '       d   \        R 4      h\        V\        P
                  \        P                  \        P                  34      '       d   V P                  VP                  V4       K  \        V\        4      '       d   V P                  V4       K  \        V\        4      '       d9   V P                  Vn        V P                  P                  P                  V4       K  \        V\        P                   4      '       d)   V P                  P"                  P                  V4       EKA  \        V\        P$                  4      '       d)   V P                  P&                  P                  V4       EK  \        V\(        P*                  4      '       d&   V P                  VP,                  ^ ,          4       EK  \        V\        P.                  4      '       d)   V P                  P0                  P                  V4       EK  \        V\2        4      '       d)   V P                  P4                  P                  V4       EKT  \        V\6        \8        \:        \<        \        \        P>                  \@        \        PB                  34      '       d   EK  \        RV: R24      h	  R# )z%Modules must not return ObjectHoldersz(Module returned a value of unknown type .N)"r   r   r7   r-   r
   BuildTargetr  r  
add_targetnamer   process_new_valuesr   r   install_scriptsr   r  datar  symlinksr   InternalDependencysourcesr  install_dirsrE   testsr   r   r   r1   r  r   r  )r   r  r   s   && r   r  Interpreter.process_new_values  s   8$A!\***+RSS!e//1C1CU__UVV*At$$''*A677#

**11!4Auzz**

&&q)Au0011

##**1-A|>>?? ''		!5Au//00

''..q1At$$

  ''*AS$,H[H[ /1H1H J K K*-UVWUZZ[+\]]5 r   c               $    V ^8  d   QhRRRRRR/# )r   pvr   locationmparser.BaseNoder   r   r   )r   s   "r   r   r    s"     > >s >6F >4 >r   c                	    \         P                  ! \        P                  V4      '       g-   \        P
                  ! R \        P                   RV 2VR7      hV\         P                  V P                  &   R# )zMeson version is z but project requires nodeN)	r   version_comparer   stable_versionr-   	from_nodeversionproject_meson_versionsr   )r   r$  r%  s   &&&r   handle_meson_version Interpreter.handle_meson_version  se    ''(?(?DD&003DXEUEUDVVlmolp1q  yA  B  B;=''8r   c                   V ^8  d   QhRR/# r%  r   )r   s   "r   r   r    s     > >t >r   c                	
   V P                   P                  '       g   R # V P                   P                  ^ ,          p\        V\        P                  4      '       g   R # VP
                  P                  P                  4        F}  w  r#\        V\        P                  4      '       g   Q R4       hVP                  R8X  g   K?  \        V\        P                  4      '       g   Ka  V P                  VP                  V4       K  	  R # )Nfor mypymeson_version)r   linesr   r   FunctionNodeargsr   r   IdNoder   
StringNoder/  )r   rm  kwvals   &   r   handle_meson_version_from_ast)Interpreter.handle_meson_version_from_ast  s    xx~~~((..#'7#7#788||**002GBb'..11=:=1xx?*c7#5#566--cii= 3r   c                   V ^8  d   QhRR/# )r   r   T.List[str]r   )r   s   "r   r   r    s     * *[ *r   c                	    V P                   '       d4   V P                  P                  V P                   P                  4       4       \	        V P                  4      # N)r~   build_def_filesr  get_build_def_filesr   r!  s   &r   rC  Interpreter.get_build_def_files  s=    :::  ''

(F(F(HID(())r   c                    V ^8  d   QhRRRR/# )r   fzmesonlib.FileOrStringr   r   r   )r   s   "r   r   r    s     !( !($9 !(d !(r   c                	>   \        V\        P                  4      '       dC   VP                  '       d   R # \        P
                  P                  VP                  4       4      pM\        P
                  P                  V4      '       d   VP                  R4      '       g   \        V P                  P                  4       4      p\        V P                  P                  4       4      p \        V4      P                  4       pY4P0                  9   d   R # Y$P0                  9   d   TP3                  T4      p\5        T4      pMR # WP6                  9  d   V P6                  P9                  V4       R # R #   \         d    \        T4      pTP!                  4       p\#        TR4      '       dt   TP$                  \         P&                  ,          ^ 8w  dN   TP(                  \         P*                  8X  d/   TP,                  P                  4       TP.                  ,          p ELh i ; i)Nz/dev/st_file_attributes)r   r   r   is_builtr(  r)  normpathrelative_namer,  
startswithrz   r   r
  get_build_dirresolveOSErrorstathasattrrH  FILE_ATTRIBUTE_REPARSE_POINTst_reparse_tagIO_REPARSE_TAG_APPEXECLINKparentr  parentsrelative_tor   rB  add)r   rF  srcdirbuilddirf_ss   &&    r   add_build_def_fileInterpreter.add_build_def_file  s}   
 a''zzz  !23AWW^^Aq||G'<'<$**99;<FD,,::<=H!W__& ::%#^^F+BA(((  $$Q' )%  
!WGGIA344,,t/P/PPTUU((D,K,KK **,rww6B
s   &E/ /B(HHc                   V ^8  d   QhRR/# )r   r   zT.Dict[str, InterpreterObject]r   )r   s   "r   r   r  .  s      = r   c                	    V P                   # rA  	variablesr!  s   &r   get_variablesInterpreter.get_variables.  s    ~~r   c                   V ^8  d   QhRR/# r%  r   )r   s   "r   r   r  1  s     9 9t 9r   c           	     	   \         P                  .pV P                  P                  4       '       d    VP	                  \         P
                  4       V EF  pV P                  P                  P                  V,          pV P                  P                  V,          P                  4        F  p \        P                  ! VP                  V4      4      p\        T4      ^8X  d/   \         P"                  ! RRT P$                  T P&                  R7       RT/pTR,           p\)        Y.4      pTP+                  T4       TP-                  TRR7      p	YP                  P.                  T,          T&   K  	  EK   	  R#   \         d     K  i ; i)	r   zstdlib without variable name0.56.0r%  native_stdlibT)force_fallbackN)r   HOSTr   is_cross_buildr   BUILDr
   r   
propertiesr   keysr   stringlistify
get_stdlibKeyErrorr   r3   r   r   current_noderC   set_fallbacklookupstdlibs)
r   machine_choicesfor_machinepropsldir   r  dfdeps
   &         r   check_stdlibsInterpreter.check_stdlibs1  s9   (--.==''))""=#6#67*KJJ**55kBE]],,[9>>@!//0@0@0CDB r7a<))*H(TXTcTcnrnn  AAI;@W9}.tV<#iiti<58

"";/2 A +
   s   -%E77FFr^  0.59.0)sincec               (    V ^8  d   QhRRRRRRRR/# )	r   r)  r&  r7  T.Tuple[str]r   z'kwtypes.FuncImportModule'r   zET.Union[ExtensionModule, NewExtensionModule, NotFoundExtensionModule]r   )r   s   "r   r   r  L  s4     I I 0 I I6I <AIr   c           
     		   V^ ,          p\        W0P                  4      w  rVpV'       d   \        V4      # VP                  R4      '       d   \	        RV R24      hRpVP                  R4      '       d`   VP                  R4      '       d1   \
        P                  ! RV RVP                  RR^4       R	2VR
7       V\        R4      ^,           R p	RpMTp	WP                  9   d   V P                  V	,          #  RV	 2p
\        P                  ! V
4      pVP                  V 4      p\        V\        \        34      '       g   Q R4       hV P                   P                  P#                  V	4       VP0                  P2                  '       dP   \4        P6                  ! RVP0                  P&                   2VP0                  P2                  V P                  VR
7       VP0                  P8                  '       dP   \:        P6                  ! RVP0                  P&                   2VP0                  P8                  V P                  VR
7       V'       dX   VP0                  P<                  '       g<   VP0                  P>                  f$   \	        RVP0                  P&                   R24      hVP0                  P>                  e   V'       dT   \:        P6                  ! RVP0                  P&                   R2VP0                  P>                  V P                  RVR
7       EM\4        P6                  ! RVP0                  P&                   R2VP0                  P>                  V P                  RVP0                  P>                   R	2VR
7       MVP0                  P<                  '       d   V'       gN   V'       d:   \	        RVP0                  P&                   RVP0                  P&                   24      h\        V	4      pM1\
        P(                  ! RVP0                  P&                   R2VRR7       WP                  V	&   V#   \$         d   pTP&                  X
8w  dX   T'       d   Th\
        P(                  ! RT R24       \*        P,                  ! T4       F  p\
        P.                  ! T4       K  	  T'       d   \	        RT R24      h\        T	4      p Rp?EL_Rp?ii ; i)r   _zModule "z" does not existF	unstable_zImporting unstable modules as "z" instead of "-"rh  unstableNTzmesonbuild.modules.r3  z" exists but failed to import.zmodule zModule z4 has never been unstable, remove "unstable-" prefix.z has been stabilizedz,drop "unstable-" prefix from the module namez as stable modulezeConsider either adding "unstable-" to the module name, or updating the meson required version to ">= z<" has not been stabilized, and must be imported as unstable-zS has no backwards or forwards compatibility and might not exist in future releases.)r%  r'  )z	unstable-r  ) rG   r   r>   rL  r.   r   deprecationreplacer   r  	importlibimport_module
initializer   r:   r=   r
   rX  ImportErrorr  r.  	tracebackformat_exceptionrS  INFOaddedr3   r   
deprecatedr4   r  
stabilized)r   r)  r7  r   modnamedisabledrequiredr  expect_unstablereal_modnamefull_module_pathmodule
ext_moduler0  r   s   &&&&           r   r  Interpreter.func_importE  sE    q' 6v OA*733 c"""XgY6F#GHH 899!!+..  #B7)>ZaZiZijmortuZvYwwx!y*.0"3z?Q#6#78L"O"L<<'<<--	1!4\NC,,-=>F  **40Jj?<N*OPP\R\\PJJ""<0??   !!GJOO,@,@+A"BJOODYDY[_[j[juyz??%%%((7:??3G3G2H)I:??KeKegkgvgv  BF  G:??#;#;#;
@Z@Z@b"WZ__-A-A,BBv#wxx??%%1!,,joo2233GHOO..B!	# %%joo2233DEOO..{  }G  }L  }L  }W  }W  |X  XY  Z!	#
 __%%%"*Xjoo6J6J5K  LH  IS  IX  IX  I]  I]  H^  ,_  `  `4\B
wz';';&<  =P  Q  \`  hm  n%/\"[  	?vv))Gxy0NOP%66q9DJJt$ : &':J'KLL0>J	?s%   9P1 1S<SAS,SSrY  )varargsc               (    V ^8  d   QhRRRRRRRR/# )	r   r)  mparser.FunctionNoder7  T.Tuple[T.List[str]]r   'TYPE_kwargs'r   T.List[mesonlib.File]r   )r   s   "r   r   r    s0     5 53 5;O 5Yf 5  lA 5r   c                	2    V P                  V^ ,          4      # r   )source_strings_to_filesr   r)  r7  r   s   &&&&r   r  Interpreter.func_files  s     ++DG44r   rT  compile_argsT)r   defaultd_import_dirs0.62.0)r  r  	link_argsz0.46.0extra_filesz1.2.0)r   r  r  0.54.0rg  )r  since_valuesr-  objects1.1.0c               (    V ^8  d   QhRRRRRRRR/# )	r   r)  r&  r7  T.List[TYPE_var]r   zkwtypes.FuncDeclareDependencyr   zdependencies.Dependencyr   )r   s   "r   r   r    s,     " ",< "DT "(E"Ja"r   c                	   VR ,          pV P                  VRR7      pVR,          pVR,          pVR,          pV P                  VR,          4      p	V P                  VR,          4      p
VR,          pVR	,          pVR
,          pVR,          pVf   V P                  pVR,          pV P                  VR4      pV P                  P                  p\
        P                  P                  \
        P                  P                  VV P                  4      4      p\
        P                  P                  \
        P                  P                  VV P                  4      4      pVP                  4        F  w  ppV'       g%   \        P                  ! RRV P                  VR7       \
        P                  P                  V4      '       g   KY  V P!                  4       '       g   \#        VV4      '       d   K  \#        VV4      '       g   K  \
        P                  P%                  V4      '       g   K  \&        P(                  ! V4      VV&   K  	  \*        P,                  ! WVWWyV
WMVVV4      pV# )r   0.50.0strings_since	link_with
link_wholer  r  r  r  r  rb  r-  d_module_versionsr  z*empty variable value in declare_dependency1.4.0rh  )extract_incdirsr  r   r   
source_dirr(  r)  abspathr*  r   root_subdirr   r3   r   r   isabsis_subprojectr   isdirr  r  r   r  )r   r)  r7  r   depsincslibs
libs_wholer  r  r  r  r  rb  r-  r  r  rY  r   project_rootr   r   r~  s   &&&&                   r   r  #Interpreter.func_declare_dependency  s   & n%##F(#Ck"L)
#..vi/@A226-3HIn-;'	;'	#?**G"#67,,V_E!!,,fd>Q>Q)RSwwrww||FD<L<L'MNOO%DAq%%&RT[]a]l]lw{|ww}}Q++--^NTU5V5V&|Q77a(($==a@	! & --g\.7zT_.2?PR_.57 
r   rL  )optargsc               (    V ^8  d   QhRRRRRRRR/# )	r   r)  r  r7  zT.Tuple[bool, T.Optional[str]]r   r  r   r   r   )r   s   "r   r   r    s2     D D 4 D<Z D)D.2Dr   c                	$   Vw  rEVf%   \         P                  ! RRV P                  VR7       V'       g\   VfF   ^RIHp V! 4       pVP
                  P                  ^ ,          P                  V4       VP                  p\        RV,           4      hR # )Nz(assert function without message argument0.53.0rh  )
AstPrinterzAssert failed: )
r3   r   r   r   r  r7  	argumentsacceptresultr-   )r   r)  r7  r   r   rk  r  printers   &&&&    r   r  Interpreter.func_assert  s{     ?!!"LhX\XgXgrvw,$,		##A&--g6!..&'87'BCC r   c                	    Ve,   V\        V4      8w  d   \        RV R\        V4       R24      h\        W4       F'  w  rEVf   K  \        WE4      '       d   K  \        R4      h	  R # )Nz	Expected z arguments, got r  zIncorrect argument type.)r   r.   zipr   )r   r7  argcount	arg_typesactualwanteds   &&&&  r   validate_argumentsInterpreter.validate_arguments  sc    3t9$&8*<LSQUYKWX'YZZ!$2NF!!&11*+EFF 3r   ro  check0.47.0capture)r  r  r  c               (    V ^8  d   QhRRRRRRRR/# )	r   r)  r&  r7  T.Tuple[T.Union[build.Executable, ExternalProgram, compilers.Compiler, mesonlib.File, str], T.List[T.Union[build.Executable, ExternalProgram, compilers.Compiler, mesonlib.File, str]]]r   'kwtypes.RunCommand'r   rF   r   )r   s   "r   r   r    s4     3 3%5 3 C3 "63 ;E3r   c                	$    V P                  W#4      # rA  )run_command_implr  s   &&&&r   r  Interpreter.func_run_command  s     $$T22r   Fc               (    V ^8  d   QhRRRRRRRR/# )	r   r7  r  r   r  in_builddirr   r   rF   r   )r   s   "r   r   r    sB     IQ IQ CIQ "6IQ '+	IQ 8B	IQr   c                		   Vw  rEVR ,          pVR,          pV P                   P                  4       pV P                   P                  4       p	VR,          p
V
f   \        P                  ! \
        RR7       Rp
Rp. p\        V\        P                  4      '       d~   V P                  P                  P                  4        F  w  rWN8X  g   K  Tp M 	  \        RVP                  4       : R24      h\        VP                  WP                  4       4      4      h\        V\        4      '       d7   VP                  4       '       g   \        R	VP!                  4       : R
24      hEM\        V\"        P$                  4      '       dW   VP'                  4       pVP)                  4       p\        VRR7      pVP                  4       '       g   \        RV: R
24      hTpM\        V\*        P,                  4      '       d   VP/                  W4      p\0        P2                  P5                  WP6                  4      p\        VRV.R7      pVP                  4       '       g   \        RV: R
24      hTpV EF  p\        V\8        4      '       d   VP;                  V4       K-  \        V\*        P,                  4      '       d#   VP;                  VP/                  W4      4       Ko  \        V\        4      '       d"   VP;                  VP=                  4       4       K  \        V\"        P$                  4      '       d   \>        P@                  ! RRV PB                  V PD                  R7       \        VP)                  4       RR7      pVP                  4       '       g   \        RV: R
24      hVP;                  VP=                  4       4       EKW  \        VP                  VPF                  VP                  4       4      4      h	  V PI                  VP=                  4       4       V Fn  p\0        P2                  PK                  V4      '       g6   \0        P2                  P5                  V'       d   T	MTV P6                  V4      pV PI                  V4       Kp  	  \M        WLWxWP6                  V P                   PO                  4       R.,           W:VR7
      # )r  envr  TonceFzoProgram {!r} was overridden with the compiled executable {!r} and therefore cannot be used during configurationzProgram zK is a compiled executable and therefore cannot be used during configurationzcommand z not found or not executablesilent)r  search_dirszProgram or command z7Compiler object as a variadic argument to `run_command`0.61.0rh  
introspect)r  r  r  )(r   r
  rM  r   r.  implicit_check_false_warningr   r
   r  find_overridesr   r-   descriptionr   r   foundget_namer   r  get_exe_argsget_exer   r   absolute_pathr(  r)  r*  r   r   r   get_pathr3   r   r   rt  r  r]  r  rF   get_build_command)r   r7  r   r  cmdcargsr  r  rY  rZ  r  overridden_msgexpanded_argsr  exeprognameprog
search_diras   &&&&               r   r  Interpreter.run_command_impl  s   
 
#Um!!002##113w=LL5DAE* &(c5++,,!ZZ66<<>	:#H ?
 +Xcoo6G5J  KV  ,W  X  X&~'<'<XGX'YZZc?++99;;*Xclln5GGc+dee Y//00,,.M++-C"3t4D::<<*XcW<X+YZZC#x}}--''9fkk:J"3t*ND::<<*-@Gc+deeCA!S!!$$Q'Ax}}--$$Q__V%FGA//$$QZZ\2Ay1122%%&_aikokzkz  FJ  FW  FW  X&qyy{4@zz||.#@\/]^^$$T]]_5*>+@+@IZ+[\\ $ 	/A77==##GGLL[fdkkSTU##A& 
 #c8[[**<<>,O&1Q 	Qr   c                	    \        R 4      h)zYTried to call option() in build description file. All options must be in the option file.)r-   )r   nodesr7  r   s   &&&&r   r  Interpreter.func_optionG  s    "#~r   r   z0.38.0)r  r   c               (    V ^8  d   QhRRRRRRRR/# )	r   r  r&  r7  r  r   zkwtypes.Subprojectr   rD   r   )r   s   "r   r   r  Q  s+     / /%5 /\ /Se /jz /r   c           
     	v    R VR ,          RVR,          RVR,          RRR. /pV P                  V^ ,          V4      # )r  default_optionsr-  r	   Ncmake_options)do_subproject)r   r  r7  r   r:  s   &&&& r   r  Interpreter.func_subprojectJ  sM     z*v&78vi(tR$
 !!$q'2..r   c               (    V ^8  d   QhRRRRRRRR/# )	r   	subp_namer   disabled_featurer   r{  zT.Optional[Exception]r   rD   r   )r   s   "r   r   r  [  s*      S O '<HXr   c                	    \        \        4       \        P                  P	                  V P
                  V4      W#R 7      pW@P                  V&   V# ))r  r{  )rD   rI   r(  r)  r*  r   r   )r   r  r  r{  subs   &&&& r   disabled_subprojectInterpreter.disabled_subproject[  sA    8:BGGLLI\I\^g<h0@W&)#
r   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )r   r  r   r   kwtypes.DoSubprojectforce_methodzT.Optional[wrap.Method]forced_optionsr   r   rD   r   )r   s   "r   r   r  b  s:     \ \s \4H \Xo \&<\HX\r   c           	     	   VR 8X  d    \        W P                  4      w  rVpV'       dV   \        P                  ! R\        P                  ! V4      RR\        P                  ! V4      R4       V P                  WR7      # VR,          pV'       dR   VP                  4        F7  w  rWP                  P                  P                  V	P                  VR7      &   K9  	  / VCVCpVR8X  d   \        R	4      hV^ ,          R
8X  d   \        R4      hRV9   d   \        R4      h\        P                  P                  V4      '       d   \        R4      h\        V4      '       d#   \        P                   ! RV P"                  R7       WP$                  9   d5   V P$                  V.,           pRP'                  V4      p\)        RV R
24      hWP*                  9   d   V P*                  V,          pV'       d0   VP-                  4       '       g   \        RVP.                   R24      hVR,          '       df   V P0                  P*                  V,          pVR,          pVR8X  g$   \2        P4                  ! W4      ^ ,          '       g   \        RV RV RV R24      hV# V P6                  P8                  p VP;                  W4      w  pp\        PF                  ! \        P                  P'                  T P0                  P6                  PI                  4       T4      R!R"7       R!T n%        RP'                  T P$                  T.,           4      pR#\        P                  ! T4      .pTR$8w  d    TR%\        P                  ! T4      .,          p\        P                  ! . TOR&N5R'R(/  R$T PL                  R)T PN                  R*T PP                  /p TT,          ! TTY4      #   \<        P>                   d   pTe   TPA                  4       R,           pMRpT\        P                  ! T4      R\        PB                  ! R4      .pT'       gH   \        P                  ! T4       \        P                  ! . TORN5!   T P                  TTR 7      u Rp?# \        PD                  ! T!   ThRp?ii ; i  \(         d    h \R         d   pT'       g   \        PT                  ! T4      ;_uu_ 4        \        PV                  ! T\        PX                  ! R+4      R,7       RRR4       M  + '       g   i     M; i\        P                  ! R-\        P                  ! T4      R\        PB                  ! R4      R4       T P                  TTR 7      u Rp?# ThRp?ii ; i).
sub_static
Subprojectr   skipped: featurer  )r  r  r   r   z"Subproject name must not be empty.r  z-Subproject name must not start with a period...z5Subproject name must not contain a ".." path segment.z-Subproject name must not be an absolute path.zJSubproject name has a path separator. This may cause unexpected behaviour.rh   => z"Recursive include of subprojects: zSubproject "z" required but not found.r-  	undefinedSubproject  version is  but 
 required.Nz subprojectzis buildable:r   z(disabling))r{  Texist_okz
Executing subprojectr  methodr   nestedFcmaker~   z
Exception:)prefixz
Subproject)-rG   r   r   r   r   r  r   r   optstoreaugmentsevolver-   r(  r)  r  r   r.  rt  r  r*  r/   r   r  r   r
   r   version_compare_manyr   wrap_resolverrN  r   WrapExceptiontitler   rW  makedirsrM  r  _do_subproject_meson_do_subproject_cmake_do_subproject_cargo	Exceptionr)  r{  yellow)r   r  r   r  r  r  r  featurer  r   r   	fullstackincpathr   r$  r  rr   r(  r0  r+  msgstackr   methods_maps   &&&&&                    r   r  Interpreter.do_subprojectb  s   $&<V__&U#GHH\499Y#7>PRVR[R[\cRdfpq++I+PP !23
 &,,. ST&&//I0NO / DC?CO?&'KLLQ<3&'VWW9&'^__77==##&'VWW	""LLe"&"3"35-----;Ikk),G B7)1MNN((()))4J
 0 0 2 2*\*:K:K9LLe+fggi  ZZ++I6	*$H,I,I",UVW,X,X.YK|TVSWW\]c\ddn/opp**	YYy?NFF 	BGGLL!7!7!E!E!GP[_`"&..)<=%tyy'78W(DIIf-..A(!(T(%( T..T..T..J
 		v&y&/RR= !! 	'%++-=%499Y/$((4.QC-#-}-//	Q/GGJJG	@  	 	[[++ NN1T[[-FG ,+++ 6):OTXXVZ^]jk//	Q/GGG	so   +O R  R'AR;AR<RRR V5V6&V-T		VT"AV9V?VVc               $    V ^8  d   QhRRRRRR/# )r   r   r   r   zmparser.CodeBlockNoder   r   r   )r   s   "r   r   r    s"     , , ,*? ,D ,r   c                	   ^RI HpHp V! RR7      pVP                  V! 4       4       VP                  V4       VP	                  4        \
        P                  P                  V P                  P                  P                  4       VR4      p\        VRRR7      ;_uu_ 4       pVP                  VP                  4       RRR4       \        P                  ! R	V4       \        P                   ! V4       R#   + '       g   i     L?; i)
r   )AstIndentationGeneratorr  T)update_ast_line_nosmeson.buildwutf-8encodingNzGenerated Meson AST:)r   rC  r  r  post_processr(  r)  r*  r
   r   rM  openwriter  r   r   cmd_ci_include)r   r   r   rC  r  r  meson_filenamerF  s   &&&     r   	_save_astInterpreter._save_ast  s    =6

*,-

7djj&<&<&J&J&LfVcd.#88AGGGNN# 9'8N+ 98s   "C55D	c               <    V ^8  d   QhRRRRRRRRRR	R
RRRRRRR/	# )r   r  r   r   r  r   r   r  r   r  rB  T.Optional[T.List[str]]r  r  r~   r  r   rD   r   )r   s   "r   r   r    sb     1+ 1+c 1+3 1+.81+%91+ #D1+ /F	1+
 +W1+ %B1+ N^1+r   c	                	(   \         P                  ! V4      ;_uu_ 4        V'       d   V P                  W%4       V P                  P	                  4       p	\        WP                  WV P                  W5VV P                  VR 7
      p
V P                  V
n	        V P                  V
n
        V P                  V
n        V P                  V
n        V P                  V
n        V P                  V.,           V
n        V P                  p\         P                   ! 4       ;_uu_ 4        V
P#                  4        \         P$                  ! 4       pRRR4       \         P&                  ! R\         P(                  ! V4      R4       RRR4       \         P&                  ! 4        VR,          '       dU   X
P*                  pVR,          pVR8X  g$   \,        P.                  ! W4      ^ ,          '       g   \1        RV RV RV R	24      hXV n        V P                  P3                  X
P                  4       \5        WXV P                  R
7      V P                  V&   V'       d   V P6                  P3                  V4       V P6                  P3                  V
P9                  4       4       V P                  P;                  V
P                  4       V
P*                  V P                  P                  V&   V P                  V,          #   + '       g   i     EL; i  + '       g   i     EL; i))r   r  r  r~   Nr  z	finished.r-  r!  r"  r#  r$  r%  )warnings	callstack)r   r)  rO  r
   copyr   r   r   r  r   r  r  r  r  r  r  nested_warningsrunget_warning_countr   r   r   r   r/  r-   r  rD   rB  rC  merge)r   r  r   r  r   r   rB  r  r~   	new_buildsubicurrent_activesubi_warningsr$  r  s   &&&&&&&&&      r   r4   Interpreter._do_subproject_meson  sI    [[##v+

)Iy,,	4K^K^.[484M4M%*,D  $//D<<DL"ooDO$($9$9D!<<DL$($9$9YK$GD!!44N%%''
 $ 6 6 8 ( HH\499Y#7E- $0 	
)%%BI&F[ (E(Eb(QRS(T(T*[<PRtSXY_X``j+kll"0 0 01&6tmAEAVAV'X#   ''8##D$<$<$>?

$,0,@,@

y)	**/ (''' $##s$   C;L &K,	 4L ,K=7	L  L	c          
     ,    V ^8  d   QhRRRRRRRRRR	/# 
r   r  r   r   r  r   r   r  r   rD   r   )r   s   "r   r   r     s2      c 3 .8%9>Nr   c                	   ^RI Hp \        P                  ! V4      ;_uu_ 4        ^RIHp VP                  R4      ;'       g    V! 4       pVP                  R. 4      VP                  ,           pV! \        V4      V P                  P                  V P                  4      p	V	P                  V4       V	P                  4        V	P                  VP                  4      p
T P!                  YTYJV	P"                   Uu. uF  p\%        V4      NK  	  up\&        P(                  0R7      pWn        RRR4       V# u upi   + '       g   i     X# ; i)r   )CMakeInterpreter)CMakeSubprojectOptionsr	   r  )r  N)r*  rc  r   r)  modules.cmakerd  getr  rz   r
   r   r   
initialiseanalysepretend_to_be_mesontarget_optionsr4  bs_filesr   r   r   cm_interpreter)r   r  r   r  r   rc  rd  kw_optsr  cm_intr   rF  r  s   &&&&&        r   r5   Interpreter._do_subproject_cmake   s    	-[[##>jj+GG/E/GG"JJ;g>S>SSM%d6lDJJ4J4JDLLYFm,NN ,,W-C-CDC..%+__5_SV_51QQ!	 / F %+!% $&  6 $#& s   CD98D4D94D99E
	c          
     ,    V ^8  d   QhRRRRRRRRRR	/# ra  r   )r   s   "r   r   r    s2     ! !c !3 !.8!%9!>N!r   c                	   ^RI Hp \        P                  ! RRV P                  V P
                  R7       \        P                  ! RRV P
                  R7       V P                  R.R\        P                  4       \        P                  ! V4      ;_uu_ 4         V P                  ;'       g(    VP                  ! V P                  W P                  4      pTP#                  T4      pT P%                  YY4T\&        P(                  0TR7      uuR
R
R
4       #   TP                   d   p\!        R	T: 24      hR
p?ii ; i  + '       g   i     R
# ; i)r   r}   zCargo subproject1.3.0rh  zZCargo subproject is an experimental feature and has no backwards compatibility guarantees.T)r  r%  rustzFailed to load Cargo.lock: N)r  r~   )r   r~   r3   r   r   rt  r   r.  rF  r   rl  r)  r   r   r   r-  r   	interpretr4  r   r   )	r   r  r   r  r   r~   	cargo_intr0  r   s	   &&&&&    r   r6   Interpreter._do_subproject_cargo  s    	0'4??UYUfUfgq):):	<F8T=+=+=>[[##J JJjj%*;*;D<L<LfViVi*j	 %%f-C,,?C6CCD - ! $# 22 J$'B1%%HIIJ $##s0   D=;D5D=D:&D55D::D==E	r\  c               (    V ^8  d   QhRRRRRRRR/# )	r   r)  r&  r7  r  r   r   r   z'T.Union[options.UserOption, 'TYPE_var']r   )r   s   "r   r   r  /  s+     + +$4 +L + ++0W+r   c                	x   V^ ,          pRV9   d   \        R4      h\        P                  ! VP                  R^R7      R,          4      e   \        RV: 24      h \        P
                  P                  V4      P                  V P                  R7      pV P                  P                  P                  V4      w  rg\'        T\        P(                  4      '       d%   \*        P*                  ! T4      pYHn        Yxn        T# TR8X  dG   \'        T\        P0                  4      '       g   Q hT'       g   R# RP3                  \5        T4      4      # \'        T\6        4      '       d   \8        P:                  ! TRT R24      # T#   \         d    T P                  P                  P                  X4      '       dF   \        P                  TP                  R\        P                   R7      ,          pTP"                  p EL?T P                  '       d   \%        R	T R
T P                   R24      h\%        R	T R24      hi ; i)r   r   zuHaving a colon in option name is forbidden, projects are not allowed to directly access options of other subprojects.r  )maxsplitNzInvalid option name r  )r   machinezOption z does not exist for subproject  does not exist.
b_sanitizenone,{})r-   r?   searchsplitr	   r   from_stringr.  r   r   r,  get_option_and_value_forrs  is_base_optionCOMPILER_BASE_OPTIONSr   rl  r  r   r   r   rV  r  r   UserStringArrayOptionr*  sortedr   r  r  )	r   r)  r7  r   optnameoptkeyoption_objectr   ocopys	   &&&&     r   r  Interpreter.func_get_option-  s    q''>& (G H H cA >r BCO&)=g['IJJ	J&&227;BBdooB^F#'==#9#9#R#RSY#Z M mW%>%>??IIm,E JKL$mW-J-JKKKK
 88F5M**eS!!%%er'"-=>>7  		J}}%%44V<< !( = =fmmW[erewewm>x y%--???(77);Z[_[j[jZkkl)mnn$wwi7G%HII		Js    A F   5H96AH9;H9,H9rP  c               (    V ^8  d   QhRRRRRRRR/# )	r   r)  r&  r7  z'T.Tuple[T.Optional[T.Dict[str, T.Any]]]r   r  r   zbuild.ConfigurationDatar   )r   s   "r   r   r  ^  s,     	7 	7,< 	7Dk 	7(5	7:Q	7r   c                	,   V^ ,          pVes   \         P                  ! RRV P                  VR7       VP                  4        F:  w  rV\	        V\
        \        \        34      '       d   K(  \        RV: RV: R24      h	  \        P                  ! V4      # )r   zconfiguration_data dictionary0.49.0rh  4"configuration_data": initial value dictionary key "$"" must be "str | int | bool", not "r  )r3   r   r   r   r   r   r   r   r.   r
   r  )r   r)  r7  r   initial_valuesr   r   s   &&&&   r   r  #Interpreter.func_configuration_data\  s     a%!!"A8T__gkl&,,.!!c3%566*NqeSwxyw||}~@ @ / &&~66r   c                   V ^8  d   QhRR/# r%  r   )r   s   "r   r   r  i  s     < <T <r   c                	8   V P                   e   R # ^RI Hp \        R4      V P                  P                  9   dP   V P
                  P                  P                  \        R4      4      pVP                  W P                  4      V n         MNV P
                  P                  P                  \        R4      4      pVP                  W P                  4      V n         V P                   f   \        RV R24      hW P                   P                  8w  d   V P                   P                  P                  R4      '       d@   \        P                  ! R\        P                   ! V P                   P                  4      4       V P"                  P$                  '       g&   \'        RV R	V P                   P                   24      hV P
                  P                  P)                  \        R4      V P                   P                  R
R7       V P"                  P+                  V4       R # )N)backends	genvsliter   zUnknown backend "".vsz$Auto detected Visual Studio backend:zBackend changed from z to T)first_invocation)r   r  r   r  cmd_line_optionsr   r,  get_value_forget_genvslite_backendr
   get_backend_from_namer-   r  rL  r   r   r   r   r  r   
set_optioninit_backend_options)r   r  backend_names   &  r   set_backendInterpreter.set_backendi  s   <<#&[!T%>%>%O%OO  ==11??	+@VWL#99,

SDL==11??	)@TUL#99,

SDL<<&):<.'KLL<<,,,||  ++D11?4<<K\K\A]^##444'*?~TRVR^R^RcRcQd(effMM""--i	.BDLLDUDUhl-m--l;r   rm  r4  r!  c                	D    \        V \        4      '       d
   V ^ ,          # T # r  r   r   xs   &r   <lambda>Interpreter.<lambda>  s    
1d(;(;! B Br   )r  	validator	convertorlicenselicense_files)r  r   r  r   )r  c               (    V ^8  d   QhRRRRRRRR/# )	r   r)  r  r7  zT.Tuple[str, T.List[str]]r   z'kwtypes.Project'r   r   r   )r   s   "r   r   r    s2     v! v!!5 v!=V v!`q v!vz v!r   c                	   Vw  rER V9   d   \        RV: R24      hVR,          '       d   V P                  VR,          V4       M0\        P                  ! 4       \        P                  V P
                  &   V P                  4        VR,          V n        V P                  P                  '       g9   V P
                  R8w  Ed0   V P
                  V P                  P                  9  Ed
   V P
                  R8X  d[   V P                  P                  P                  V P                  V P                  P                  V P                  P                   4       MV P                  P                  P#                  V P
                  V P$                  V P                  V P                  P                  V P                  P                   4       V P                  P                  P'                  V P
                  4       V P)                  4       '       g   V P                  P                  P+                  \-        R4      4      pVe   \/        V\0        4      '       g   Q R4       hV P                  P                  P+                  \-        R	4      4      p\/        V\2        4      '       g   Q R4       hT;'       g    VP5                  R
4      p\        P6                  ! V4       V P9                  4        V P)                  4       '       g   W@P:                  n        W@n        VR,          p	V	f   Q R4       h\/        V	\        P@                  4      '       d   \B        PD                  ! RRV P
                  VR7       V PG                  V	4       V	PI                  V P                  PJ                  V P                  PL                  4      p
 \O        V
4      PQ                  RR7      PS                  R4      p\Y        T4      ^8X  d   T^,          R8X  d
   TR,          p\Y        T4      ^8w  d   \W        R4      hT^ ,          T n-        MWn-        V P:                  PZ                  f   V PZ                  V P:                  n-        VR,          f   R.pVR,          '       d   \        R4      hM	VR,          p. pV P]                  VR,          4       FO  pVPI                  V P                  PJ                  V P                  PL                  4      p
VP_                  W34       KQ  	  \:        P`                  ! V PZ                  VWP
                  4      V P:                  Pb                  V&   V P
                  V P:                  Pd                  9   d   \g        R4      hVR,          p\/        V\0        4      '       g   \W        R4      h\h        Pj                  Pm                  V4      '       d   \W        R4      hVP5                  R4      '       d   \W        R4      hRV9   d   \W        R 4      hV P)                  4       '       g   Wn7        V Pn                  V P:                  n7        \h        Pj                  Pq                  V Pr                  V4      pV P)                  4       '       g   \t        Pv                  ! V P                  P                  P+                  \-        R!4      4      4      p\x        Pz                  ! V P                  P}                  4       VV P
                  V4      V P                  n?        MOV P                  P~                  f   Q R4       hV P                  P~                  P                  VV P
                  4       V P                  f   V P                  4        W@P:                  Pd                  V P
                  &   \        P                  ! R"\        P                  ! V4      4       \        P                  ! R#\        P                  ! V PZ                  4      4       V P                  VR$\        P                  4       V P                  VR%\        P                  4       V P)                  4       '       g   V P                  4        R# R#   \T         d    \W        R4      hi ; i)&r   zProject name z must not contain ':'r4  r  r   r   Nr3  vsenvr  r-  zversion from filer   rh  rG  rH  r   zVersion file not found.:r   r   Nz3Version file must contain exactly one line of text.r  unknownr  zDProject `license` name must be specified when `license_files` is setzSecond call to project().r   zSubproject_dir must be a stringz,Subproject_dir must not be an absolute path.r  z,Subproject_dir must not begin with a period.r  z/Subproject_dir must not contain a ".." segment.	wrap_modezProject name:zProject version:TF)Kr.   r/  r   NoProjectVersionr.  r   _load_option_filer  r   r  r   initialized_subprojectsr,  &initialize_from_top_level_project_callr  r  r	   initialize_from_subproject_callr   rX  r  r  r   r   r   r   rL  setup_vsenvr  r
   r   r  r   r3   r   r]  r  r  	build_dirrz   	read_textr  FileNotFoundErrorr-   r   r   r  r   DepManifestdep_manifestprojectsr/   r(  r)  r  r   r*  r   r   r  r   Resolverr
  r0  load_and_merger~   r1  r   r   r   rF  r   rl  rn  r  )r   r)  r7  r   	proj_name
proj_langsr   r  force_vsenvr-  ifnamever_dataproj_licenseproj_license_filesr   	spdirnamesubprojects_dirr  s   &&&&              r   r  Interpreter.func_project  s   " !%	)"]9-?T#UVV /""%%f_&=tD?G?X?X?ZH++DOO< '-.?'@$,,,B1F4??bfbobo  cH  cH  LH"$&&MMdNjNjNRNgNgNxNxNRN^N^NfNfh &&FFtGKGjGjGKGcGcGKG`G`GqGqGKGWGWG_G_	a
 5599$//J!!##
 mm,,::9Y;OPG?j#&>&>J
J>MM**8879KLEeT**6J6*;;7#5#5d#;K  -!!##&/JJ#"+#".J."gx}}--!!"5x[_`##G,**4+;+;+F+F+/+;+;+E+EGFF<1171CII$O 8}!hqkR&7#C=8}!*+`aa#+A;D #* ::%%-)-)=)=DJJ&)$%;Lo&&&'mnn ' "),L--f_.EFA__T%5%5%@%@%)%5%5%?%?AF%%vk2 G .3->->t?S?SUa?QSbSb.d

	*??djj1119:: +,	)S))&'HII77==##&'UVV$$&'UVV9&'XYY!!##"+$($7$7

! '',,t{{I>!!## ,,T]]-C-C-Q-QR[\gRh-ijI-1]]4;K;K;Z;Z;\^moso~o~  AJ  .KD*##11=IzI=**99/4??[::**,/8

DOO,$))I"67#TYYt/C/C%DE:t]-?-?@:um.A.AB!!##  $ % F*+DEEFs   1*a$ $a;rF  ri  c               (    V ^8  d   QhRRRRRRRR/# )	r   r)  r  r7  r  r   z'kwtypes.FuncAddLanguages'r   r   r   )r   s   "r   r   r    s0      '; CW a{   AE r   c           	     	   V^ ,          p\        W0P                  4      w  rVpVR,          pV'       dg   \        V\        P                  R7       FE  p	\
        P                  ! R\
        P                  ! V	4      R\
        P                  ! V4      R4       KG  	  R# Ve"   V P                  WFV P                  V4      4      # \        P                  ! V P                  4      p
\        P                  ! V
R4      '       d   \
        P                  ! RVR	7       V P                  WF\        P                  4      pWP                  VR\        P                   4      ,          pV# )
r   ri  keyCompiler for languager  r  Fr  zXadd_languages is missing native:, assuming languages are wanted for both host and build.rh  )rG   r   r  r   
sort_clinkr   r   r   rF  machine_from_native_kwargr3   get_target_versioncheck_versionr.  r   rl  rn  )r   r)  r7  r   langsr  r  r9  ri  langtvsuccesss   &&&&        r   r  Interpreter.func_add_languages  s    Q&<V__&U#G!u)*>*>?0$))D/CUW[W`W`ahWikuv @%%et7U7UV\7]^^ ..t?B''H55w&*, ((-:L:LMG))%8K8KLLGNr   c               $    V ^8  d   QhRRRRRR/# )r   r7  r  	func_namer   r   r?  r   )r   s   "r   r   r  #  s#     ? ?.> ?3 ?S^ ?r   c                	     V Uu. uF  p\        W0P                  4      NK  	  up# u upi   \         d   p\        T R \        T4       24      hRp?ii ; i)z(): N)r9   r   r.   r   )r   r7  r  r   r0  s   &&&  r   _stringify_user_arguments%Interpreter._stringify_user_arguments#  sS    	?HLM1*1oo>MMM 	?"i[SVH#=>>	?s    , ', , AAAc                   V ^8  d   QhRR/# )r   r)  r&  r   )r   s   "r   r   r  +  s     $ $!1 $r   c                	    \        V4      ^8  d%   \        P                  ! RRV P                  VR7       V P	                  VR4      pV P                  V4       R# )r   z#message with more than one argumentr  rh  rk  N)r   r3   r   r   r  message_implr   r)  r7  r   args_strs   &&&& r   r  Interpreter.func_message)  sL     t9q=!!"GSWSbSbmqr11$	B(#r   c                	^    \         P                  ! \         P                  ! R 4      .VO5!   R# )zMessage:N)r   r   r   )r   r7  s   &&r   r  Interpreter.message_impl1  s    :&..r   r  r  r   r   r   c               (    V ^8  d   QhRRRRRRRR/# )	r   r)  r&  r7  z<T.Tuple[T.Union[str, T.Dict[str, T.Any]], T.Optional[T.Any]]r   'kwtypes.Summary'r   r   r   )r   s   "r   r   r  =  s,     
= 
=!1 
=9u 
=.
=37
=r   c                	&   V^,          f3   \        V^ ,          \        4      '       g   \        R4      hV^ ,          pM:\        V^ ,          \        4      '       g   \        R4      hV^ ,          V^,          /pV P	                  VR,          WC4       R# )r   Nz*Summary first argument must be dictionary.z&Summary first argument must be string.r   )r   r   r-   r   summary_impl)r   r)  r7  r   r   s   &&&& r   r  Interpreter.func_summary4  sw     7?d1gt,,*+WXX!WFd1gs++*+STT1gtAw'F&+V<r   c               $    V ^8  d   QhRRRRRR/# )r   r   r   r   r  r   r   r   )r   s   "r   r   r  I  s'     U UC U9J Ut Ur   c                	8   V P                   V P                  9  d8   \        V P                  V P                  4      V P                  V P                   &   V P                  V P                   ,          P                  WVR ,          VR,          V P                   4       R# )r   r   N)r   r  r   r  r   r   )r   r   r   r   s   &&&&r   r  Interpreter.summary_implI  sj    ??$,,.,3D4K4KTMaMa,bDLL)T__%11VI.z0BDOO	Ur   c                   V ^8  d   QhRR/# r%  r   )r   s   "r   r   r  O  s     -  -  - r   c           	     	   \         P                  ! 4       p\        V P                  P	                  4       4       F  w  r#VP                  4       .pVP                  '       d   VR VP                  : R2.,          pMWVP                  '       d   V\        VP                  4      .,          pM'VP                  ^ 8  d   WCP                   R2.,          pVP                  '       d*   RP                  VP                  4      pVRV R2.,          pWAV&   K  	  V'       d   V P                  RVRRR	R
/4       V P                  '       Ed    \         P                  ! 4       pV P                  P                  '       d   V P                  P                  VR&   V P                  P                  '       d   V P                  P                  VR&   R p\        V P                  P                   P	                  4       VR7      pTP#                  V U	U
u/ uF  w  r\        V	4      V
bK  	  up
p	4       V'       d   V P                  RVRRR	R/4       \$        P&                  ! R4       V P(                  P+                  RR4      p\        V P(                  P	                  4       4       F>  w  rV P                  V,          P                  4       '       g   K.  VP-                  4        K@  	  V'       d   VP-                  4        R# R# u up
p	i )zFeature z	 disabledz	 warningsr   z(from )Subprojectsr   Tr   r   zCross fileszNative filesc                    \        V \        4      '       d
   V ^ ,          p \        V \        4      '       d   V # V P                  # r  )r   tupler   r  )r\  s   &r   compatibility_sort_helper=Interpreter._print_summary.<locals>.compatibility_sort_helperk  s3    a''!Aa%%Hvvr   r  zUser defined optionsFNr   )r   OrderedDictr  r   r   r  r  r{  r   rT  rU  r*  r  r  
cross_filenative_filer  r  r   r   r  popr   )r   all_subprojectsr  subpr   r>  r   r  sorted_optionsr   r   main_summaryr  r  s   &             r   _print_summaryInterpreter._print_summaryO  s`   %113 !1!1!7!7!9:JDZZ\NE$$$HT%:%:$=YGHH#dnn-.."]]O9566~~~DNN3F5'+,,$)D! ; m_($)3!"
 $$$ ,,.F((333(,(A(A(L(L}%((444)-)B)B)N)N~& $D$=$=$N$N$T$T$V\uvNMM@3q619@A!!"8&9eU_aeBfg||''D1"(););)=">I	*0022 #?   As   K9
r.  z0.44.0c                	    \        V4      ^8  d%   \        P                  ! RRV P                  VR7       V P	                  VR4      p\
        P                  ! VRV/  R# )r   z#warning with more than one argumentr  rh  r.  r%  N)r   r3   r   r   r  r   r.  r  s   &&&& r   r  Interpreter.func_warning~  sO     t9q=!!"GSWSbSbmqr11$	Bh..r   c                	    \        V4      ^8  d%   \        P                  ! RRV P                  VR7       V P	                  VR4      p\        RRP                  V4      ,           4      h)r   z!error with more than one argumentr   rh  rW  zProblem encountered: r   )r   r3   r   r   r  r-   r*  r  s   &&&& r   r  Interpreter.func_error  sX     t9q=!!"ExQUQ`Q`kop11$@"#:SXXh=O#OPPr   rS  0.63.0c                	Z    V P                  VR 4      p\        P                  ! R.VO5!   R# )rS  zDebug:N)r  r   rS  r  s   &&&& r   r  Interpreter.func_debug  s'     11$@

8'h'r   c                	    \        R 4      h)zunit test traceback :))RuntimeErrorr  s   &&&&r   r  Interpreter.func_exception  s     344r   r}  howliteralre)r  r  c               (    V ^8  d   QhRRRRRRRR/# )	r   r)  r&  r7  r  r   r   r   r8   r   )r   s   "r   r   r    s1     J J&6 Jl JT_ Jdx Jr   c                	d     ! R  R\         4      pV! V^ ,          VR,          V P                  4      # )c                  4   a  ] tR tRtR V 3R lltR tRtV ;t# )8Interpreter.func_expect_error.<locals>.ExpectErrorObjecti  c               (    V ^8  d   QhRRRRRRRR/# )r   r=  r   r  r   r   r   r   )r   s   "r   r   EInterpreter.func_expect_error.<locals>.ExpectErrorObject.__annotate__  s(      C c s t r   c                	  < \         SV `  V4       \        P                  V n        \
        P                  ! 4       ;\        n        V n        \        V P                  R R4      \        P                  n	        Wn
        W n        R# )colorize_consoleN)r	  r   sysstdout
old_stdoutioStringIO
new_stdoutgetattrr  r=  r  )r   r=  r  r   r  s   &&&&r   r   AInterpreter.func_expect_error.<locals>.ExpectErrorObject.__init__  sT     ,"%**/1{{}<
T_.5dooGY[_.`

+r   c                	R   V P                   \        n        V P                  P	                  4       P                  4        F2  pR V9   d   \        VP                  RR4      4       K'  \        V4       K4  	  Vf   \        R4      h\        V\        P                  4      '       d   \        V4      pV P                  R8X  d   V P                  V8w  g9   V P                  R8X  dE   \        P                   ! V P                  V4      '       g   \        RV P                  : RV: 24      hR	# R# )
zERROR:ERRORzERROR (msbuild proof)Nz+Expecting an error but code block succeededr  r  zExpecting error z	 but got T)r  r  r  r  getvalue
splitlinesprintr  r-   r   r   r   r   r  r=  r  match)r   exc_typeexc_valexc_tbr{  r=  s   &&&&  r   __exit__AInterpreter.func_expect_error.<locals>.ExpectErrorObject.__exit__  s    !__
113>>@A1}aii1HIJa	 A
 ?./\]]gx'>'>??g,CI-$((c/D($((C1H1H25Edhh\QZ[^Za3bcc @r   )r  r=  r  r  )r   r   r   r   r   r(  r   __classcell__r  s   @r   ExpectErrorObjectr    s        r   r,  r  )r8   r   )r   r)  r7  r   r,  s   &&&& r   r  Interpreter.func_expect_error  s,    	  4 	 0 !a&-IIr   c               (    V ^8  d   QhRRRRRRRR/# r   r7  r?  r  r   ry  r   r   r   )r   s   "r   r   r    s)      +  M ^b r   c                	J    V P                  WV4      pV P                  4        V# rA  )add_languages_forr  )r   r7  r  ry  r  s   &&&& r   rF  Interpreter.add_languages  s%    ((E!r   c                    V ^8  d   QhRRRR/# )r   ry  r   r   r   r   )r   s   "r   r   r    s      M d r   c                	:   V P                   P                  P                  P                  R R4      p\	        V\
        4      '       g   \        R4      hV\        P                  8w  d   V'       g   R# V P                   P                  4       '       g   V'       g   R# V# )skip_sanity_checkFz+Option skip_sanity_check must be a boolean.)
r   ro  r=  rf  r   r   r-   r   rl  rm  )r   ry  shoulds   && r   should_skip_sanity_check$Interpreter.should_skip_sanity_check  sr    !!,,11556I5Q&$''&'TUU-,,,V..00r   c               (    V ^8  d   QhRRRRRRRR/# r/  r   )r   s   "r   r   r    s*     ; ;k ;T ;P] ;bf ;r   c                	F   V Uu. uF  qDP                  4       NK  	  pp\        V P                  V,          P                  4       4      pVP	                  V4       R V9   dG   RV9  d@   \
        P                  ! RRV P                  V P                  R7       VP                  R4       RV9   d/   \
        P                  ! RRV P                  V P                  R7       Rp\        V\        P                  R	7       EF  pWpP                  V,          9   d   K  VP                  4       pV P                  P                  V,          P                  V4      p	V	'       g    V P                  V4      p
V
'       d   \         P"                  ! R
RR7       \        P$                  ! V P&                  WsWP                  4      p	V	f   \)        RV R24      h TR8X  d[   \1        T P2                  R4      '       d?   \         P4                  ! RP7                  T4      4       RT P2                  P8                  T&   M&V P                  P;                  WyV P                  4       V\<        P>                  8X  g!   V P&                  PA                  4       '       d   \         P"                  pM\         P4                  pV! V	PC                  4       RVR\         P.                  ! RPE                  V	PG                  4       4      4      V	PI                  4       4       V	PJ                  e   V! V	PC                  4       RVR\         P.                  ! RPE                  V	PJ                  PG                  4       4      4      V	PJ                  PL                  V	PJ                  PN                  4       V PP                  PS                  V	4       WP                  V,          V&   EK  	  V# u upi   \*        P,                   d?    T'       g5   \         P"                  ! R\         P.                  ! T4      RTR4       Rp EK%  h i ; i)valaczAdding Vala language without Cr  rh  nasmzAdding NASM languager   Tr  z8Cross compiler sanity tests disabled via the cross file.r  zTried to use unknown language "r  r  zfor thezmachine not found.Fcudaallow_thin_archivesznadded cuda as language, disabling thin archives for {}, since nvcc/nvlink cannot handle thin archives nativelyzcompiler for thezmachine:r   zlinker for the)*lowerr  r   rp  r  r3   r   r   rt  r   r  r  get_lower_case_namer   rf  r7  r   r   detect_compiler_forr   r.   r   r   r   rQ  r   rS  r   r?  process_compiler_optionsr   rl  rm  get_display_languager*  get_exelistget_version_stringlinkeridr-  r
   ensure_static_linker)r   r7  r  ry  r  r  r  r  machine_namecompr5  
logger_funs   &&&&        r   r1  Interpreter.add_languages_for  sF   #'(4a	4(DNN;/4467T U?s%/!!"BHdoohlhyhyzKKU?!!"8(DOO^b^o^op4Y%9%9::D~~k22&::<L==**;7;;DAD(,(E(Ek(R%(![bfg$889I9I4^o  rA  rA  BD|.1PQUPVVX/YZZ $ 6>gdll<Q&R&RJJ   P   W   W  Xc   d  eDIDLL44[A 66t4??Sm000D4D4D4S4S4U4U!XX
!ZZ
t0024FV`yy$*:*:*<!=>@W@W@Y[{{&44468H,Xb99SXXdkk.E.E.G%HI4;;>>[_[f[f[n[npJJ++D104NN;'-Q ;T u ):  .. #!8!%4)\!57 #( s$   OO4AOP *0P P c               $    V ^8  d   QhRRRRRR/# )r   ry  r   	prognamesT.List[mesonlib.FileOrString]r   T.Optional[ExternalProgram]r   )r   s   "r   r   r    s#       Kh #>r   c                	   V F  p\        V\        P                  4      '       d   K%  \        V\        4      '       g   \	        R 4      h\
        P                  ! V P                  W4      p\        V\        4      '       d   K  Vu # 	  R# )z Executable name must be a stringN)	r   r   r   r   r-   r   from_bin_listr   r   )r   ry  rO  pr  s   &&&  r   program_from_file_for!Interpreter.program_from_file_for  sk    A!X]]++a%%*+MNN"001A1A;RD d$>??  r   c               (    V ^8  d   QhRRRRRRRR/# )	r   r7  rP  r  rR  
extra_infoT.List[mlog.TV_Loggable]r   rQ  r   )r   s   "r   r   r    s,      (E Tk (@E`r   c                	X   \         P                  P                  V P                  P	                  4       V P
                  4      pV EF`  p\        V\        P                  4      '       d   VP                  '       dD   \         P                  P                  V P                  P                  4       VP
                  4      pMB\         P                  P                  V P                  P	                  4       VP
                  4      pVP                  pV.pM<\        V\        4      '       d   V'       d   V.V,           pMV.pM\        R V: 24      h\        WRRR7      pVP                  4       '       g   EK-  VP!                  RRP                  VP#                  4       4       R24       Vu # 	  R# )z1find_program only accepts strings and files, not T)r  r  (r   r  N)r(  r)  r*  r   r
  r   r   r   r   rI  rM  fnamer   r.   r   r  r   get_command)r   r7  r  rX  r  exenamer  extprogs   &&&&    r   program_from_systemInterpreter.program_from_system  s;   
 WW\\$"2"2"A"A"CT[[Q
G'8==11###!#d.>.>.L.L.N.5nn">J "$d.>.>.M.M.O.5nn">J!--)lGS))#-,"<K#-,K&)Z[bZe'fgg%gtTG}}!!Achhw/B/B/D&E%Fa"HI) * r   c               $    V ^8  d   QhRRRRRR/# )r   command_namesrP  rX  zT.List['mlog.TV_Loggable']r   zOT.Optional[T.Union[ExternalProgram, OverrideProgram, build.OverrideExecutable]]r   )r   s   "r   r   r  2  s$     
 
4Q 
+E
$s
r   c                	   V F{  p\        V\        4      '       g   K  W0P                  P                  9   g   K7  V P                  P                  V,          pVP	                  \
        P                  ! R 4      4       Vu # 	  R# )z(overridden)N)r   r   r
   r  r   r   blue)r   rc  rX  r  r   s   &&&  r   program_from_overrides"Interpreter.program_from_overrides2  sc     "DdC((zz000jj//5!!$))N";<
 " r   c                    V ^8  d   QhRRRR/# )r   rc  rP  r   r   r   )r   s   "r   r   r  >  s     7 70M 7RV 7r   c                	    V F@  p\        V\        4      '       g   K  V P                  P                  P	                  V4       KB  	  R # rA  )r   r   r
   searched_programsrX  )r   rc  r  s   && r   store_name_lookupsInterpreter.store_name_lookups>  s1    !D$$$

,,006 "r   c               $    V ^8  d   QhRRRRRR/# )r   r  r   r   zET.Union[build.OverrideExecutable, ExternalProgram, 'OverrideProgram']r   r   r   )r   s   "r   r   r  C  s,     M Mc M8} M  CG Mr   c                	h   WP                   P                  9   d   \        R V R24      hWP                   P                  9   d   \        RV R24      hW P                   P                  V&   VR8X  dA   \	        V\
        4      '       d)   ^RIHp VP                  V\        P                  4       R# R# R# )z)Tried to override finding of executable "z" which has already been found.zTried to override executable "z$" which has already been overridden.z
pkg-config)PkgConfigInterfaceN)r
   rj  r-   r  r   r   dependencies.pkgconfigro  set_program_overrider   rl  )r   r  r   ro  s   &&& r   add_find_program_override%Interpreter.add_find_program_overrideC  s    ::///&)RSWRXXw'xyy::,,,&)GvMq'rss*-

!!$'<JsO$D$DC33C9K9KL %Er   c                    V ^8  d   QhRRRR/# )r   r7  rP  r   r   r   )r   s   "r   r   r  M  s      %B  r   c                	    \        R P                  V Uu. uFU  p\        V\        4      '       d   TM9VP	                  V P
                  P                  V P
                  P                  4      NKW  	  up4      4      # u upi )r   )r   r*  r   r   r  r   r  r  )r   r7  r  s   && r   notfound_programInterpreter.notfound_programM  so    )#(( Q$$Q!//$:J:J:U:UW[WgWgWqWq*rr+  	s   AA;c               @    V ^8  d   QhRRRRRRRRR	RR
RRRRRRRRR/
# )r   r7  rP  ry  r   r  r   r  r   r  r  T.Union[str, T.List[str]]r  rR  version_argr   version_funcT.Optional[ProgramVersionFunc]r   zIT.Union['ExternalProgram', 'build.OverrideExecutable', 'OverrideProgram']r   )r   s   "r   r   r  T  sl      &C '4+A %) :> #<	
 (? (7 )G  ir   c
                	F   \         P                  ! V4      p. p
V P                  WW4WvWV
4	      pVe   V P                  WW4      '       g   V P	                  V4      p\        V\        4      '       d   VP                  4       '       g   V'       gR   \        P                  ! R\        P                  ! VP                  4       4      R\        P                  ! R4      .V
O5!   V'       d+   Rp\        VP                  VP                  4       4      4      hV# V P                  V4       V'       gN   \        P                  ! R\        P                  ! VP                   4      R\        P"                  ! R4      .V
O5!   \        V\$        P&                  4      '       d   RVn        V# )NProgramfound:r   z(Program {!r} not found or not executabler   T)r   r   program_lookupcheck_program_versionrv  r   r   r  r   r   r   r  r   r-   r   rk  r  r   r
   r  was_returned_by_find_program)r   r7  ry  r  r  r  r  r  rz  r{  rX  progobjr   s   &&&&&&&&&&   r   find_program_implInterpreter.find_program_implT  s:    %/1
%%dT_it  EO  P?$"<"<Wl"g"g++D1Gg//DIIg.>.>.@$A8TXXVZ^i^hi>*188G4D4D4F+GHHN 	%HHY		',, 74::eCTbWabgu//0037G0r   c               @    V ^8  d   QhRRRRRRRRR	R
RRRRRRRRRR/
# )r   r7  rP  ry  r   r  r   r  r   r  rR  r  ry  rz  r   r{  r|  rX  rY  r   GT.Optional[T.Union[ExternalProgram, build.Executable, OverrideProgram]]r   )r   s   "r   r   r  t  si     * *#@ *} *(>*!%* %<*  9	*
 %4* &D* $<* d*r   c
                	   V P                  W4      p
V
'       d   V
# V^ ,          R8X  d'   \        RV P                  P                  4       RR7      # Rp\        P
                  ! V P                  P                  P                  \        R4      4      4      pV\        P                  8w  dB   V P                  P                  '       d&   V P                  P                  P                  V4      pV'       d)   V\        P                  8X  d   V P                  WW4V	4      # V P                  W!4      p
V
f   V P!                  WV	4      p
V
fU   V^ ,          P#                  R4      '       d7   \        R\$        P&                  RR7      pVP)                  4       '       d   TMRp
\+        V
\        4      '       d   V'       d   Wzn        V
'       d   V P/                  WW4      '       g   Rp
V
f   V'       d   V'       d   V P1                  V4      p
\2        P4                  ! R\2        P6                  ! V
P9                  4       4      R\2        P:                  ! R	4      .V	O5!   V	P=                  4        V P                  WW4V	4      p
V
# )
r   r  Tr  Nr  python3r~  r  r   )rf  r   r   r  r   r  r   r,  r  r   
nofallbackr0  find_program_providerforcefallbackfind_program_fallbackrU  r`  endswithr   python_commandr  r   rz  r  rv  r   r   r   r  r   clear)r   r7  ry  r  r  r  r  rz  r{  rX  r  fallbackr  r  s   &&&&&&&&&&    r   r  Interpreter.program_lookupt  s    --d?N7g"7D,<,<,N,N,PY]^^(()?)?)M)MiXcNd)ef	+++0@0@0N0N0N''55KKDQH	X%;%;;--hoYcdd,,[??..t*MG?tAw//	::"9h.E.EdSD"jjlldGg//K"-455g|``G?xH++D1GHHY		'*:*:*< =xRVeZde00\fgGr   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )r   r  z;T.Union[ExternalProgram, build.Executable, OverrideProgram]r  ry  r{  r|  rX  rY  r   r   r   )r   s   "r   r   r    s;      -h &?,J +C HLr   c                	   V'       EdF   V'       d
   V! V4      pM\        V\        P                  4      '       dg   VP                  '       d)   V P                  VP                  ,          P
                  pMT p\        V\        4      '       g   Q R 4       hVP                  pMVP                  V 4      p\        P                  ! WR4      w  rxp	V'       gW   R\        P                  ! V4      R\        P                  ! RP                  V U
u. uF	  p
RV
 R2NK  	  up
4      4      .VR&   R# VP                  ^ \        P                  ! V4      4       R# u up
i )r3  r  z	but need:, ':Nr   NFT)r   r
   r  r   r   held_objectr   r   get_versionr   r/  r   r   r   r*  insert)r   r  r  r{  rX  r-  interpis_found	not_foundr  r0  s   &&&&&      r   r  !Interpreter.check_program_version  s    6&w/GU%5%566%%%!--g.@.@AMMF!F!&+66B
B6 00!--d3%-%B%B7%S"H")4+;+;G+Dk"&))DII6SA1#Qx6S,T"U"W
2a!1!1'!:; 7Ts   	Ec               0    V ^8  d   QhRRRRRRRRR	R
RR/# )r   r  r   r7  rP  r  r   r  r   rX  rY  r   r  r   )r   s   "r   r   r    s>     = =c =9V =/9=(,=:R= $k=r   c           
     	   \         P                  ! R \         P                  ! V4      R\         P                  ! RP                  V4      4      4       RTRT;'       g    / R. R. RR/pV P	                  W4       V P                  W%4      # )	zFallback to subprojectzwhich provides programr   r  r  r-  r  r	   N)r   r   r   r*  r  rf  )r   r  r7  r  r  rX  	sp_kwargss   &&&&&& r   r  !Interpreter.find_program_fallback  s     	)499X+>@X388D>*	, 44"rRt+
	 	8/**4<<r   rZ  )r  min_varargsr  dirs0.52.0version_argument1.5.0rr  c               (    V ^8  d   QhRRRRRRRR/# )	r   r)  r&  r7  z&T.Tuple[T.List[mesonlib.FileOrString]]r   z'kwtypes.FindProgram'r   z?T.Union['build.Executable', ExternalProgram, 'OverrideProgram']r   )r   s   "r   r   r    s,     ? ?&6 ?>d ?"7?^?r   c                	   \        W0P                  4      w  rEpV'       dq   \        P                  ! R \        P                  ! RP                  V^ ,          4      4      R\        P                  ! V4      R4       V P                  V^ ,          4      # \        V4      pVR,          pV P                  V^ ,          VR,          WRVR,          VR,          VR	7      # )
r~  r   r  r  r  ri  Fr-  r  )r  r  r  r  rz  r  )	rG   r   r   r   r   r*  rv  rH   r  )	r   r)  r7  r   r  r  r9  r  r  s	   &&&&     r   r  Interpreter.func_find_program  s     '=V__&U#GHHY		#((47*; <>PRVR[R[\cRdfpq((a11)&1 !23%%d1gvh/?Q`-26);LZ`asZt2= & ? 	?r   rU  c               (    V ^8  d   QhRRRRRRRR/# )	r   r)  r&  r7  r  r   zkwtypes.FuncDependencyr   r    r   )r   s   "r   r   r    s,     * *$4 *<P *Zp *u *r   c                	   V^ ,           Uu. uF  qD'       g   K  VNK  	  pp\        V4      ^8  d&   \        RR4      P                  V P                  4       VP	                  R4      p\        WVR,          V4      pVP                  VR,          4       VR,          p\        W0P                  4      w  rpV	'       d   V^ ,          pVR,          '       d/   VRP                  R	P                  VR,          4      4      ,           p\        P                  ! R
\        P                  ! V4      R\        P                  ! V4      R4       \        P                  ! V^ ,          V P                  4      # \         P"                  ! RVP%                  4       4      pWR&    VP'                  V4      p\-        T\.        4      '       g   Q R4       hTP1                  4       '       g   T'       d   T P+                  T.4       TR,          R8w  dX   TR,          pTP3                  4       pTT8w  d8   \        P4                  ! RT^ ,           RT RT 24       TP7                  T4      pTP8                  eC   TP8                  w  pp\        P:                  ! RTP<                  : R2TT P                  TT4       TP>                   F  pTP                  T P                  T4       K!  	  T# u upi   \(         d    T'       d   T P+                  T.4       h i ; i)r   z"dependency with more than one name0.60.0r  allow_fallbackr  not_found_messager  z(modules: {})r  r    r  r  z%dependencies.base.DependencyObjectKWsr  r3  include_typepreservezCurrent include type of z is z. Converting to requested zdep z custom lookup) r   r3   user   rf  rC   ru  rG   r   r*  r   r   r   r   NotFoundDependencyr   TcastrV  rv  r7  r  r   r    r  get_include_typerS  generate_system_dependencyfeature_sincer   r  featurechecks)r   r)  r7  r   nnamesr  r}  r  r  r  r9  r  nkwargsdr  r  r-  	extra_msgrF  s   &&&&                r   r  Interpreter.func_dependency  s|   
 !G)GqqG)u:>;XFJJ4??[ **%67&tF;K4Lo^
z*+"#67&<V__&U#G8Di  o44TYYvi?P5QRRHH\499T?4F		RYHZ\fg2258T=M=MNN&&@&++-P&
			'"A
 !Z((4*4(wwyy.012.!Z/N+F'')F

5d1gYd6(Jdekdlmn008??&!"GY!!D
."A7DOO]fhlmAEE$//4( !Q **  	 !!#4"56	s   	KKK   L3LrV  c                	    \        4       # rA  )r1   r  s   &&&&r   r  Interpreter.func_disabler  s     zr   c                    V ^8  d   QhRRRR/# )r   r   kwtypes.Executabler   kwtypes.SharedLibraryr   )r   s   "r   r   r    s      += BW r   c                	    \         P                  ! R VP                  4       4      p\         F  pW#P                   K  	  \
         F)  pVP                  VP                  VP                  4       K+  	  RVR&   RVR&   V# )r  Nrust_abicdylibrust_crate_type)r  r  rV  rQ   r  ro   
setdefaultr  )r   r   r  	exe_kwargsh_kwargs   &&   r   _exe_to_shlib_kwargs Interpreter._exe_to_shlib_kwargs  sk    &&0&++-@1I' 2&Hx}}h.>.>? '"
%-!"r   rX  allow_unknownc               (    V ^8  d   QhRRRRRRRR/# )	r   r)  r&  r7   T.Tuple[str, SourcesVarargsType]r   r  r   z.T.Union[build.Executable, build.SharedLibrary]r   )r   s   "r   r   r  %  s2     	G 	G$4 	G>	G 2	G7e	Gr   c                	Z   VR ,          pV P                   P                  V,          pVP                  4       '       dP   VP                  R4      R8X  d:   V P	                  WV P                  V4      \        P                  4      pRVn        V# V P	                  WV\        P                  4      # )ri  android_exe_typeapplicationT)
r   r8  
is_androidrf  rO  r  r
   r  shared_library_onlyr  )r   r)  r7  r   ry  r   holders   &&&&   r   r  Interpreter.func_executable"  s     X&%%k2<<>>fjj);<M&&t43L3LV3TV[ViVijF)-F&M  VU5E5EFFr   ru  c               (    V ^8  d   QhRRRRRRRR/# )	r   r)  r&  r7  r  r   kwtypes.StaticLibraryr   build.StaticLibraryr   )r   s   "r   r   r  3  s2     J J$4 J>J 5J:MJr   c                	D    V P                  WV\        P                  4      # rA  )rO  r
   r  r  s   &&&&r   r  Interpreter.func_static_lib0  s       VU5H5HIIr   rs  c               (    V ^8  d   QhRRRRRRRR/# )	r   r)  r&  r7  r  r   r  r   build.SharedLibraryr   )r   s   "r   r   r  ;  s,      $4 > 5:Mr   c                	V    V P                  WV\        P                  4      pR Vn        V# T)rO  r
   r  r  )r   r)  r7  r   r  s   &&&& r   r  Interpreter.func_shared_lib8  s+     ""4vu7J7JK%)"r   rN  c               (    V ^8  d   QhRRRRRRRR/# 	r   r)  r&  r7  r  r   kwtypes.Libraryr   zbuild.BothLibrariesr   )r   s   "r   r   r  F  s,     = ="2 =<=-=2E=r   c                	&    V P                  WV4      # rA  )build_both_librariesr  s   &&&&r   r  Interpreter.func_both_libB  s     ((V<<r   rt  z0.37.0c               (    V ^8  d   QhRRRRRRRR/# )	r   r)  r&  r7  r  r   kwtypes.SharedModuler   build.SharedModuler   )r   s   "r   r   r  O  s2     I I'7 I!AI#7I<NIr   c                	D    V P                  WV\        P                  4      # rA  )rO  r
   r  r  s   &&&&r   r  Interpreter.func_shared_moduleK  s       VU5G5GHHr   rj  c               (    V ^8  d   QhRRRRRRRR/# )	r   r)  r&  r7  r  r   r  r   build.Executabler   )r   s   "r   r   r  X  s,     6 6!1 6;6,61A6r   c                	&    V P                  WV4      # rA  )build_libraryr  s   &&&&r   r  Interpreter.func_libraryT  s     !!$f55r   rh  c               (    V ^8  d   QhRRRRRRRR/# )	r   r)  r&  r7  zGT.Tuple[str, T.List[T.Union[str, mesonlib.File, build.GeneratedTypes]]]r   kwtypes.Jarr   	build.Jarr   )r   s   "r   r   r  `  s2     @ @- @^@$@)2@r   c                	D    V P                  WV\        P                  4      # rA  )rO  r
   r  r  s   &&&&r   r  Interpreter.func_jar]  s       VUYY??r   rO  0.40.0r  override_optionsc               (    V ^8  d   QhRRRRRRRR/# )	r   r)  r&  r7  r  r   zkwtypes.BuildTargetr   zwT.Union[build.Executable, build.StaticLibrary, build.SharedLibrary, build.SharedModule, build.BothLibraries, build.Jar]r   )r   s   "r   r   r  i  s5     @ @&6 @ @@"5@ [@r   c                	   VR ,          pVR8X  d"   V P                  WV\        P                  4      # VR8X  d"   V P                  WV\        P                  4      # VR8X  d"   V P                  WV\        P                  4      # VR8X  d"   V P                  WV\        P
                  4      # VR8X  d   V P                  WV4      # VR8X  d   V P                  WV4      # V P                  WV\        P                  4      # )r   rX  rs  rt  ru  rN  rj  )	rO  r
   r  r  r  r  r  r  r  )r   r)  r7  r   r   s   &&&& r   r  Interpreter.func_build_targete  s     ]+,&$$T9I9IJJ,,$$T9L9LMMO+$$T9K9KLL,,$$T9L9LMM,,,,T@@I%%%d&99  VUYY??r   ry  r  commandr  replace_stringz	@VCS_TAG@z1.7.0c               (    V ^8  d   QhRRRRRRRR/# )	r   r)  r&  r7  zT.List['TYPE_var']r   z'kwtypes.VcsTag'r   build.CustomTargetr   )r   s   "r   r   r    s,     > >!1 >9K >Ue >j| >r   c                	   VR ,          f%   \         P                  ! RRV P                  VR7       VR ,          ;'       g    V P                  pVR,          pRpVR,          p\        P
                  P                  \        P
                  P                  V P                  P                  4       V P                  4      4      pV'       d   \        V^ ,          \        \        P                  34      '       d   \        V^ ,          \        P                  4      '       d%   \         P                  ! RRV P                  VR7       V P                  V^ ,          R	R
7      p	V	P!                  4       '       d   W^ &   M\         P                  ! RRV P                  VR7       Mt\        P"                  ! V4      p
V
'       dT   \$        P&                  ! RP)                  V
P*                  V
P,                  4      4       V
P.                  pV
P0                  pMR.pV P3                  \5        VR,          4      ^8  VR,          R4       V P                  P7                  4       RRRRVVVV.,           V,           pVR,          pV P9                  VR,          4      pVR,          f   . M	VR,          .pVR,          f   . M	VR,          .pV'       d   V'       g   \;        R4      h\<        P>                  ! VR,          ^ ,          V P                  V P                  V P                  VV PA                  VR,          4      VR,          RRVVVVR7      pV PC                  VP*                  V4       V# )r  zOptional fallback in vcs_tag0.41.0rh  r  z(.*)r  z'vcs_tag with file as the first argumentr  Fr  zGvcs_tag with custom_tgt, external_program, or exe as the first argumentr  zFound {} repository at {}r   inputoutputry  z
--internal	vcstaggerz@INPUT0@z	@OUTPUT0@installinstall_modeinstall_dirinstall_tagzKvcs_tag: "install_dir" keyword argument must be set when "install" is true.T)build_by_defaultbuild_always_staler  r  r  r  )"r3   r   r   r   r(  r)  rJ  r*  r   r
  r   r   r   r   r   r  r  
detect_vcsr   r   r   r  wc_dirget_rev	rev_regex_validate_custom_target_outputsr   r  _warn_kwarg_install_mode_stickyr.   r
   r  r  r  )r   r)  r7  r   r  r  regex_selectorvcs_cmdr  maincmdvcsr  r  r  r  r  tgs   &&&&             r   r  Interpreter.func_vcs_tag~  s   ( *%!!"@(DOOfjk*%==)=)= 01#WW%%bggll43C3C3R3R3TVZVaVa&bc
'!*sHMM&:;;gaj(--88))*SU]_c_n_ny}~00e0L==??!(AJ%%&oqy{  |K  |K  VZ  [%%j1C4;;CHHcjjQR++!$% 	,,S-AA-EvhGWYbc002  '' #;;F><RSBHBWB_Bflmzf{e|5;M5J5RrY_`mYnXo;"#pqq8QKKOO((98!##%#
 	$	r   rv  c               (    V ^8  d   QhRRRRRRRR/# )	r   r)  r&  r7  r   r   r   r   z
T.NoReturnr   )r   s   "r   r   r    s*     " "%5 "X "{ "_i "r   c                	    \        4       hrA  )r0   r  s   &&&&r   r  Interpreter.func_subdir_done  s      !!r   c               (    V ^8  d   QhRRRRRRRR/# )	r   has_multi_inr   outputszT.Iterable[str]r  r   r   r   r   )r   s   "r   r   r    s*     % %D %? %be %jn %r   c                    RR.p^RI Hp V F_  pV! WF.4      pV'       d   RV9   g   RV9   d   \        V R24      hV'       g   K:  \        P                  ! V R2RV P
                  4       Ka  	  R	# )
zChecks for additional invalid values in a custom_target output.

This cannot be done with typed_kwargs because it requires the number of
inputs.
z@PLAINNAME[0-9]+@z@BASENAME[0-9]+@)iter_regexin_iter@PLAINNAME@
@BASENAME@zt: output cannot contain "@PLAINNAME@" or "@BASENAME@" when there is more than one input (we can't know which to use)z
 in outputr  N)utils.universalr  r.   r3   r   r   )r   r  r  r  inregexr  outr$  s   &&&&    r   r  +Interpreter._validate_custom_target_outputs  s~     !45GH7C%gu5E#!59L&$ 0i (i j j%%gZ('OO% r   rR  r   feedconsolez0.48.0build_subdirz1.10.0c               (    V ^8  d   QhRRRRRRRR/# )	r   r)  r  r7  r  r   z'kwtypes.CustomTarget'r   r  r   )r   s   "r   r   r    s1     \ \'; \< \#9\>P\r   c           "     	   VR ,          '       dA   RVR ,          9   g   RVR ,          9   d%   \         P                  ! RRV P                  VR7       V P                  VR,          4      pVR,          pVR,          pVR	,          e   VR,          e   \	        R
4      hVf   VR,          '       d   RpM!VR	,          e   Vf
   VR	,          pVR,          pVf   RpVf   RpV^ ,          pVf'   \         P                  ! RRV P                  VR7       RpV P                  VR,          RR7      pVR,          p	V	'       d:   \        V	^ ,          \        4      '       d   V P                  V	^ ,          .4      V	^ &   \        V4      ^8  d   VR,          '       d   \        R4      h\        VR,          4      ^8  d   VR,          '       d   \        R4      hVR,          '       d   VR,          '       d   \        R4      hV	 Fu  p
VR,          '       d)   \        V
\        4      '       d   RV
9   d   \        R4      hVR,          '       g   KK  \        V
\        4      '       g   Kc  RV
9   g   Kl  \        R4      h	  VR,          '       d   VR,          '       g   \        R 4      h\        VR,          4      ^8  d%   \         P                  ! R!R"V P                  VR7       \        VR#,          4      ^ ^\        VR,          4      09  d3   \        R$\        VR#,          4       R%\        VR,          4       R&24      hVR,           F  pV P                  V4       K  	  V P                  \        V4      ^8  VR,          R'4       \        P                  ! VV P                  V P                  V P                   V	VVR,          3RVRVRVR,          RVR,          R(VR(,          R VR ,          R)VR*,          R+VR+,          RVR,          RVR,          RVR,          RVR#VR#,          R,V P"                  R-VR-,          / pV P%                  VP&                  V4       V# ).depfiler   r  z&substitutions in custom_target depfiler  rh  r  r	  r
  build_alwayszLCustomTarget: "build_always" and "build_always_stale" are mutually exclusiver  TFz%custom_target() with no name argumentr  r   r  )strictr  r%  zKcustom_target: "feed" keyword argument can only be used with a single inputr  r  zOcustom_target: "capture" keyword argument can only be used with a single outputr&  zOcustom_target: "capture" and "console" keyword arguments are mutually exclusive@OUTPUT@zHcustom_target: "capture" keyword argument cannot be used with "@OUTPUT@"z@INPUT@zDcustom_target: "feed" keyword argument cannot be used with "@INPUT@"r  zQcustom_target: "install_dir" keyword argument must be set when "install" is true.z&multiple install_dir for custom_targetr  r  zcustom_target: install_tag argument must have 0 or 1 outputs, or the same number of elements as the output keyword argument. (there are z install_tags, and z	 outputs)rR  depend_filesextra_dependsdependsr  r   r'  )r3   r   r   r  r-   r  r   r   r  r   r.   validate_forbidden_targetsr  r
   r  r   r   r   r  r  )r   r)  r7  r   r  r	  r
  r  inputsr  r<  tr  s   &&&&         r   r  Interpreter.func_custom_target  sL   0 ),&2C"C}X^_hXiGi!!"JHVZVeVeptu;;F><RS ""45#$89.!-&9M2N2Z&'uvv#y(9(9#N#/'#).#9 !'(:!;
 #$%!&Aw<
 !!"I8UYUdUdostD--fWoe-L#z'!*c22//=GAJv;?vf~~"#pqqvh 1$	):):"#tuu)	!2!2"#tuuAi  Z3%7%7J!O&'qrrf~~*Q"4"4a&'mnn	 
 )VM%:%:"#vwwvm$%)!!"JHVZVeVeptuvm$%aCx8H4I-JJ" $114VM5J1K0L M**-fX.>*?)@	$K L L
 !!A++A. ",,S[1_fX>NP_`KKOO81  21 .1 9%1 9%1  /1 9%1 !+1 u1  !1" 9%#1$ }-%1& &'1( }-)1* LL+1,  /-1. 	$	r   rp  c               (    V ^8  d   QhRRRRRRRR/# )	r   r)  r  r7  r  r   z'kwtypes.RunTarget'r   zbuild.RunTargetr   )r   s   "r   r   r  d  s+      $8   38Gr   c           
     	>   VR ,          P                  4       p\        V4       FJ  p\        V\        4      '       g   K  VP	                  4       '       d   K3  \        RVP                  : 24      h	  \        V^ ,          \        4      '       d   V P                  V^ ,          .4      V^ &   RV9   d   \        R4      hV^ ,          p\        P                  ! WdVR,          V P                  V P                  V P                  VR,          4      pV P                  Wg4       V# )r  z%Tried to use non-existing executable 	@DEPFILE@z.run_target does not have support for @DEPFILE@r0  r  )rV  r   r   r   r  r-   r  r   r  r
   r  r   r   r   r  )r   r)  r7  r   all_argsr   r  r  s   &&&&    r   r  Interpreter.func_run_target]  s     )$))+"A!_--aggii*-RSTSYSYR\+]^^ # hqk3''00(1+?HQK("&'WXXAw__TVI->T__^b^n^n#E],!	r   rK  c               (    V ^8  d   QhRRRRRRRR/# )	r   r)  r&  r7  z@T.Tuple[str, T.List[T.Union[build.Target, build.BothLibraries]]]r   r   r   zbuild.AliasTargetr   )r   s   "r   r   r  z  s,      &6 >~ "-2Cr   c                	>   Vw  rE\         ;QJ d    R  V 4       F  '       g   K   RM	  RM! R  V 4       4      '       d#   \        P                  ! RRV P                  4       . pV Fl  p\	        V\
        P                  4      '       d9   VP                  VP                  4       VP                  VP                  4       K[  VP                  V4       Kn  	  \
        P                  ! WFV P                  V P                  V P                  4      pV P                  WH4       V# )c              3  V   "   T F  p\        V\        P                  4      x  K!  	  R # 5irA  )r   r
   r  .0r  s   & r   	<genexpr>0Interpreter.func_alias_target.<locals>.<genexpr>}  s     <t!z!U__--t   ')TFz(alias_target that depends on run_targetsr  )anyr3   r   r   r   r
   r  r   sharedstaticr  r   r   r  )	r   r)  r7  r   r  r  	real_depsr  r  s	   &&&&     r   r  Interpreter.func_alias_targetw  s    
 
3<t<333<t<<<!!"LhX\XgXgh*,	A!U0011  *  *  #  tT__dN^N^_!	r   r[  r  )allow_empty)r  r   r  z0.43.0c               (    V ^8  d   QhRRRRRRRR/# )	r   r)  r  r7  z3T.Tuple[T.Union[build.Executable, ExternalProgram]]r   z'kwtypes.FuncGenerator'r   zbuild.Generatorr   )r   s   "r   r   r    s2     D D#7 DPD6D;JDr   c                	P   VR ,           F8  pRV9  d   RV9  d   \        R4      h\        V4      '       g   K/  \        R4      h	  \        VR ,          4      ^8  d#   VR ,           F  pRV9   g   K  \        R4      h	  \        P                  ! V P
                  V^ ,          3/ VB # )r  r   r  zAEvery element of "output" must contain @BASENAME@ or @PLAINNAME@.z0"output" must not contain a directory separator.r-  z:Tried to use @OUTPUT@ in a rule with more than one output.)r.   r   r   r
   r  r   )r   r)  r7  r   ruleos   &&&&  r   r  Interpreter.func_generator  s     8$$D4'M,E&'jkkD!!&'YZZ	 %
 vh 1$H%%?*+ghh & t//aCFCCr   rM  c               (    V ^8  d   QhRRRRRRRR/# )	r   r)  r&  r7  zRT.Tuple[str, T.Union[build.Executable, build.Jar, ExternalProgram, mesonlib.File]]r   z'kwtypes.FuncBenchmark'r   r   r   )r   s   "r   r   r    s,     1 1#3 1o161;?1r   c                	,    V P                  WVR 4       R# )FNadd_testr  s   &&&&r   r  Interpreter.func_benchmark  s    
 	d&%0r   rw  is_parallelc               (    V ^8  d   QhRRRRRRRR/# )	r   r)  r&  r7  T.Tuple[str, T.Union[build.Executable, build.Jar, ExternalProgram, mesonlib.File, build.CustomTarget, build.CustomTargetIndex]]r   z'kwtypes.FuncTest'r   r   r   )r   s   "r   r   r    s/     0 0. 0 X0,0150r   c                	,    V P                  WVR 4       R# )TNrO  r  s   &&&&r   r  Interpreter.func_test  s    
 	d&$/r   c                    V ^8  d   QhRRRR/# )r   r   zOT.Union[EnvironmentVariables, T.Dict[str, 'TYPE_var'], T.List['TYPE_var'], str]r   r   r   )r   s   "r   r   r    s      ) )'v )  |P )r   c                	    VP                  R 4      pVf   \        4       # \        P                  ! V4      pV'       d   \	        RV 24      h\        P
                  ! V4      # )r  z"env": )rf  r   r_   r  r.   r  )r   r   envlistr=  s   &&  r   unpack_env_kwargInterpreter.unpack_env_kwarg  sS    **U#?'))w'"WSE?33((r   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )r   r)  r&  r7  rT  r   z'kwtypes.BaseTest'klasszT.Type[TestClass]r   r   r   )r   s   "r   r   r    s<     .( .(. .( X.(,.( +.( 7@.(r   c                	   V^ ,          pRV9   d/   \         P                  ! RV R2VR7       VP                  RR4      pV^,          p\        V\        4      '       d#   VP                  4       '       g   \        R4      hM\        V\        P                  4      '       d   V P                  V.4      pM\        V\        P                  4      '       d#   VP                  R. 4      P                  V4       MK\        V\        P                  4      '       d,   VP                  R. 4      P                  VP                  4       V P!                  V4      pVR,          ^ 8:  d%   \"        P$                  ! R	R
V P&                  VR7       V P)                  4       '       d   V P&                  MV P                  P*                  p. p	VR,           FL  p
V
'       d
   RV
,           p
V	P                  VP                  RR4      P                  RR4      V
,           4       KN  	  V! VVV	VVR,          VP-                  RR4      VR,          VVR,          VR,          VR,          VR,          VR,          VR,          4      # )r   r   z!":" is not allowed in test name "z ", it has been replaced with "_"rh  r  z3Tried to use not-found external program as test exer0  timeoutztest() timeout <= 0r   suiter   rR  Fr7  should_failworkdirprotocolpriorityverbose)r   r  r  r   r   r  r.   r   r   r  r
   r  r  r   r  r>  rZ  r3   r   r   r  r   rf  )r   r)  r7  r   r]  r  r   r  prjr`  r\  s   &&&&&      r   	make_testInterpreter.make_test  s    Aw$;@Ffg&*,<<S)D1gc?++99;;&'\]] X]]++((#/CU//00i,33C8U4455i,33CJJ?##F+)!!!"74??]ab!%!3!3!5!5doo4::;R;RA!GLLS#.66sC@1DE !
 TI&ZZu5F^M*I&I&J'J'I&( 	(r   c               (    V ^8  d   QhRRRRRRRR/# )	r   r)  r&  r7  rT  r   r   is_base_testr   r   )r   s   "r   r   r    s5     D D- D WD+D;?Dr   c                	0   \        V^,          \        P                  \        P                  34      '       d#   \        P
                  ! RRV P                  4       \        ;QJ d#    R VR,           4       F  '       g   K   RM	  RM! R VR,           4       4      '       d#   \        P
                  ! RRV P                  4       V P                  WV4      pV'       d^   V P                  P                  P                  V4       \        P                  ! R	\        P                  ! VP                  R4      4       R# V P                  P                  P                  V4       \        P                  ! R
\        P                  ! VP                  R4      4       R# )r   z!test with CustomTarget as commandr  c              3  B   "   T F  p\        V\        4      x  K  	  R # 5irA  )r   r   r>  r   s   & r   r?  'Interpreter.add_test.<locals>.<genexpr>  s     F~!z!_--~s   r7  TFz"test with external_program in argsz1.6.0zAdding testzAdding benchmarkN)r   r
   r  r  r3   r   r   rB  rg  r!  r   r   rS  r   r  
benchmarks)r   r)  r7  r   rj  r3  s   &&&&& r   rP  Interpreter.add_test  s    d1g 2 2E4K4KLMM!!"EwPTP_P_`3Fvf~F333Fvf~FFF!!"FQUQ`Q`aNN4v.JJ##A&JJ}dii&=>JJ!!((+JJ)499QVVT+BCr   rb  r   c               (    V ^8  d   QhRRRRRRRR/# )	r   r)  r&  r7  (T.Tuple[T.List['mesonlib.FileOrString']]r   z'kwtypes.FuncInstallHeaders'r   zbuild.Headersr   )r   s   "r   r   r  	  s,      )9 #K%AFSr   c           
     	l   V P                  VR ,          4      pV P                  V^ ,          4      pVR,          pVeS   VR,          e   \        R4      h\        P                  P                  V4      '       d   \        P                  ! R4       MRp\        P                  ! \        4      p. pVR,          '       dK   V FC  p	\        P                  P                  V	P                  4      p
Wz,          P                  V	4       KE  	  MVR,          P                  V4       V F  p\        P                   ! W{,          \        P                  P#                  Wk4      VR,          W@P$                  VR,          R7      pVP                  V4       V P                  P&                  P                  V4       K  	  V# )	r  r   r  zXinstall_headers: cannot specify both "install_dir" and "subdir". Use only "install_dir".zTSubdir keyword must not be an absolute path. This will be a hard error in meson 2.0.r   preserve_pathfollow_symlinks)ru  )r  r  r-   r(  r)  r  r   r  r   r   r   dirnamer\  r   extendr
   r  r*  r   headers)r   r)  r7  r   r  source_filesrd  r  ret_headersfilerv  childdirhs   &&&&         r   r   Interpreter.func_install_headers  s\    ;;F><RS33DG<)%m$0*  ,F  G  Gww}}^,,  !wxN&&t,/""$''//$**5$$T* % HOOL)Hdnbggll>.TV\]jVk*OO.45F.GIA q!JJ%%a(  r   rc  localer   c               (    V ^8  d   QhRRRRRRRR/# )	r   r)  r&  r7  rr  r   z'kwtypes.FuncInstallMan'r   z	build.Manr   )r   s   "r   r   r  )	  s,      %5 G!9>Gr   c                	   V P                  VR ,          4      pV P                  V^ ,          4      pV FB  p \        VP                  R^4      R,          4      p^Tu;8:  d
   ^	8:  d   K7  M \        R4      h	  \        P                  ! WSR,          VV P                  VR,          4      pV P                  P                  P                  V4       V#   \        \
        3 d    ^ p Li ; i)r  r  z?Man file must have a file extension of a number between 1 and 9r  r  r  )r  r  r   rsplit
IndexError
ValueErrorr.   r
   r  r   manr   )	r   r)  r7  r   r  r  r\  numr   s	   &&&&     r   r  Interpreter.func_install_man"	  s     ;;F><RS ..tAw7A!((3*2./ =q==&'hii  IIgm4loovh'79

a  
+ s   "CC'&C'ra  r  r  c               $    V ^8  d   QhRRRRRR/# )r   r)  r&  r7  r  r   r   r   )r   s   "r   r   r  D	  s#      *: , [_ r   c                	    \         P                  ! V^ ,          VR,          V P                  VR,          4      pV P                   P                  P	                  V4       V# )r   r  r  )r
   r  r   emptydirr   )r   r)  r7  r   r  s   &&&& r   r  !Interpreter.func_install_emptydir>	  sH     NN47F>$:DOOVTaMbc

""1%r   re  r  symlink_namepointing_tor  c               $    V ^8  d   QhRRRRRR/# )r   r)  r&  r7  r  r   zbuild.SymlinkDatar   )r   s   "r   r   r  R	  s$      )9 #7(9r   c                	    V^ ,          pVR,          p\         P                  ! WTVR,          V P                  VR,          4      pV P                   P                  P	                  V4       V# )r   r  r  r  )r
   r  r   r  r   )r   r)  r7  r   r  r>  r{  s   &&&&   r   r   Interpreter.func_install_symlinkJ	  s\     Aw&fF=,A"oovm/DF

""1%r   rr  c               (    V ^8  d   QhRRRRRRRR/# )	r   r)  r&  r7  z0T.Tuple[object, T.Optional[T.Dict[str, object]]]r   r  r   zbuild.StructuredSourcesr   )r   s   "r   r   r  `	  s0     0 0(0B0 "0 '>0r   c                	n   \         \        P                  \        P                  \        P
                  \        P                  \        P                  3p\        P                  ! \        4      p\        P                  ! V^ ,          4       F  p\        Wd4      '       g   \        R\        V4       R24      h\        V\         4      '       d@   \        P                  P                  V P                  P                   V P"                  V4      pVR,          P%                  V4       K  	  V^,          '       d   RV^,          9   d   \        R4      hV^,          P'                  4        F  w  rx\        P                  ! V4       F  p\        Wd4      '       g   \        R\        V4       R24      h\        V\         4      '       d@   \        P                  P                  V P                  P                   V P"                  V4      pWW,          P%                  V4       K  	  K  	  \        P(                  ! V4      # )r   zstructured_sources: type "z" is not validr   zKstructured_sources: keys to dictionary argument may not be an empty string.)r   r   r   r
   r  r  r  r   r   r   r   r   r.   typefrom_source_filer   r  r   r   r   r  )	r   r)  r7  r   valid_typesr  argr   r   s	   &&&&     r   r  #Interpreter.func_structured_sources\	  s    HMM5+>+>@R@RTYTkTkmr  nA  nA  BWbWnWnosWt##DG,Cc//&)CDI;n']^^#s##mm44T5E5E5P5PRVR]R]_bcBKs# - 77T!W}&'tuuQ#++A.C%c77.1KDQTI;Vd/eff!#s++&mm<<T=M=M=X=XZ^ZeZegjkJ%%c* / ( &&w//r   if_foundc                	~    \         ;QJ d    R  V  4       F  '       d   K   RM	  RM! R  V  4       4      '       g   R# R# )c              3  :   "   T F  p\        VR 4      x  K  	  R# 5i)r  N)rQ  )r>  r  s   & r   r?  'Interpreter.<lambda>.<locals>.<genexpr>	  s      OomnhiPWXY[bPcPcmns   FTz"Objects must have a found() methodN)all)r  s   &r   r  r  	  s0    CCOomnOoCCCOomnOoLoLo D yuy yr   )r  r  r  r   c               (    V ^8  d   QhRRRRRRRR/# )	r   r)  r&  r7  r  r   z'kwtypes.Subdir'r   r   r   )r   s   "r   r   r  	  s1     V V 0 V VN^ Vcg Vr   c                	   \         P                  ! V4       R V^ ,          9   d   \        R4      hV P                  R8X  d$   V^ ,          V P                  8X  d   \        R4      hV P                  R8X  d*   V^ ,          P                  R4      '       d   \        R4      hV^ ,          R8X  d   \        R4      h\        P                  P                  V^ ,          4      '       d   \        R4      hVR,           F  pVP                  4       '       d   K   R	# 	  V P                  V P                  P                  4       V^ ,          4      w  rVV'       g   \        R
V R24      h\        P                  ! \        P                  P                  V P                  P                  V4      RR7       \         P"                  V P$                  9   d   \        P                  P'                  \        P                  P                  V P                  P                  4       VR4      4      '       dJ   V P(                  P+                  WPP,                  4      pV P/                  WW4       V P1                  Wu4       R	# V P3                  V P                  P                  4       V4      '       g?   \        P                  P                  V\        P4                  4      p\7        RV: R24      hR	# )r  zSubdir contains ..r   zIMust not go into subprojects dir with subdir(), use subproject() instead.meson-zJThe "meson-" prefix is reserved and cannot be used for top-level subdir().zJThe argument given to subdir() is the empty string ''. This is prohibited.z(Subdir argument must be a relative path.r  NzTried to enter directory "z"", which has already been visited.Tr&  z
Cargo.tomlzNonexistent build file 'r  )r   check_direntry_issuesr.   r   r   rL  r(  r)  r  r  _resolve_subdirr   r
  r3  r*  r  r   r   r  existsr~   rt  r  rO  _evaluate_codeblock_evaluate_subdirbuild_filenamer-   )	r   r)  r7  r   r   r   is_new	codeblockbuildfilenames	   &&&&     r   r  Interpreter.func_subdiry	  s    	&&t,47?"#788;;"aD,?,?!?"#noo;;"a!3!3H!=!="#opp7b="#opp77==a!!"#MNN
##A7799 $ --d.>.>.M.M.OQUVWQXY"%?xGi#jkk
BGGLL!1!1!;!;VDtT$11T5E5EE77>>"'',,t'7'7'F'F'H&R^_``

,,V5E5EFINN6-$$Y7&&t'7'7'F'F'H&QQGGLL1K1KLM&)A-ARRS'TUU Rr   c                    V ^8  d   QhRRRR/# )r   moder   r   r   )r   s   "r   r   r  	  s      H  r   c                	r   VP                   ^ 8  d   VP                   \        P                  ,          '       d   \        P                  ! RV P
                  R7       \        P                  ! VP                   \        P                  ,
          4      R,          p\        W!P                  VP                  4      # V# )r   zfinstall_mode with the sticky bit on a file does not do anything and will be ignored since Meson 0.64.0rh  r   NN)
permsrP  S_ISVTXr   r  rt  filemoder   ownergroup)r   r  r  s   && r   r  +Interpreter._warn_kwarg_install_mode_sticky	  sv    ::>djj4<<77 =GKGXGXZMM$**t||";<R@EE::tzz::Kr   r`  r  renamer   c               (    V ^8  d   QhRRRRRRRR/# )	r   r)  r&  r7  rr  r   z'kwtypes.FuncInstallData'r   
build.Datar   )r   s   "r   r   r  	  s2     Q Q&6 Q HQ";Q@JQr   c           
     	n   V P                  V^ ,          VR,          ,           4      pVR,          ;'       g    RpV'       d>   \        V4      \        V4      8w  d%   \        R\        V4       R\        V4       R24      hVR,          pV'       g   V P                  p\        P
                  ! \        P                  P                  V P                  P                  4       V4      \        P                  P                  RV4      4      pV P                  4       '       d%   \        P                  ! R	R
V P                  RV4       VR,          '       d%   \        P                  ! RR
V P                  RV4       V P                  VR,          4      pV P!                  WFWVR,          VR,          VR,          R7      # )r   r  r  Nz_"rename" and "sources" argument lists must be the same length if "rename" is given. Rename has z elements and sources has r  r  z	{datadir}z9install_data() without install_dir inside of a subprojectrr  zSThis was broken and would install to the project name of the parent project insteadrt  z9install_data() with preserve_path and without install_dirzFThis was broken and would not add the project name to the install pathr  r  ru  )rt  ru  )r  r   r.   r  r  r  r(  r)  r*  r   get_datadirr  r3   r   r   r  install_data_impl)	r   r)  r7  r   r  r  r  r   r  s	   &&&&     r   r  Interpreter.func_install_data	  s    ..tAw	9J/JK!))T6{c'l*&""%f+.HWVWYZ Z ]+,,F,,RWW\\$:J:J:V:V:XZ`-acecjcjcocop{  ~D  dE  FK!!##%%&acjlpl{l{&{&*, o&&%%&acjlpl{l{&n&*, ;;F><RS%%gLRXYfRg4:?4K6<=N6O & Q 	Qr   c               <    V ^8  d   QhRRRRRRRRR	R
RR
RRRRRR/	# )r   r  r  r  r   r  r   r  rR  tagr   install_data_typert  r   ru  zT.Optional[bool]r   r  r   )r   s   "r   r   r  	  s]      )> S (0:Q. .= *.	
 ,<
 HRr   c	                	   \        V\        P                  4      '       d   VP                  MTp	\        P
                  ! \        4      p
V'       dK   V FC  p\        P                  P                  VP                  4      pW,          P                  V4       KE  	  MV
R ,          P                  V4       . pV
P                  4        Fv  w  r\        P                  ! V\        P                  P!                  W.4      \        P                  P!                  W4      W0P"                  WEVV4	      pVP                  V4       Kx  	  V P                  P$                  P                  V4       V# r   )r   r  r  r  r   r   r   r(  r)  rv  r\  r   rw  r   r
   r  r*  r   r  )r   r  r  r  r  r  r  rt  ru  install_dir_namer  r{  rv  ret_datar|  rY  r  s   &&&&&&&&&        r   r  Interpreter.install_data_impl	  s     3=[%J\J\2]2];..cn&&t,''//$**5$$T*   HOOG$#zz|OH

5"'',,{"Erww||TdGo'&GX*,A OOA	  , 	

x(r   rd  strip_directoryexclude_filesz0.42.0c                	~    \         ;QJ d    R  V  4       F  '       g   K   RM	  RM! R  V  4       4      '       d   R# R# )c              3  `   "   T F$  p\         P                  P                  V4      x  K&  	  R # 5irA  r(  r)  r  r=  s   & r   r?  r  	  $     A^\]WX"''--PQBRBR\]   ,.TFcannot be absoluteNrB  r  s   &r   r  r  	  0    ccA^\]A^cccA^\]A^>^>^&:&hdh&hr   )r  r   r  r  exclude_directoriesc                	~    \         ;QJ d    R  V  4       F  '       g   K   RM	  RM! R  V  4       4      '       d   R# R# )c              3  `   "   T F$  p\         P                  P                  V4      x  K&  	  R # 5irA  r  r=  s   & r   r?  r  	  r  r  TFr  Nr  r  s   &r   r  r  	  r  r   c               (    V ^8  d   QhRRRRRRRR/# )	r   r)  r&  r7  r  r   z'kwtypes.FuncInstallSubdir'r   zbuild.InstallDirr   )r   s   "r   r   r  
  s+      (8  $?DTr   c                	   \        VR ,          4      \        VR,          4      3p\        P                  P                  V P                  P
                  V P                  V^ ,          4      p\        P                  P                  V4      '       d&   \        \        P                  ! V4      4      '       gI   \        P                  ! RRV P                  VR7       \        P                  ! RRV P                  RV4       V P                  VR,          4      pVR,          p\        V\         P"                  4      '       d   VP$                  p\&        P(                  ! V P                  V^ ,          VR,          VVVVR	,          V P                  VR
,          VR,          R7
      pV P&                  P*                  P-                  V4       V# )r  r  z#install_subdir with empty directoryr  rh  r  zAIt worked by accident and is buggy. Use install_emptydir instead.r  r  r  r  ru  )r  ru  )r  r(  r)  r*  r   r  r   r  rB  listdirr3   r   r   r4   r  r   r  r  r  r
   r  r   r   )	r   r)  r7  r   excluderY  r  	idir_nameidirs	   &&&&     r   r  Interpreter.func_install_subdir	  s`   " vo./V<Q5R1STd..994;;QPww}}V$$C

60B,C,C!!"GSWSbSbmqr(()NPXZ^ZiZi)lnrt;;F><RS=)	i!3!344!))IKKG=!$%OO}-"#45
7 	

&&t,r   c                    V ^8  d   QhRRRR/# )r   r'  r   r>  r   )r   s   "r   r   r  
  s     c c# cs cr   c                	2   V'       d   VR 8w  d   \         P                  P                  \         P                  P                  V P                  V P
                  V4      4      '       d   \        RV RV R24      hRV9   d   \        RV RV R24      hR# R# R# )r  zBuild subdir "z" in "z" exists in source tree.r  z" contains ..N)r(  r)  r  r*  r+  r   r.   )r   r'  r>  s   &&&r   validate_build_subdir!Interpreter.validate_build_subdir
  s    LC/ww~~bggll4+;+;T[[,WXX&~VF8Sk'lmm|#&~VF8S`'abb $ 0<r   rQ  z0.47.0,r  )r   configurationrV  rI  rG  r   r  )r  r  r  r  r  c                	    V R J d   R# R# )Tzmust be `false` if booleanNr   r  s   &r   r  r  E
  s    a4i&B&YUY&Yr   output_formatr<  json)r  r  r  r  
macro_namec               $    V ^8  d   QhRRRRRR/# )r   r)  r&  r7  r  r   zkwtypes.ConfigureFiler   )r   s   "r   r   r  L
  s.     ]B ]B(8 ]B@P ]B$9]Br   c                	T  a \        V3R  lRD 4       4      p\        V4      pV^ 8X  d   \        R4      hV^8X  d   \        RP                  ! V!  4      hV^8X  d   \        RP                  ! V!  4      hSR,          '       d   SR,          '       g   \	        R4      hV P                  SR	,          4      pSR
,          pSR,          pSR,          p	V P                  SR,          4      p
. pV
 F  p\        V\        P                  4      '       d]   VP                  VP                  V P                  P                  V P                  P                  4      4       V P                  V4       K  \        R4      h	  SR,          pV'       d`   \        P                   ! VR4      p\        P"                  ! V.V4      pV^ ,          pV	'       d    \        P"                  ! V	.V4      ^ ,          p	\$        P&                  P)                  V P*                  V4      pVV P,                  9   d   \$        P&                  P)                  V P*                  R4      pV RV P.                  P0                   2pRP                  VV P,                  V,          4      p\2        P4                  ! R\2        P6                  ! VR4      RVRV4       M#V P.                  P0                  V P,                  V&   SR,          pV P9                  VV4       \$        P&                  P;                  \$        P&                  P)                  V P*                  VV4      4      w  pp\$        P&                  P)                  V P                  P                  VV4      p\$        P<                  ! \$        P&                  P;                  V4      ^ ,          RR7       SR,          Ee4   SR,          p\        V\>        4      '       d   \@        PB                  ! RRV PD                  VR7       VPG                  4        F;  w  pp\        V\H        \J        \L        34      '       d   K)  \	        RV: RV: R24      h	  \N        PP                  ! V4      p\2        PR                  ! R \2        P6                  ! V4      R!4       \        V
4      ^8  d   \        R"4      hV
'       Ed   SR#,          p\        PT                  ! V^ ,          VVVVV PD                  4      w  ppV'       dH   R$P)                  R% \        V4       4       4      p\2        P4                  ! R&V R'V
^ ,           R(2VR7       V'       d   \$        P&                  PW                  V^ ,          4      p\@        PX                  ! V PD                  4      p \@        PZ                  ! V R)4      '       d   \2        P4                  ! R*V: R+2VR7       M"SR,,          p!\        P\                  ! VVVV!4       RVn/        EMSR,          Ee1   \        V
4      ^8  d%   \@        PB                  ! R-R.V PD                  VR7       \        P                   ! VV.4      pV	'       d=   \$        P&                  P)                  V P                  Pa                  4       V	4      p	WR/&   \        P"                  ! SR,          V4      p"\2        PR                  ! R \2        P6                  ! V4      R04       V"vp#pV Pc                  V#V3RRR1RR2\e        4       /R4      p$SR,          '       d   VR3,           p%SR#,          p\g        V%R4VR57      ;_uu_ 4       pVPi                  V$Pj                  4       RRR4       V'       d   \l        Pn                  ! V^ ,          V%4       \        Pp                  ! VV%4       V	'       d   \2        PR                  ! R6\2        P6                  ! V	4      4       \g        V	R7R57      ;_uu_ 4       p\s        VPu                  4       4      p&V&Pw                  V4      p'V' F  p(V P                  V(4       K  	  RRR4       MMSR,          '       d   \        V4      ^8w  d   \        R84      h\$        P<                  ! \$        P&                  P)                  V P                  P                  V P*                  4      RR7       \l        Px                  ! V^ ,          V4       SR9,          p)V)R:J d(   R;p)\z        PB                  ! R<R=V PD                  R>VR7       SR?,          e
   SR?,          MV)R;8g  p*V*'       d   V)'       g   \        R@4      hT)p+\        V+\|        P~                  4      '       d   V+P                  p+\        P                  P                  VV4      p,SRA,          p-V PN                  P                  P                  \N        P                  ! V,.V)V+W`PD                  V-RBRC7      4       \        P                  P                  V P*                  V4      #   + '       g   i     EL; i  + '       g   i     ELZ; i)Ec              3  H   <"   T F  pSV,          R9  g   K  Vx  K  	  R # 5i)N)NFr   )r>  r  r   s   & r   r?  2Interpreter.func_configure_file.<locals>.<genexpr>N
  s&      <$Hq"1I]: $Hs   "
"r  r  rV  zbMust specify an action with one of these keyword arguments: 'configuration', 'command', or 'copy'.zXMust not specify both {!r} and {!r} keyword arguments since they are mutually exclusive.z]Must specify one of {!r}, {!r}, and {!r} keyword arguments since they are mutually exclusive.r  z=configure_file: "capture" keyword requires "command" keyword.r  r   r  r*  r  z*Inputs can only be strings or file objectsr  NrE  r   z{}:{}zOutput fileTzfor configure_file() atz%overwrites configure_file() output atr'  r&  z'configure_file.configuration dictionaryr  rh  r  r  r  Configuringzusing configurationz6At most one input file can given in configuration moderI  r  c              3  8   "   T F  p\        V4      x  K  	  R # 5irA  )repr)r>  r   s   & r   r?  r  
  s     (T:SQa:Ss   zThe variable(s) z in the input file 'z2' are not present in the given configuration data.r  zVGot an empty configuration_data() object and found no substitutions in the input file z_. If you want to copy a file to the build dir, use the 'copy:' keyword argument added in 0.47.0r  z#multiple inputs in configure_file()r  r7  zwith commandr  r  ~rF  rH  zReading depfile:rG  z1Exactly one input file must be given in copy moder  Fr   z!configure_file install_dir: falser  z Use the `install:` kwarg insteadr  zJ"install_dir" must be specified when "install" in a configure_file is truer  	configure)r  	data_type)r  r  rV  )Dr  r   r-   r   r.   r  r  r   r   r   r   r  r   r  r  r]  get_filenames_templates_dictsubstitute_valuesr(  r)  r*  r   r  rt  linenor   r.  r   r  r  r3  r   r3   r   r   r   r   r   r   r
   r  r   do_conf_filebasenamer  r  dump_conf_headerusedget_scratch_dirr  r   rK  
writelinesr  r   copymodereplace_if_differentr!   	readlinesget_all_dependenciescopy2r4   r  r  r  from_built_filer  r  ).r   r)  r7  r   actionsnum_actionsr  fmtr  r*  r2  
inputs_absrF  r  r   r  ofile_rpathmesonbuildfilecurrent_call
first_callr'  
ofile_pathofile_fname	ofile_absconfr   r   file_encodingmissing_variablesconfdata_uselessvar_listifbaser  r  _cmdr  resdst_tmpr}  r  r~  r  r  r  cfiler  s.   &&&f                                          r   r  Interpreter.func_configure_file&
  sj   P  <$H < <'l!& (C D D A& (==CV(DEL(N O O A& (==CV(DEL(N O O )VI%6%6"#bcc;;F><RSX/# --fWo>
A!X]]++!!!//$2B2B2M2M262B2B2L2L#N O''**+WXX  !:::tLF00&6BGQZF"44gYGJggll4;;7$555WW\\$++}EN,-Qt/@/@/G/G.HIL 8S8ST_8`aJLL		+t(DF_am  pW  Yc  d7;7H7H7O7OD''4 n-""<8$&GGMM"'',,t{{LZ`2a$b![GGLL!1!1!;!;ZU	
BGGMM),Q/$? /"./*D$%%%%&OQY[_[j[juyz JJLDAq%a#sD)9::.RSTRWW{|}  |A  AB  CD D ) ..t4HH]DIIf$57LM6{Q*+cddv &z 2))*Q-D*-}dooO 4!#3 %#yy(T&AR:S(TTHLL*8*4HPQ TC CMQS $WW--jm<F#66tGB!//H== &HHNz R@&@ KOP
 $L1
)))T=*UDII*6{Q%%&KXW[WfWfquv :::	{SF'',,t'7'7'G'G'I7S&-{#--fY.?HDHH]DIIf$5~FJC$''d)2D'4PdPf(g(,.C i  #c/ &z 2'3??1LL, @OOJqM7;--iA+TYYw-?@'G44 /B22;?D#//4  $ 54  F^^:!#*+^__KKT%5%5%?%?MX\]LLA	2
 m$5=D(()Lh)-:\gkm'-i'8'D&#$RT**`b bI)U%7%788%--	MM11*kJE /KJJOO""5::ugtYVeVe:EQ\$^ _}},,T[[&AAO @?? 544s   9h"Ahh	h'	r_  c               $    V ^8  d   QhRRRRRR/# )r   r  r   r  r   r   zT.List[build.IncludeDirs]r   )r   s   "r   r   r  
  s'      3 Wf   sL r   c           	     	   \        W4      pV'       dX   V FQ  p\        V\        4      '       g   K  \        P                  ! V R 2W0P
                  RV: R2V P                  R7        M	  . pV EF\  p\        V\        P                  4      '       d   VP                  V4       K7  \        V\        4      '       Ed   VR8X  d   \        P                  P                  V4      P                  V P                  P                  4       4      '       d   \         P                  ! RRV P
                  RV P                  R7       \        P                  P#                  V\        P                  P%                  V P                  P                  4       V P&                  4      4      pVP                  V P)                  V.4      4       EKT  \+        R4      h	  V# )	z kwarg of type stringzUse include_directories(z	) insteadrh  r  z5Building absolute path to source dir is not supportedz0.45zUse a relative path instead.zRInclude directory objects can only be created from strings or include directories.)r   r   r   r3   r   r   rt  r
   r  r   r(  r)  rJ  rL  r   r
  r4   relpathr*  r   build_incdir_objectr-   )r   r   r  r  prospectivesr   r  rT  s   &&&&    r   r  Interpreter.extract_incdirs
  sf   &v3!a%%))SE1F*GXgXg,DQE*S^b^o^oq	 " -/A!U..//a As##/)bgg.>.>q.A.L.LTM]M]MlMlMn.o.o%001h171O:>:K:KM 277<<8H8H8W8W8Y[_[f[f+ghAd66s;<*+  A  A  r   	is_systemc               (    V ^8  d   QhRRRRRRRR/# )	r   r)  r&  r7  r  r   z 'kwtypes.FuncIncludeDirectories'r   build.IncludeDirsr   )r   s   "r   r   r    s2     F F-= FEY F)IFN_Fr   c                	B    V P                  V^ ,          VR,          4      # )r   r  )r  r  s   &&&&r   r  $Interpreter.func_include_directories  s      ''Q1DEEr   c               $    V ^8  d   QhRRRRRR/# )r   incdir_stringsr?  r  r   r   r  r   )r   s   "r   r   r  
  s'     A A+ A$ A[l Ar   c           	     	J   \        V\        4      '       g   \        R 4      hV P                  P	                  4       pV P                  P                  4       p\        P                  P                  W0P                  4      p\        P                  P                  W@P                  4      pV F  p\        \        V4      \        V4      4      '       d    \        \        P                  ! R4      4      h V P                  V P                  V4       \        P                  P                  WW4      p\        P                  P                  Wg4      p	\        P                  P)                  V4      '       d   K  \        P                  P)                  V	4      '       d   K  \        RV R24      h	  \*        P,                  ! V P                  W4      p
V
#   \         dK    \         P"                  ! RT P$                  R7       \'        \        P                  ! RT: R24      4        ELi ; i)zIs_system must be boolean.a                      Tried to form an absolute path to a dir in the source tree.
                    You should not do that but use relative paths instead, for
                    directories that are part of your project.

                    To get include path to any directory relative to the current dir do

                    incdir = include_directories(dirname)

                    After this incdir will contain both the current source dir as well as the
                    corresponding build dir. It can then be used in any subdirectory and
                    Meson will take care of all the busywork to make paths work.

                    Dirname can even be '.' to mark the current directory. Though you should
                    remember that the current source and build directories are always
                    put in the include directories by default so you only need to do
                    include_directories('.') if you intend to use the result in a
                    different subdirectory.

                    Note that this error message can also be triggered by
                    external dependencies being installed within your source
                    tree - it's not recommended to do this.
                    z&include_directories sandbox violation!rh  zF                        The project is trying to access the directory aG   which belongs to a different
                        subproject. This is a problem as it hardcodes the relative paths of these two projects.
                        This makes it impossible to compile the project in any other directory layout and also
                        prevents the subproject from changing its own directory layout.

                        Instead of poking directly at the internals the subproject should be executed and
                        it should set a variable that the caller can then use. Something like:

                        # In subproject
                        some_dep = declare_dependency(include_directories: include_directories('include'))

                        # In subproject wrap file
                        [provide]
                        some = some_dep

                        # In parent project
                        some_dep = dependency('some')
                        executable(..., dependencies: [some_dep])

                        This warning will become a hard error in a future Meson release.
                        zInclude dir r{  )r   r   r.   r   r
  rM  r(  r)  r*  r   r   rz   textwrapdedentvalidate_within_subprojectr-   r   r.  rt  r#  r  r
   r  )r   r  r  src_root
build_rootabsbase_srcabsbase_buildr  
absdir_srcabsdir_buildr   s   &&&        r   r  Interpreter.build_incdir_object
  s   )T**"#?@@##224%%335
ggll8[[9Z=AtAwX77&x 8 (  033DKKC2 k5J77<<9L77==,,RWW]]<5P5P&aS8H'IJJo  p dkk>E; , LL!ITXTeTef(// /GGHe L+  s   1GAH"!H"rJ  exe_wrappergdbtimeout_multiplierexclude_suites
is_defaultc               (    V ^8  d   QhRRRRRRRR/# )	r   r)  r&  r7  r  r   z'kwtypes.AddTestSetup'r   r   r   )r   s   "r   r   r  W  s1     W W(8 W WVl Wqu Wr   c                	j   V^ ,          p\         P                  ! RV4      f   \        R4      hRV9  d:   V P                  '       d   V P                  MV P                  P
                   RV 2p. pVR,           Fc  p\        V\        4      '       d   VP                  V4       K,  VP                  4       '       g   \        R4      hWVP                  4       ,          pKe  	  VR,          pV^ 8:  d&   \        RR	4      P                  V P                  4       VR
,          '       dL   V P                  P                  e$   \        V P                  P                  : R24      hW@P                  n        \        P                  ! WSR,          WsR,          VR,          4      V P                  P                  V&   R# )r   z0([_a-zA-Z][_0-9a-zA-Z]*:)?[_a-zA-Z][_0-9a-zA-Z]*Nz4Setup name may only contain alphanumeric characters.r   r'  z"Tried to use non-found executable.r)  z(add_test_setup() timeout_multiplier <= 0r   r+  zC is already set as default. is_default can be set to true only oncer(  r  r*  )r  	fullmatchr-   r   r
   r   r   r   r   r  r]  r3   r  test_setup_default_name	TestSetuptest_setups)r   r)  r7  r   
setup_namer'  r   r)  s   &&&&    r   r  Interpreter.func_add_test_setupM  sp    !W
<<JJW_&']^^j 04T__TZZE\E\^^_`j_klJ#%&&A!S!!""1%wwyy./STT}}. ' $$89"A8LPPQUQ`Q`a,zz11=*djj.P.P-S TU ,U V V1;JJ.-2__[QV-Yktymz=CDT=U.W

z*r   rD  c               (    V ^8  d   QhRRRRRRRR/# 	r   r)  r  r7  r  r   'kwtypes.FuncAddProjectArgs'r   r   r   )r   s   "r   r   r  u  s:     d d.B dJ^ d  iE d  JN dr   c                	~    V P                  WP                  P                  VR ,          ,          V^ ,          V4       R# ri  N)_add_global_argumentsr
   global_argsr  s   &&&&r   r  %Interpreter.func_add_global_argumentss  s2     	""4)?)?x@P)QSWXYSZ\bcr   rE  c               (    V ^8  d   QhRRRRRRRR/# r5  r   )r   s   "r   r   r  z  s:     i i3G iOc i  nJ i  OS ir   c                	~    V P                  WP                  P                  VR ,          ,          V^ ,          V4       R# r8  )r9  r
   global_link_argsr  s   &&&&r   r  *Interpreter.func_add_global_link_argumentsx  s2     	""4)D)DVHEU)VX\]^X_aghr   rG  c               (    V ^8  d   QhRRRRRRRR/# r5  r   )r   s   "r   r   r    s:     g g/C gK_ g  jF g  KO gr   c                	~    V P                  WP                  P                  VR ,          ,          V^ ,          V4       R# r8  )_add_project_argumentsr
   projects_argsr  s   &&&&r   r  &Interpreter.func_add_project_arguments}  s2     	##D***B*B6(CS*TVZ[\V]_efr   rI  c               (    V ^8  d   QhRRRRRRRR/# r5  r   )r   s   "r   r   r    s:     l l4H lPd l  oK l  PT lr   c                	~    V P                  WP                  P                  VR ,          ,          V^ ,          V4       R# r8  )rB  r
   projects_link_argsr  s   &&&&r   r  +Interpreter.func_add_project_link_arguments  s2     	##D***G*GxHX*Y[_`a[bdjkr   rH  c               (    V ^8  d   QhRRRRRRRR/# )	r   r)  r  r7  z(T.Tuple[T.List[dependencies.Dependency]]r   r6  r   r   r   )r   s   "r   r   r    s:     u u2F uNv u  A] u  bf ur   c           
     	b   VR ,          pVR,           F)  pWPP                   V,          9  g   K  \        RV R24      h	  \        P                  ! V^ ,          4       EFM  p\	        VP                  4       4      pVP                  4       R8H  pVP                  4        F  p	VR,           F  pV P                  P                   V,          V,          p
V	P                  V P                  P                  4       V P                  P                  4       4       F#  pVP                  V
P                  W4      4       K%  	  K  	  K  	  V P                  WP                   P"                  V,          Ws4       V P                  WP                   P$                  V,          VP'                  4       V4       EKP  	  R# )ri  languagezFadd_project_dependencies() called before add_language() for language "r  systemN)r   r/   r   get_leaf_external_dependenciesr   get_compile_argsr  get_include_dirsr   to_string_listr   r
  rM  rw  get_include_argsrB  r
   rC  rG  get_link_args)r   r)  r7  r   ry  r  r  r  system_incdirr   rK  r  s   &&&&        r   r  )Interpreter.func_add_project_dependencies  se    X&:&&D>>+66!$jkojppq"rss ' <<T!WEA 2 2 45L..0H<M'')":..D==22;?ED ! 0 01A1A1P1P1RTXTdTdTrTrTt u$++D,A,A$,VW !v / * ''jj.F.F{.SUaj''jj.K.KK.XZ[ZiZiZkmst Fr   c                    V ^8  d   QhRRRR/# )r   r7  r?  r   r   r   )r   s   "r   r   r    s     9 9[ 9T 9r   c                	   RpRpV EF\  pWB9   d)   \         P                  ! RV R2V P                  R7       K2  WC9   d)   \         P                  ! RV R2V P                  R7       K`  VR8X  d)   \         P                  ! RV R2V P                  R7       K  VR8X  d)   \         P                  ! RV R2V P                  R7       K  VR9   g   VP                  R4      '       d*   \         P                  ! R	V R2V P                  R7       EK  VP                  R
4      '       g   VP                  R4      '       g   EK6  \         P                  ! RV R2V P                  R7       EK_  	  R# )/W1zCConsider using the built-in warning_level option instead of using "r  rh  zAConsider using the built-in optimization level instead of using "z-Werrorz<Consider using the built-in werror option instead of using "z-gz;Consider using the built-in debug option instead of using "zDConsider using the built-in option for sanitizers instead of using "z-std=z/std:zSConsider using the built-in option for language standard version instead of using "N)rW  z/W2z/W3z/W4z/Wallz-Wallz-Wextra)z-O0z-O2z-O3z-Osz-Ozz/O1z/O2z/Os>   
-fsanitize
/fsanitize)z-fsanitize=z/fsanitize=)r   r.  rt  rL  )r   r7  warnargsr  r  s   &&   r   _warn_about_builtin_args$Interpreter._warn_about_builtin_args  sK   
 MJCbcfbggij&*&7&79`ad`eegh&*&7&79	![\_[``bc&*&7&79Z[^Z__ab&*&7&79 44Ge8f8fcdgchhjk&*&7&79 9((CNN7,C,Crsvrwwyz&*&7&79 9% r   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )r   r)  r  argsdictT.Dict[str, T.List[str]]r7  r?  r   r6  r   r   r   )r   s   "r   r   r    s;     B B*> BJb B$/B9UBZ^Br   c                	    V P                  4       '       d&   R VP                  P                   R2p\        V4      hV P                  ;'       g    V P
                  pV P                  WWcV4       R# )z
Function 'a  ' cannot be used in subprojects because there is no way to make that reliable.
Please only call this if is_subproject() returns false. Alternatively, define a variable that
contains your language-specific arguments and add it to the appropriate *_args kwarg in each target.N)r  r  r   r/   r  r  _add_arguments)r   r)  r^  r7  r   r=  frozens   &&&&&  r   r9  !Interpreter._add_global_arguments  sg     4 45 6$ $C c""))DDT-D-DDF&Ar   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )r   r)  r  r^  z%T.Dict[str, T.Dict[str, T.List[str]]]r7  r?  r   r6  r   r   r   )r   s   "r   r   r    s;     D D+? DKp D%0D:VD[_Dr   c                	    V P                   V9  d   / W P                   &   V P                  WV P                   ,          V P                  W44       R # rA  )r   ra  r  )r   r)  r^  r7  r   s   &&&&&r   rB  "Interpreter._add_project_arguments  s?    ??(*(*H__%D4??"; 44d	Dr   c               0    V ^8  d   QhRRRRRRRRR	R
RR/# )r   r)  r  r^  r_  args_frozenr   r7  r?  r   r6  r   r   r   )r   s   "r   r   r    s<     
; 
;#7 
;C[ 
;$(
;0;
;Ea
;fj
;r   c                	    V'       d&   R VP                   P                   R2p\        V4      hV P                  V4       VR,           F  pVP	                  V. 4      V,           W'&   K   	  R# )zTried to use 'zr' after a build target has been declared.
This is not permitted. Please declare all arguments before your targets.rK  N)r  r   r/   r[  rf  )r   r)  r^  rh  r7  r   r=  r  s   &&&&&&  r   ra  Interpreter._add_arguments  sg    #DNN$8$8#9 :] ]Cc""%%d+:&&D%\\$3d:HN 'r   r   c               (    V ^8  d   QhRRRRRRRR/# )	r   r)  r  r7  zHT.Tuple[T.Union[None, str, T.List['TYPE_var'], T.Dict[str, 'TYPE_var']]]r   r  r   r   r   )r   s   "r   r   r    s0     & &%9 &  BJ &!.&3G&r   c                	$   V^ ,          pVe   \         P                  ! RRV P                  VR7       \        P                  ! V4      pV'       d   \        RV 24      h\        V\        4      '       d{   \        ;QJ d*    R VP                  4        4       F  '       g   K   RM	  RM! R VP                  4        4       4      '       d%   \         P                  ! RR	V P                  VR7       \        WCR
,          VR,          4      # \        4       # )r   z environment positional argumentsr  rh  z"environment": c              3  V   "   T F  p\        V\        4      '       g   K  Vx  K!  	  R # 5irA  r  rm  s   & r   r?  /Interpreter.func_environment.<locals>.<genexpr>  s     -^A*UVX\J]aas   )
)TFz"List of string in dictionary valuer  r(  	separator)r3   r   r   r_   r  r.   r   r   rB  r   rx   r   )r   r)  r7  r   initr=  s   &&&&  r   r  Interpreter.func_environment  s    
 Aw!!"DhPTP_P_jno""4(C&'>??$%%##-^-^###-^-^*^*^%%&JHVZVeVeptu,T(3CVKEXYY#%%r   ri  c               (    V ^8  d   QhRRRRRRRR/# )	r   r)  r&  r7  r  r   r  r   r   r   )r   s   "r   r   r    s,     
 
$4 
<P 
Zg 
lo 
r   c                	J   V^ ,          p\         P                  P                  ! R.VR,          O5!  P                  RR4      p\         P                  P                  ! V!  P                  RR4      p\	        V^ ,          \
        P                  4      '       d   RV9  d   \
        P                  ! V4      # \	        V^ ,          \
        P                  4      '       dH   \         P                  P                  V^ ,          P                  V4      p\
        P                  ! Wg4      # V# )r   r   r  \/r  )	r(  r)  r*  r  r   r  r  r  r  )r   r)  r7  r   partsotherretr  s   &&&&    r   r  Interpreter.func_join_paths  s     QR,%),44T3?ggllE"**45eAh > >??DPUDU11#66a%"4"45577<<a 0 0%8D%%c00Jr   c                   V ^8  d   QhRR/# r%  r   )r   s   "r   r   r    s     " "T "r   c           
     	  < \         SV `  4        \        P                  ! R \        P                  ! \        \        V P                  P                  4      4      4      4       \        P                  ! V P                  4       \        P                  ! V P                  4       \        P                  ! V P                  4       V P                  4       '       g#   V P                  4        V P!                  4        R# R# )zBuild targets in project:N)r	  rX  r   r   r   r   r   r
   targetsr3   reportr   r4   r5   r  print_extra_warningsr   )r   r  s   &r   rX  Interpreter.run  s    ,diiC

@R@R<S8T.UV$//*  1T__-!!##%%'! $r   c                   V ^8  d   QhRR/# r%  r   )r   s   "r   r   r     s      d r   c                	    V P                   P                  P                  P                  4        F+  pVP	                  4       R 8X  g   K  V P                  4         R# 	  R# )clangN)r   r   r=  r   get_idcheck_clang_asan_lundef)r   r<  s   & r   r~   Interpreter.print_extra_warnings   sB    ((--446AxxzW$,,. 7r   c                   V ^8  d   QhRR/# r%  r   )r   s   "r   r   r    s     , , ,r   c                	   \        R 4      V P                  P                  9  d   R# \        R4      V P                  P                  9  d   R# V P                  P                  P                  R 4      '       d   V P                  P                  P                  R4      '       db   V P                  P                  P                  R4      p\        P
                  ! \        P                  ! RV R24      V P                  R7       R# R# R# )b_lundefNr|  z"                    Trying to use z sanitizer on Clang with b_lundef.
                    This will probably not work.
                    Try setting b_lundef to false instead.rh  )	r   r   r,  r  r   r.  r  r  rt  )r   r   s   & r   r  #Interpreter.check_clang_asan_lundef  s    Z (>(>>\"$--*@*@@MM""00<<&&44\BBMM**88FELL .##(' *;*> ? **	, C =r   c                	*  a aa S P                   P                  oS P                   P                  o\        V\        P
                  4      '       d'   R  VV V3R llp\        V4      pV! V4      '       d   R# R VV V3R llp\        P                  P                  W4      pVS P                  9   d   R# \        P                  P                  \        P                  P                  SV4      4      pV! V4       S P                  P                  V4       R# )c                    V ^8  d   QhRRRR/# )r   fpathrz   r   r   r   )r   s   "r   r   <Interpreter.validate_within_subproject.<locals>.__annotate__#  s       $ r   c           
       < \        4       pSP                  P                   F@  pVP                   F-  pVP	                  \        VP                  SS4      4      4       K/  	  KB  	  SP                  P                   Uu. uF"  p\        \        SVP                  4      4      NK$  	  ppW9   d   R # V F&  p\        V 4      P                  V4      '       g   K%   R # 	  R# u upi )TF)r  r
   r  r  rX  rz   r  r   r   source_subdirrL  )r  installablefilesr  r\  installabledirsrZ  r   rY  s   &    r   validate_installable_fileIInterpreter.validate_within_subproject.<locals>.validate_installable_file#  s    03 AYY(,,T!//&(2S-TU ' ) PTzzOfOf"gOf!3tFAOO'D#EOf"g,(A5z,,Q//# )  #hs   >(CNc                    V ^8  d   QhRRRR/# )r   normr   r   r   r   )r   s   "r   r   r  6  s     	} 	} 	} 	}r   c                  < \         P                  P                  V 4      '       d   R pMRp\        P                  SP
                  9   d   \        SV 4      '       d   R# \        SV 4      '       g   R# \         P                  P                  SSP                  4      p\        W 4      '       g2   \         P                  P                  V 4      p\        RV RV R24      h\         P                  P                  VSP                  4      p\        W@4      '       d2   \         P                  P                  V 4      p\        RV RV R24      hR# )	directoryr{  Nz!Sandbox violation: Tried to grab r   z outside current (sub)project.z from a nested subproject.)r(  r)  r  r   r   r  r   r*  r  r  r-   r   )r  	inputtyper  r  r   rZ  r   rY  s   &    r   do_validate_within_subprojectMInterpreter.validate_within_subproject.<locals>.do_validate_within_subproject6  s   ww}}T""'	"	(HHDL\L\\aopxz~aa!&$//
 77<<0@0@AL!,55ww''-*-NykYZ[_Z``~+  A  AWW\\,8K8KLNn33ww''-*-NykYZ[_Z``z+{|| 4r   )r   r  r  r   r  r  rz   r(  r)  r*  r  r  rX  )r   r   r\  r  r  r  rZ  rY  s   f&&   @@r   r  &Interpreter.validate_within_subproject  s    !!,,##--eU;;<<  ;D )..	} 	}2 V+D(((wwrww||FE:;%d+  'r   c               $    V ^8  d   QhRRRRRR/# )r   r  T.List['mesonlib.FileOrString']r,  r   r   zT.List['mesonlib.File']r   )r   s   "r   r   r  X  s)      E  E/N  EX\  Eh  Er   c                	    R # rA  r   r   r  r,  s   &&&r   r  #Interpreter.source_strings_to_filesW  s	     BEr   c               $    V ^8  d   QhRRRRRR/# )r   r  r  r,  r   r   r   )r   s   "r   r   r  [  s-      N  N/N  NX\  N  jI  Nr   c                	    R # rA  r   r  s   &&&r   r  r  Z  s	     KNr   c                    V ^8  d   QhRRRR/# )r   r  z<T.List[T.Union[mesonlib.FileOrString, build.GeneratedTypes]]r   z4T.List[T.Union[mesonlib.File, build.GeneratedTypes]]r   )r   s   "r   r   r  ^  s$      j  j/k  j  qe  jr   c                	    R # rA  r   )r   r  s   &&r   r  r  ]  s	     gjr   c               $    V ^8  d   QhRRRRRR/# r   r  zT.List['SourceInputs']r,  r   r   T.List['SourceOutputs']r   )r   s   "r   r   r  a  s    {{/E{t{_v{r   c                	    R # rA  r   r  s   &&&r   r  r  `  s    x{r   c               $    V ^8  d   QhRRRRRR/# )r   r  zT.List[SourcesVarargsType]r,  r   r   r  r   )r   s   "r   r   r  d  s    /ISWczr   c                	    R # rA  r   r  s   &&&r   r  r  c  s    |r   c               $    V ^8  d   QhRRRRRR/# r  r   )r   s   "r   r   r  f  s#        /E  t  _v  r   c           
     6   \         P                  ! V4       \        V\        4      '       g   V.p. pV EF  p\        V\        4      '       Ed   VP                  R4      '       d   \        V: R24      hV'       gj   VP                  V P                  P                  4       4      '       d;   VP                  V4       \        P                  ! RV: R2V P                  R7       K  V P                  V P                  V4       VP                  \         P                   P#                  V P                  P$                  V P                  V4      4       EK  \        V\         P                   4      '       d   VP                  V4       EKS  \        V\&        P(                  \&        P*                  \&        P,                  \&        P.                  \&        P0                  \&        P2                  34      '       d   VP                  V4       EK  \5        RV: R24      h	  V# )a  Lower inputs to a list of Targets and Files, replacing any strings.

:param sources: A raw (Meson DSL) list of inputs (targets, files, and
    strings)
:raises InterpreterException: if any of the inputs are of an invalid type
:return: A list of Targets and Files
r   z. ends with a space. This is probably an error.zSource item zp cannot be converted to File object, because it is a generated file. This will become a hard error in meson 2.0.rh  zSource item is z& instead of string or File-type object)r   r  r   r   r   r  r   rL  r   rM  r   r   r.  rt  r  r   r   r  r  r
   r  r  r  r  r  r  r-   )r   r  r,  resultsr\  s   &&&  r   r  r  f  s    	&&w/'4((iG+-A!S!!::c??(A50^)_``!,,t/?/?/M/M/O"P"PNN1%LL<u 5O "OY]YjYjl 33DKKCNN8==#A#A$BRBRB]B]_c_j_jlm#noAx}}--q!A 3 3U5F5F % 7 79K9K % 6 68O8O Q R R q!*_QE BH ,H I I% ( r   c                    V ^8  d   QhRRRR/# )r   r  r   r   r   r   )r   s   "r   r   r    s     	C 	C 	C 	Cr   c                	    V P                  R 4      '       d   \        R4      hV P                  R4      '       d   RV 9  d   \        R4      hV \        P                  9   d   \        RV  R24      hR# )zmeson-internal__zcTarget names starting with 'meson-internal__' are reserved for Meson's internal use. Please rename.r  r  zvTarget names starting with 'meson-' and without a file extension are reserved for Meson's internal use. Please rename.zTarget name 'z6' is reserved for Meson's internal use. Please rename.N)rL  r.   r   FORBIDDEN_TARGET_NAMES)r  s   &r   r1  &Interpreter.validate_forbidden_targets  s    ??-.." $N O O??8$$D" $[ \ \8222"]4& 9B $B C C 3r   c               $    V ^8  d   QhRRRRRR/# )r   r  r   tobjzbuild.Targetr   r   r   )r   s   "r   r   r    s&     -K -Ks -K, -K4 -Kr   c           	     	   V P                   P                  R 8X  d   \        R4      hVR8X  d   \        R4      hVP                  4       R8X  d   \        R4      h\	        V4      '       d   \
        P                  P                  V P                  \
        P                  P                  V4      ^ ,          4      p\
        P                  P                  \
        P                  P                  V P                  V4      4      '       d'   \        \        P                  ! RV RV R24      4      hVP                  4       pV P!                  WA4       V P#                  V4       VP%                  4       pVP'                  4       pW3pWPP(                  P*                  9   d   \-        RV R	24      h\/        V\(        P0                  4      '       dW   WpP(                  P2                  9   d=   \4        P6                  ! R
VP                   R2RV P8                  V P:                  R7       \/        V\(        P<                  4      '       dI   V P?                  VP@                  RVPB                  4       VPE                  4        V PG                  V4       W P(                  P*                  V&   \/        V\(        P0                  4      '       d'   V P(                  P2                  PI                  V.4       WPPJ                  PL                  9  dF   \O        \P        PR                  ! 4       4      PU                  4       V PJ                  PL                  V&   R# R# )r}  zOInstall-only backend cannot generate target rules, try using `--backend=ninja`.r   zTarget name must not be empty.z0Target name must not consist only of whitespace.z                    Target "z," has a path segment pointing to directory "z". This is an error.
                    To define a target that builds in that directory you must define it
                    in the meson.build file in that directory.
            zTried to create target "z,", but a target of that name already exists.z*multiple executables with the same name, "z/", but different suffixes in the same directoryrr  rh  TN)+r   r  r-   stripr   r(  r)  r*  r   r  r  r+  r.   r  r  get_build_subdirr  r1  r  get_builddirr
   r|  r/   r   r  targetnamesr3   r   r   rt  r  rF  missing_languagesry  process_compilers_lateadd_stdlib_infor  r   target_guidsr   uuiduuid4upper)r   r  r  pathsegr'  idnamer   namedirs   &&&     r   r  Interpreter.add_target  su   <<&&'xyy2:&'GHH::<2&'YZZggll4;;d0CA0FGGww~~bggll4+;+;WEFF&x <!F"Nwi X8 (   ,,.""<6''- ""$.ZZ''' 8>jklldE,,--'ZZ=S=S2S!!$Ntyyk  ZI  #J")4??TEVEVX dE--..t55tT=M=MN'')  &%)

6"dE,,--JJ""))7)433314TZZ\1B1H1H1JDMM&&v. 4r   c               (    V ^8  d   QhRRRRRRRR/# r  r   )r   s   "r   r   r    s6     +N +N)9 +NAa +Nkz +N  @S +Nr   c                	   V P                  WV\        P                  4      pV P                  WV\        P                  4      pV P                  P
                  P                  \        R V P                  R7      4      pVR8X  dD   V P                  P
                  P                  \        RV P                  R7      4      pVR8X  d   RpV P                  P                  R8X  d   RpM~VP                  4       '       d   RpMe\        ;QJ d*    R VP                  4        4       F  '       g   K   R	M	  RM! R VP                  4        4       4      '       d   RpMVP                  pV'       d   VP                  P!                  \        P"                  ! WDP$                  VP&                  . 4      4       . Vn        . Vn        VP(                  P                  4        UU	u/ uF  w  rV\(        P*                  9   g   K  WbK   	  up	pVn        VP-                  V4       VP/                  V4       \        P0                  ! WEV4      # u up	pi )
default_both_librariesr  autodefault_librarybothrC  xcodeFc              3  \   "   T F"  w  rVP                  R4      ;'       d    Tx  K$  	  R# 5i)static_argsN)r  shared_args)r  )r>  r   r   s   &  r   r?  3Interpreter.build_both_libraries.<locals>.<genexpr>  s'     ]nda:;AAAns   *,T)rO  r
   r  r  r   r,  r  r   r   r   r  	uses_rustrB  r   picr  r   r  r  	generatedr   clink_langs
set_static
set_sharedr  )
r   r)  r7  r   
shared_lib
static_libpreferred_libraryreuse_object_filesr   r   s
   &&&&      r   r   Interpreter.build_both_libraries  s   &&t65;N;NO
&&t65;N;NO
 MM22@@Kcptpp  BA  B& $ 6 6 D DYO`mqm|m|E} ~ F*$,!<<' "'!!## "'S]flln]SSS]flln]]]!&!+
 %%e&<&<ZI[I[]g]q]qsu&vw!#J#%J  6@5I5I5O5O5Q#p5QTQUVZcZoZoUoDAD5Q#pJ  	j)j)"":;LMM $qs   I9Ic               $    V ^8  d   QhRRRRRR/# )r   r)  r&  r7  r  r   r  r   )r   s   "r   r   r    s)     
] 
]"2 
]:Z 
]ds 
]r   c                	   V P                   P                  P                  \        R V P                  R7      4      p\        V\        4      '       g   Q R4       hVR8X  d7   V P                  W\        P                  ! RV4      \        P                  4      # VR8X  d7   V P                  W\        P                  ! RV4      \        P                  4      # VR8X  d   V P                  WV4      # \        RV R	24      h)
r  r  r3  rC  r  rD  r  r  zUnknown default_library value: r  )r   r,  r  r   r   r   r   rO  r  r  r
   r  r  r  r-   )r   r)  r7  r   r  s   &&&& r   r  Interpreter.build_library  s    --00>>yIZgkgvgv?wx/3//;;/h&$$T8OQW1XZ_ZmZmnn($$T8OQW1XZ_ZmZmnn&,,T@@&)HHYYZ'[\\r   c                    V ^8  d   QhRRRR/# )r   rawrP  r   z+T.Tuple[T.List[mesonlib.File], T.List[str]]r   )r   s   "r   r   r    s     " "'D "It "r   c                x   . p. p\         P                  ! V P                  P                  4       V P                  P	                  4       4      pV Fg  p\        V\         P                  4      '       d4   VP                  V4       VP                  VP                  V4      4       KV  VP                  V4       Ki  	  W#3# )a   Convert raw target arguments from File | str to File.

This removes files from the command line and replaces them with string
values, but adds the files to depends list

:param raw: the raw arguments
:return: A tuple of file dependencies and raw arguments
)	r   r  r   r
  rM  r   r   r   rel_to_builddir)r   r  r.  r7  build_to_sourcer  s   &&    r   __convert_file_argsInterpreter.__convert_file_args  s     /1"**4+;+;+J+J+L+/+;+;+I+I+KM A!X]]++##A&A--o>?A  !!r   c                    V ^8  d   QhRRRR/# )r   r   z*T.Dict[str, T.List[mesonlib.FileOrString]]r   r   r   )r   s   "r   r   r    s     + +.X +]a +r   c                    VP                  R. 4      p\        P                  ! \        4      p\        P
                   F4  pV P                  W R2,          4      w  rVWcV&   VP                  V4       K6  	  W1R&   R# )a"  Convert split language args into a combined dictionary.

The Meson DSL takes arguments in the form `<lang>_args : args`, but in the
build layer we store these in a single dictionary as `{<lang>: args}`.
This function extracts the arguments from the DSL format and prepares
them for the IR.
r.  _argslanguage_argsN)r  r   r   r   r   all_languages_Interpreter__convert_file_argsrw  )r   r   r  new_argsr{  r  r7  s   &&     r   __process_language_args#Interpreter.__process_language_args  sm     nb14?4K4KD4Q((A11&3e2EFJDQKHHTN ) #+r   c               4    V ^8  d   QhRRRRRRRRRR	R
RRR/# )r   abiz T.Optional[Literal['c', 'rust']]
crate_typezT.Optional[build.RustCrateType]default_rust_typezbuild.RustCrateTypedefault_c_typetypenamer   extra_valid_typesz&T.Optional[T.Set[build.RustCrateType]]r   r   )r   s   "r   r   r  &  sO      > %D,? *= IL -S	
 2r   c           	        V e   Ve   \        R4      hV R8X  d   TpV# TpV# Vee   VR8X  d   TpW#0T;'       g    \        4       ,          pW9  d7   RP                  R \        V4       4       4      p\        RV RV RV R	24      h V# TpV# )
aj  Handle the interactions between the rust_abi and rust_crate_type keyword arguments.

:param abi: Is this using Rust ABI or C ABI
:param crate_type: Is there an explicit crate type set
:param default_rust_type: The default crate type to use for Rust ABI
:param default_c_type: the default crate type to use for C ABI
:param typename: The name of the type this argument is for
:param extra_valid_types: additional valid crate types, defaults to None
:raises InvalidArguments: If the crate_type argument is set, but not valid
:raises InvalidArguments: If both crate_type and abi are set
:return: The finalized crate type
z3rust_abi and rust_crate_type are mutually exclusivers  libr  c              3  .   "   T F  pR V R 2x  K  	  R# 5i)r  Nr   )r>  r<  s   & r   r?  /Interpreter._handle_rust_abi.<locals>.<genexpr>A  s     $K7J!q1X7Js   zCrate type for z must be one of z, but got "r  )r.   r  r*  r  )r  r  r  r  r  r  r  choicess   &&&&&&  r   _handle_rust_abiInterpreter._handle_rust_abi%  s    & ?%&'\]].1Vm*J  BPJ  #U".
,=ARA[A[VYV[\K,**$Kvk7J$KK&
BRSZR[[fgqfrrs'tuu -
  +Jr   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )r   r)  r&  r7  r  r   r  targetclasszT.Type[build.Executable]r   r  r   )r   s   "r   r   r  H  s;     q q!1 q9Y q/q>Vq[kqr   c                	    R # rA  r   r   r)  r7  r   r  s   &&&&&r   rO  Interpreter.build_targetG  s    mpr   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )r   r)  r&  r7  r  r   r  r  zT.Type[build.StaticLibrary]r   r  r   )r   s   "r   r   r  L  ;     z z!1 z9Y z2zA\zatzr   c                	    R # rA  r   r  s   &&&&&r   rO  r  K      vyr   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )r   r)  r&  r7  r  r   r  r  zT.Type[build.SharedLibrary]r   r  r   )r   s   "r   r   r  P  r  r   c                	    R # rA  r   r  s   &&&&&r   rO  r  O  r  r   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )r   r)  r&  r7  r  r   r  r  zT.Type[build.SharedModule]r   r  r   )r   s   "r   r   r  T  s;     w w!1 w9Y w1w@Zw_qwr   c                	    R # rA  r   r  s   &&&&&r   rO  r  S  s    svr   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )r   r)  r&  r7  r  r   r  r  zT.Type[build.Jar]r   r  r   )r   s   "r   r   r  X  s;     \ \!1 \9Y \(\7H\MV\r   c                	    R # rA  r   r  s   &&&&&r   rO  r  W  s    X[r   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )r   r)  r&  r7  r  r   zlT.Union[kwtypes.Executable, kwtypes.StaticLibrary, kwtypes.SharedLibrary, kwtypes.SharedModule, kwtypes.Jar]r  zjT.Type[T.Union[build.Executable, build.StaticLibrary, build.SharedModule, build.SharedLibrary, build.Jar]]r   zbT.Union[build.Executable, build.StaticLibrary, build.SharedModule, build.SharedLibrary, build.Jar]r   )r   s   "r   r   r  [  sD     P P!1 P9Y P JP #MP }Pr   c                	   V\         P                  \         P                  \         P                  \         P                  \         P
                  09  d,   \        P                  ! R \        V4      4       \        R4      hVP                  4       pVw  rVVR,          pVP                  R4      R8X  d   \        P                  pWcR,          ,           p\        ;QJ d    R V 4       F  '       g   K   RM	  RM! R V 4       4      '       d%   \        P                   ! R	R
V P"                  RV4       \        ;QJ d    R V 4       F  '       g   K   RM	  RM! R V 4       4      '       d%   \        P                   ! RR
V P"                  RV4       V Uu. uF7  p\%        V\         P&                  \         P(                  34      '       d   K5  VNK9  	  ppV P+                  V4      pVR,          p	\-        VR4      VR&   \.        P0                  ! V P+                  VR,          4      4      VR&   V P3                  \4        P6                  P9                  V P:                  V P<                  4      V4       V P?                  V4       V\         P                  J d   \@        PB                  ! RV4      p\D        PF                  R0,
           F`  p
V PI                  VP                  V
 R2. 4      4      w  rVR,          V
,          PK                  V4       VR,          PK                  V4       Kb  	  V PM                  VR,          VR,          RRVPN                  4      VR&   EM$V\         P                  J d   \@        PB                  ! RV4      p\D        PF                  R0,
           F`  p
V PI                  VP                  V
 R2. 4      4      w  rVR,          V
,          PK                  V4       VR,          PK                  V4       Kb  	  V PM                  VR,          VR,          RRVPN                  R0R7      VR&   MIV\         P                  J d6   \@        PB                  ! RV4      pVR,          R;9  d   \Q        R"4      hR!VR&   V\         P
                  JEd=   V PS                  Wd4       V PU                  VR#4      VR#&   . p\V        PX                  ! VR$,          ;'       g    . VR%,          ;'       g    . 4       F  pVf   K	  \4        P6                  P[                  \4        P6                  P9                  V P\                  P^                  V P<                  V4      4      '       d   Km  VPa                  \4        P6                  P9                  V P<                  V4      4       K  	  V'       d*   \Q        R&Pc                  R'P9                  V4      4      4      hVPe                  4        UUu/ uF!  w  rWPf                  R0,          9   g   K  WbK#  	  ppp. p\         Ph                  ! 4       pV F?  p\%        V\         Ph                  4      '       d   VV,           pK.  VPa                  V4       KA  	  V'       g   R pEMVPj                  Pm                  4        F  p\o        4       pV F  p\%        V\        4      '       d"   \4        P6                  Pq                  V4      .pM>\%        V\.        Pr                  4      '       d   VPt                  .pMVPw                  4       pVPy                  V4      pV'       d4   \P        Pz                  ! R(R'P9                  \}        V4      4       2VR)7      hVP                  V4       K  	  K  	  V PU                  VR*R+7      VR,&   V\         P                  J Ed
   \@        PB                  ! RV4      pVR-,          e8   VR.,          e   \P        Pz                  ! R/VR)7      hVR-,          '       d   R0VR.&   VR.,          f   R1VR.&   VR2,          '       d9   VR3,          RJ d&   \        P                   ! R4R5V P"                  R6VR77       RVR3&   M'VR3,          '       d   VR2,          RJ d   \Q        R84      hVR3,          f   RVR3&   \%        VR2,          \        4      '       d   R VR2&   V! WPP<                  V P"                  VVVV	V P\                  V PD                  V,          V4
      pV	'       d9   VP                  4       '       d#   \        P                   ! R9R:V P"                  4       V P                  VV4       RV nE        V# u upi u uppi )<zUnknown target type:zUnreachable coderi  r  z
proc-macror  c              3  V   "   T F  p\        V\        P                  4      x  K!  	  R # 5irA  )r   r
   r  r>  r\  s   & r   r?  +Interpreter.build_target.<locals>.<genexpr>n  s      AAz!U..//rA  TFz4passing references to built targets as a source filer  zpConsider using `link_with` or `link_whole` if you meant to link, or dropping them as otherwise they are ignored.c              3  V   "   T F  p\        V\        P                  4      x  K!  	  R # 5irA  )r   r
   r  r  s   & r   r?  r  r  s      Fgz!U3344grA  zpassing object files as sourceszUPass these to the `objects` keyword instead, they are ignored when passed as sources.r  r   r  r  r   r   r  r.  r  rlib	staticlibr  r   dylibr  )r  r  Nbinz'Crate type for executable must be "bin"r  c_pchcpp_pchz(The following PCH files do not exist: {}r  z+Conflicting sources in structured sources: r(  r  r  r_  gui_appwin_subsystemzZExecutable got both "gui_app", and "win_subsystem" arguments, which are mutually exclusivewindowsr&  implibexport_dynamicz,implib overrides explicit export_dynamic offrr  zCDo not set ths if want export_dynamic disabled if implib is enabledrh  zM"implib" keyword" must not be false if "export_dynamic" is set and not false.zobjects in Rust targetsz1.8.0>   Nr  )Fr
   r  r  r  r  r  r   rS  r   r
  rV  rf  r   rn  rB  r5   r   r   r   r  r  r  r   r   unique_listcheck_sources_existr(  r)  r*  r+  r   #_Interpreter__process_language_argsr  r  r   r  r  rw  r  r  r.   check_for_jar_sourcesr  	itertoolschainr,  r   r  r   r   r   known_kwargsr  r  r   r  r  r   r\  get_outputsintersectionr,  r  r  r4   r   r  r3   r  r  )r   r)  r7  r   r  r  r  ry  r\  objsr  r  missingeachr   r   srcsstructr  rF  rK  	conflictsr>  s   &&&&&                  r   rO  r  [  s    u//1D1DeFXFXZ_ZmZmotoxoxyyJJ-s;/?@122 X&::'(L8 (--K9--3AA333AAAA$$%[]dfjfufu &X%)+ 3FgF333FgFFF$$%FQUQ`Q`%|%)+
 & Vg$Q):):E<R<R(ST 1g V..w7i !0!H~ ( 4 4T5Q5QRXYfRg5h i}  d.>.>!LgV$$V,%---VV3V<F!//6(::!55fjjD6AVXZ6[\
'-44T:~&--d3 ; )-(=(=z"F+<$=v{T_ThTh)jF$% E///VV3V<F!//6(::!55fjjD6AVXZ6[\
'-44T:~&--d3 ; )-(=(=z"F+<$=wR]RfRf#/. )> )2F$% E,,,VV0&9F'(=&'PQQ(-F$%eii'&&w<&*&:&:6?&SF?##%G!w(=(=2vi?P?V?VTVW#77>>"'',,t7G7G7R7RTXT_T_ae*fggrww||DKK'FG X &'Q'X'XY]YbYbcjYk'lmm $*<<>g>41Q:R:RVeUf:f5f$!$>g')6;6M6M6OA!U4455!A	  F
 ^^**,&)eA!!S))WW--a01#Ax}}55WWIMMO ' 4 4Q 7I .88I$))TZ[dTeJfIgh!%' ' NN1%  -" )-(<(<VS[(<(\$%%***VV0&9Fi ,/*6*44t!# # )$$.7F?+o&.*3'h*+u4%001_ahjnjyjy1v:>@ ,0'(())(#u,*+z{{&'/+0'(&*D11#'x T;;dTZ\`!--t~~k/JFTF$$&&!!";WdooVf%#' gV^ hs   2eee>ec                	    VP                   P                  4        FU  pV P                  P                  VP                  ,          P                  VR 4      pV'       g   KD  VP                  V4       KW  	  R # rA  )r   rp  r
   rw  ry  rf  add_deps)r   r>  r{  r~  s   &&  r   r  Interpreter.add_stdlib_info  sS    !!&&(A**$$V%7%78<<QECs$ )r   c                	    V Fn  p\        V\        4      '       g   K  \        P                  P	                  W4      p\        P                  P                  V4      '       d   Ka  \        R V R24      h	  R# )z&Tried to add non-existing source file r  N)r   r   r(  r)  r*  r,  r-   )r   r   r  r\  r\  s   &&&  r   r  Interpreter.check_sources_exist  sY    Aa%%GGLL+E77>>%((*-STUSVVW+XYY r   c           
     	   V F  p\        V\        \        P                  34      '       dT   \        P
                  ! V4      '       d8   \        R VP                   RV R\        P                  P                   R24      h\        V\        P                  4      '       g   K  V P                  VP                  4       V4       K  	  R# )zBuild target of type "z" cannot build java source: "z". Use "z
" instead.N)r   r   r   r   r   is_javar.   r  r
   r  r  r  as_list)r   r  r  r\  s   &&& r   r  !Interpreter.check_for_jar_sources  s    A!c8==122y7H7H7K7K&)?@T@T?UUrstruu}  D  H  H  Q  Q  ~R  R\  (]  ^  ^Au6677**199;D	 r   c                   V ^8  d   QhRR/# )r   r   r   r   )r   s   "r   r   r    s     % %t %r   c                	     V P                   R 8g  # r  r  r!  s   &r   r  Interpreter.is_subproject  s    "$$r   rq  c               (    V ^8  d   QhRRRRRRRR/# )	r   r)  r&  r7  zT.Tuple[str, object]r   r  r   r   r   )r   s   "r   r   r  	  s,     : :&6 :>R :\i :nr :r   c                	    Vw  rE\         P                  P                  V4      f   \        RV,           4      hV P	                  WERR7       R # )NzInvalid variable name: T)	holderify)r   IDENT_REr.  r/   rq  )r   r)  r7  r   varnamer   s   &&&&  r   r  Interpreter.func_set_variable  sF    
 %%g.67'ABB'D9r   r]  c               (    V ^8  d   QhRRRRRRRR/# )	r   r)  r&  r7  z3T.Tuple[T.Union[str, Disabler], T.Optional[object]]r   r  r   z
'TYPE_var'r   )r   s   "r   r   r    s2     R R&6 R>q R"/R4>Rr   c                	    Vw  rE\        V\        4      '       d   V#  V P                  V,          #   \         d    Te   T P	                  T4      u #  Mi ; i\        RT R24      h)NzTried to get unknown variable "r  )r   r1   rb  rs  
_holderifyr-   )r   r)  r7  r   r:  r  s   &&&&  r   r  Interpreter.func_get_variable  sr     !gx((N	1>>'** 	1#x00 $	1 #%DWIR#PQQs   1  AArg  c               (    V ^8  d   QhRRRRRRRR/# )	r   r)  r&  r7  r  r   r  r   r   r   )r   s   "r   r   r  "  s+     ) )%5 )\ )S` )ei )r   c                	.    V^ ,          V P                   9   # r  ra  r  s   &&&&r   r  Interpreter.func_is_variable   s     Aw$..((r   rx  c               (    V ^8  d   QhRRRRRRRR/# )	r   r)  r&  r7  r  r   r  r   r   r   )r   s   "r   r   r  (  s1     X X(8 X XVc Xhl Xr   c                	p    V^ ,          p V P                   V R#   \         d    \        RT R24      hi ; i)r   z!Tried to unset unknown variable "r  N)rb  rs  r-   )r   r)  r7  r   r:  s   &&&& r   r  Interpreter.func_unset_variable%  sF     q'	Xw' 	X&)J7)SU'VWW	Xs    5c                    V ^8  d   QhRRRR/# )r   r   r   r   r   r   )r   s   "r   r   r  0  s     E E*< E Er   c                	    V P                  R R4      p\        V\        4      '       g   \        R4      hV'       d   \        P
                  # \        P                  # )ri  Fz'Argument to "native" must be a boolean.)rf  r   r   r.   r   rn  rl  )r   ri  s   & r   r  %Interpreter.machine_from_native_kwarg/  sD    He,&$''"#LMM&,}""D-2D2DDr   rf  c               (    V ^8  d   QhRRRRRRRR/# )	r   r)  r&  r7  zT.Tuple[object]r   r  r   r   r   )r   s   "r   r   r  9  s+     - -%5 -_ -Vc -hl -r   c                	0    \        V^ ,          \        4      # r  )r   r1   r  s   &&&&r   r  Interpreter.func_is_disabler6  s     $q'8,,r   rn  c               $    V ^8  d   QhRRRRRR/# )r   r7  z.T.Tuple[int, T.Optional[int], T.Optional[int]]r   r   r   zP_OBJ.RangeHolderr   )r   s   "r   r   r  ?  s-     P P%S P]o P  uF Pr   c                	    Vw  rEpVf   Tp^ pVf   ^pV^ 8  d   \        R4      hWT8  d   \        R4      hV^8  d   \        R4      h\        P                  ! WEW`P                  R7      # )Nzstart cannot be negativezstop cannot be less than startzstep must be >=1r  )r-   r  RangeHolderr   )r   r)  r7  r   startstopsteps   &&&&   r   r  Interpreter.func_range<  sw     !T <DE<D19&'ABB<&'GHH!8&'9::  dOOr   )r  r   r   r
   r~   r   r  r  r   r  r  r  r   r  r   r  r   r  r  r  )	Nr   r   r   NNNNN)F)NN)NNNN)NFN>   r*  r  cmake@>   r<  r  r=  )r_  Nr  rA  )r   r   r   r   r   r"  r1  r  r  r  r  r  r/  r<  rC  r]  rc  r  r&   r   r%   rn   r.  r]   r2   r  r(   r  r'   r$   r"   r   rb   r^   rX   rg   rh   rq   r   r   rt   rv   r
   r  r  r   r  r  r  r   r   r  r_   r  r  r  rW   r  r  r  rO  r4  r5  r6  r  r   r  r  r   r  r  r  r*   r  r  r3   objectr  r  r   r  r  r  r  rw   r  rF  r7  r1  rU  r`  rf  rk  rr  rv  r   rl  r  r  r  r  rl   r  rY   r  r  r  r)   known_exe_kwargsrr   rR   r  known_stlib_kwargsrs   r  known_shlib_kwargsro   r  known_library_kwargsrT   r+   r  known_shmod_kwargsrp   r  r  known_jar_kwargsr  r  r  r  rS   r  r6   known_build_target_kwargsrJ   r  rO   rU   rc   rd   rj   re   r  r  r  rK   rL   rM   rN   rP   ri   rZ   r[   r\   r  r  Targetr  r  r  r  ru   r  r  rZ  rE   rg  rP  rm   rf   r  r  r  r  r  r  r  r  r  r  r  r   r  rV   r  r  r  r  r  rk   r  r  r  r  r   r    r  r[  r9  rB  ra  r`   ra   r  r  rX  r~  r  r  r  overloadr  staticmethodr1  r  r  r  r  r  r  rO  r  r  r  r  r  r1   r,   r  r  r  r  r  r  r   r*  r+  s   @r   r   r      s   -" -"^=	FL$@HD@D	^<>
>*
!(F9( Hc"**
 I  #IV GS)5  *5 ."3D#">VXY""xH##(3+0s;TSUV8,-!24(--9M!NX\fhpwx($9IJ)c8_-).tU5K5KLVZdfnuv "! ""H HdSE2D  3DG 			?I,>,>sS!!?I4F4FWZ[] 'D(+8<)T4x@H%	3	]3IQ IQV@ L#&X.).tS92tT	/ '/ \ \|,1+ 1+f2!( L#&+  '+Z (4&9	7  :	7<4 IsC0/C?3(--400B	
 	)/c:HEt]ab/#4T3#?UYahi"C?v! 1 v!p /9Xh7Gx#XZefOS1 2 g,? $  $/ 	8$IT{VH=)S"-)T51*sHoX>	
= > % 
=U- ^ 	8$/  % / Q  Q "(  # ( 5  5 NC(%i;KYX\L];^_J	 )
J6
;z:
7
M 8E7I7IDH+/>@AE9;IM@*X0=  NS(--,@aP*&+D#6DX`a).tS92t[cd$c2WEW-	 ? 	 Q? L#1=,00*  1 >*X 
H%   & U++,L#?,DDtD	G E @ -	G U--.$c?C"H^H4HJ I D /J
 U--.$c?C"H^H4H I D / )*$c?C"E[EE!= " F D +=
 *U--.OS/B/GNG$GI H C / +I
 )*IsO<)>k>>!6 " ? = +6
 U++,E3hmmU=O=OQVQhQhjoj}j}  @E  @V  @V  X]  Xi  Xi  )j  k%6'66@ 7 k -@
 nh?Q0RS./NCA.H#3H4H@ I B 0 T@* D)dS%*;*;U=O=OQVQhQhjy  |D  |I  |I  %J  K		
 	*sHo."C=(G,G,W-!$>% &>@ x("   )"%$ OcU3H%X.&$X>)T51)T5A.#rB'*\+ 4,\| L#&H%	 '& )NC%,,@S@S1Tbcd  e *  K%"2"2O!DE+0sNY]gkl(-dCUKVZdhi)T5AD FD Ku'7'7OU]UbUbdidvdvx}  yP  yP  'Q  R+))1 * R1
 FC%"2"2EIIPXP]P]_d_q_qsx  tK  tK  "L  M&R8RY}dD%QR0 S M0
) .2.( .(`D  %X]]/CD(S(O,X. E@ MC+?@(S(O8<X.	 A* "H--#xA
 . !8,NC(-t4-t4	 ) - $h/(&4&A0   B 002 Hc"dF+y	

V
 #VH NS(--,@A).tc8==5IJTXbde(-dC8"dZbcX.H-h/	Q	 BQ: 2 $c*-t4#T59/#4T3#?d(h	j 	'):4)Ed(h	j 	X.H- +:c )Y/H-)T5Ate&6&6I[I[]e]j]jlo%p  D  E  GO  P	

 	tc3%568O8OQYZ	
 	D%x	
 	*c7(C(C,-IJ	LdX]]C$89		
 	)dH-X>-#tbY	[/38SY[bRc,-BC	E,hWM.#rBG$J]BK$ L]B~ 2 )37';e)TUF V 8FA AF $c*-!24#9O!PZ^hjk%u-&Q7"$5dC$@$XZbjk,e8DW +W8 *C8()[Ad B 9d /=()[Ai B >i +S9)9kBg C :g 0#>()[Al B ?l *H5.8O8OP,iEu F Q 6u$98BD
; MS$,=+>?-0@0G0Gh0WX& Y @ & L#1=
  >
" ",06(p ZZ E  E  EZZ N  N  NZZ j  jZZ{{ {ZZ    D 	C 	C-K^  (++N ,+NZ
]".+"   B ZZq q ZZz z ZZz z ZZw w ZZ\ \Pd%ZE% NC0!: "   1: NS(OfXFR    GR M3')  ()  (+$c*X  + ,X E E x(M6*-  + )- "GS3*5P 6 # Pr   r   )
__future__r   r  r  r  r   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   programsr   r   r    r*  r!   interpreterbaser"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r  r:   r;   r<   r=   r>   optinterpreterr?   r@   r?  rA   r  	mesonmainrB   dependencyfallbacksrC   rD   rE   rF   rG   rH   rI   type_checkingrJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   r  pathlibrz   enumr{   r(  r   r  r  rP  r   typingr  r  r  rV  r  TYPE_CHECKINGtyping_extensionsr|   r~   r   kwtypesbackend.backendsr   interpreterbase.baseobjectsr   r   r   r   r   r   UnionFileOrStringGeneratedTypesr  r  r  SourceInputsr   r  SourceOutputsBuildTargetSourceCallabler  r   ProgramVersionFuncTypeVarr   r   r   rW  rV  r  rX  rU  rZ  r[  r   r  r   )r{  s   0r   <module>rw     s  
 #            ! T T T T   B %  i i D  D d d : \ \ @ 4 u u * ' %   : 0 0 0 0 0 0 0 0 0 0 0 0 0b "   	   	       ???)#*VV$*1 77800%2F2FHYHY ..0F0FG HL GGHMM5+?+?ARAR!22E4K4KL MM  5 5u7K7KUMdMd deQWW_e>N>NP_-_%`$acf$fg		+T2ID? D?N 
	!*!8!8F8!CD!CAs,!CDE "+!8!8F8!CD!CAs,!CDE  		 O 	 	 F Z5P/> Z5P5 EDs   (O3O8