+
    UBij              %        a 0 t $ ^ RIHt ^ RIHt ^ RIHt ^ RIt^ RIt^ RI	t	^ RIt^ RI
t
^ RIt^ RI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HtHt ^RIHt ]P@                  '       d   ^ RI!H"t"H#t#H$t$H%t% ^RI&H't' ]PP                  ])]*]PV                  ]*]*3,          ]PX                  ]*,          3,          t-R	].R
&   ]PP                  R,          t/R	].R&   ]PP                  ]*]0])]PX                  ]*,          3,          t1R	].R&   ]PV                  R]/3,          t2R	].R&   ]Pf                  ]Ph                  ]*,          ]]*3,          t5R	].R&    ! R R]%RR7      t6Rt7]Pp                  ! R4      t9. ROt:RR.t;. ROt<0 R!kR"kR#kR$kR%kR&kR'kR(kR)kR*kR+kR,kR-kR.kR/kR0kR1kR kR2kR3kR4kR5kR6kR7kR8kR9kR:kR;kR<kR=kR>kR?kR@kRAkRBkRCkRDkREkt=RFt>/ t?RG].RH&    ! RI R4      t@]P@                  '       d   ]PV                  ]@]13,          tAR	].RJ&   ]	P                   ! RK RL]P                  ]9,          ]4      4       tD]	P                   ! RM RN]D]9,          4      4       tE ! RO R]D]*,          4      tF]	P                   ! RP R]E]),          4      4       tG ! RQ RR]D]9,          4      tH]	P                   ! RS R]H]0,          4      4       tI ! RT RU]04      tJ]	P                   ! RV R]H]PP                  RW]J3,          ,          4      4       tK]	P                   ! RX R]E]*,          4      4       tL]	P                   ! RY RZ]D]PX                  ]9,          ,          4      4       tM]	P                   ! R[ R]M]*,          4      4       tN]	P                   ! R\ R]L4      4       tO]Pp                  ! R]]DR^7      tPR_ R` ltQ ! Ra R]L4      tRRb Rc ltSRRe Rf lltTRg Rh ltU]F! R!Ri]! 4       4      ]F! R"RjRk4      ]F! R#Rl]! 4       4      ]F! R$Rm]! 4       4      ]F! R%Rn]! 4       4      ]F! R&Ro]! 4       4      ]F! R'RpRd4      ]F! R(Rq]! 4       4      ]F! R)Rr]! 4       4      ]F! R*RsRt4      ]F! R+Ru]! 4       4      ]F! R,Rv]! 4       4      ]F! R-RwRx4      ]F! R.Ry]! 4       4      3 U u/ uF  p ]@! V P                  4      V bK  	  up tWRz].R{&   ]P                  ! R|]O! R/R}R~4      ]L! R0RR]:RR7      ]L! R5RR];R7      ]L! R1RR ]<R7      ]G! R RR4      ]L! R2RR. ROR7      ]L! R3RR. ROR7      ]G! R4RR4      ]K! R6R]J! ^4      4      ]L! R7RRRR.R7      ]L! RRRRR.R7      ]L! R8RR. ROR7      ]G! R9RR4      ]G! R:RR4      ]G! R;RR4      ]L! R<RR. ROR7      ]I! R=R^^R7      ]L! R>RR. ROR7      ]G! R?RR4      ]L! R@RR. ROR7      ]N! RAR. 4      ]G! RDRRRR7      ]G! RERR4      ]G! RRR4      ]I! RR^ R^R7      ]L! RRR!. ROR7      ]F! RRRd4      ]F! RRRd4      ]G! RRR4      ]F! RRRd4      .4       U u/ uF  p ]@! V P                  4      V bK  	  up tYRz].R&   ]! ]! ]WP                  4       ]YP                  4       4      4      t[]N! RBR. 4      ]N! RCR. 4      3 U u/ uF  p ]@! V P                  4      V bK  	  up t\Rz].R&   ]@! R.4      RR/]@! R*4      RRRR/]@! R-4      RRRR/]@! R4      / ]@! R4      / /t]R].R&   . ROt^]P                  ! R|]G! RRR4      ]G! RRR4      ]I! RR^ 4      ]L! RRRRR.R7      ]G! RRR4      ]F! RRRd4      ]N! RR. 4      ]G! RRR4      ]G! RRR4      ]L! RRR. ROR7      ]G! RRR4      ]L! RRR. ROR7      ]L! RRR. ROR7      ]G! RRR4      ]G! RRR4      ]G! RRR4      ]L! RRR]^RR.,           R7      .4       U u/ uF  p ]@! V P                  4      V bK  	  up t_Rz].R&    ! R R4      t`R# u up i u up i u up i u up i )    )annotations)OrderedDict)chainN)HoldableObjectdefault_prefixdefault_datadirdefault_includedirdefault_infodirdefault_libdirdefault_libexecdirdefault_localedirdefault_mandirdefault_sbindirdefault_sysconfdirMesonExceptionMesonBugExceptionlistify_array_valueMachineChoice)mlog)LiteralFinal	TypeAlias	TypedDict)
SubProjectr   DeprecatedTypeUserBooleanOptionUserComboOptionUserFeatureOptionUserIntegerOptionUserStdOptionUserStringArrayOptionUserStringOptionUserUmaskOptionAnyOptionTypeElementaryOptionValues	OptionKeyMutableKeyedOptionDictType_OptionKeyTuplec                  @    ] tR t^3t$ R]R&   R]R&   R]R&   R]R&   RtR# )	ArgparseKWsstractiondestdefaultzT.Listchoices N)__name__
__module____qualname____firstlineno____annotations____static_attributes__r0       7/usr/lib/python3.14/site-packages/mesonbuild/options.pyr*   r*   3   s    	r7   r*   F)total_Tninjavs2022vs2026debugprefixbindirdatadir
includedirinfodirlibdir
licensedir
libexecdir	localedirlocalstatedirmandirsbindirsharedstatedir
sysconfdirauto_featuresbackend	buildtypedefault_librarydefault_both_libraries	errorlogs	genvsliteinstall_umasklayoutoptimizationprefer_staticstdsplitstripunity
unity_sizewarning_levelwerror	wrap_modeforce_fallback_forpkg_config_pathcmake_prefix_pathvsenv
os2_emxomfu   Qwert Zuiopüz"T.Dict[_OptionKeyTuple, OptionKey]_optionkey_cachec                    a  ] tR t^st$ RtR;tR]R&   R]R&   R]R&   R	]R&   R
R]P                  3R V 3R lllt	R R lt
R R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR  R! ltR" R# ltR$ R% ltR& R' ltR( R) lt]R* R+ l4       tR]R3R, R- lltR. R/ ltR0 R1 ltR2 R3 ltR4 R5 ltR6 R7 lt R8 R9 lt!R:t"V ;t## )<r&   zRepresents an option key in the various option dictionaries.

This provides a flexible, powerful way to map option names from their
external form (things like subproject:build.option) to something that
internally easier to reason about and produce.
name
subprojectmachine_hashr+   T.Optional[str]r   int Nc               (    V ^8  d   QhRRRRRRRR/# )	   rf   r+   rg   rj   rh   r   returnr&   r0   )formats   "r8   __annotate__OptionKey.__annotate__   s2      + ' AJr7   c                   < V'       g   \         SV `  V 4      # W#V3p \        V,          #   \         d0    \         ST `  T 4      pTP	                  YT4       T\        T&   Tu # i ; i)z|The use of the __new__ method allows to add a transparent cache
to the OptionKey object creation, without breaking its API.
)super__new__rd   KeyError_init)clsrf   rg   rh   tuple_instance	__class__s   &&&&  r8   ru   OptionKey.__new__   sl     7?3''#-"=	#F++ 	ws+HNN4W5'/V$O		s   + 7A%$A%c               (    V ^8  d   QhRRRRRRRR/# )	rn   rf   r+   rg   rj   rh   r   ro   Noner0   )rp   s   "r8   rq   rr      s/     M M# M? M] MW[ Mr7   c           	     	v   \        V\        4      '       g   \        R V 24      h\        V\        4      '       g   \	        RV 24      hRV9  g   Q h\
        P                  V RV4       \
        P                  V RV4       \
        P                  V RV4       \
        P                  V R\        WV34      4       R# )z"Internal error, bad machine type: zKey name is not a string: :rf   rg   rh   ri   N)
isinstancer   r   r+   r   object__setattr__hashselfrf   rg   rh   s   &&&&r8   rw   OptionKey._init   s     '=11 #EgY!OPP$$$#&@$GHH$4.4z:4G44$'/J*KLr7   c               $    V ^8  d   QhRRRRRR/# )rn   keyr+   valueT.Anyro   r~   r0   )rp   s   "r8   rq   rr      s&     M Ms M5 MT Mr7   c                	    \        R 4      h)z,OptionKey instances do not support mutation.)AttributeError)r   r   r   s   &&&r8   r   OptionKey.__setattr__   s    KLLr7   c                   V ^8  d   QhRR/# )rn   ro   T.Dict[str, T.Any]r0   )rp   s   "r8   rq   rr      s     
 
0 
r7   c                	N    R V P                   RV P                  RV P                  /# rf   rg   rh   r   r   s   &r8   __getstate__OptionKey.__getstate__   s'    DII$//t||
 	
r7   c                    V ^8  d   QhRRRR/# )rn   stater   ro   r~   r0   )rp   s   "r8   rq   rr      s     2 2"4 2 2r7   c                	X    V P                   ! R/ VB  V \        V P                  4       &   R # )Nr0   )rw   rd   	_to_tuple)r   r   s   &&r8   __setstate__OptionKey.__setstate__   s#    

U-1)*r7   c                   V ^8  d   QhRR/# rn   ro   rk   r0   )rp   s   "r8   rq   rr      s      # r7   c                	    V P                   # N)ri   r   s   &r8   __hash__OptionKey.__hash__       zzr7   c                   V ^8  d   QhRR/# )rn   ro   r(   r0   )rp   s   "r8   rq   rr      s     : :? :r7   c                	H    V P                   V P                  V P                  3# r   )rg   rh   rf   r   s   &r8   r   OptionKey._to_tuple   s    tyy99r7   c                    V ^8  d   QhRRRR/# rn   otherr   ro   boolr0   )rp   s   "r8   rq   rr            F t r7   c                	|    \        V\        4      '       d"   V P                  4       VP                  4       8H  # \        # r   r   r&   r   NotImplementedr   r   s   &&r8   __eq__OptionKey.__eq__   .    eY''>>#u'888r7   c                    V ^8  d   QhRRRR/# r   r0   )rp   s   "r8   rq   rr      r   r7   c                	|    \        V\        4      '       d"   V P                  4       VP                  4       8g  # \        # r   r   r   s   &&r8   __ne__OptionKey.__ne__   r   r7   c                    V ^8  d   QhRRRR/# r   r0   )rp   s   "r8   rq   rr            F t r7   c                	    \        V\        4      '       dN   V P                  f   VP                  R J# VP                  f   R# V P                  4       VP                  4       8  # \        # NFr   r&   rg   r   r   r   s   &&r8   __lt__OptionKey.__lt__   sX    eY''&''t33!!)>>#eoo&777r7   c                    V ^8  d   QhRRRR/# r   r0   )rp   s   "r8   rq   rr      r   r7   c                	    \        V\        4      '       d^   V P                  f   VP                  e   R# V P                  e   VP                  f   R# V P                  4       VP                  4       8*  # \        # )NTFr   r   s   &&r8   __le__OptionKey.__le__   s^    eY''&5+;+;+G,1A1A1I>>#u'888r7   c                    V ^8  d   QhRRRR/# r   r0   )rp   s   "r8   rq   rr      r   r7   c                	    \        V\        4      '       dN   VP                  f   V P                  R J# V P                  f   R# V P                  4       VP                  4       8  # \        # r   r   r   s   &&r8   __gt__OptionKey.__gt__   sV    eY'''d22(>>#eoo&777r7   c                    V ^8  d   QhRRRR/# r   r0   )rp   s   "r8   rq   rr      r   r7   c                	    \        V\        4      '       d^   V P                  f   VP                  e   R# V P                  e   VP                  f   R# V P                  4       VP                  4       8  # \        # )NFTr   r   s   &&r8   __ge__OptionKey.__ge__   s^    eY''&5+;+;+G,1A1A1I>>#u'888r7   c                   V ^8  d   QhRR/# rn   ro   r+   r0   )rp   s   "r8   rq   rr      s       r7   c                	    V P                   pV P                  \        P                  J d   R V 2pV P                  e   V P                   RV 2pV# )build.r   )rf   rh   r   BUILDrg   )r   outs   & r8   __str__OptionKey.__str__   sL    ii<<=...3%.C??&__%Qse,C
r7   c                   V ^8  d   QhRR/# r   r0   )rp   s   "r8   rq   rr      s     R R# Rr7   c                	\    R V P                   : RV P                  : RV P                  : R2# )z
OptionKey(, )r   r   s   &r8   __repr__OptionKey.__repr__   s+    DII=4??*=R?OqQQr7   c                    V ^8  d   QhRRRR/# )rn   rawr+   ro   'OptionKey'r0   )rp   s   "r8   rq   rr      s     1 1c 1k 1r7   c                ~   \        V\        4      '       g   Q h VP                  R4      w  r#\        P
                  p VP                  R4      w  rVVR8X  d   \        P                  pMTp TpRV9  g   Q hVP                  R4      ^8  g   Q hV ! WrV4      #   \         d    RTr2 L{i ; i  \         d    Tp LOi ; i)zParse the raw command line format into a three part tuple.

This takes strings like `mysubproject:build.myoption` and Creates an
OptionKey out of them.
r   N.build)r   r+   split
ValueErrorr   HOSTr   count)rx   r   rg   raw2for_machiner?   raw3opts   &&      r8   from_stringOptionKey.from_string   s     #s####	)"yy~J $((	::c?LF +11 #~~yy~!!!3K00#  	)#S	)  	D	s(   B *B, )B, B)(B),B<;B<c               (    V ^8  d   QhRRRRRRRR/# )rn   rf   rj   rg   rh   zT.Optional[MachineChoice]ro   r   r0   )rp   s   "r8   rq   rr     s7     K K$K*K 2K >IKr7   c                    \        Ve   TMV P                  V\        8w  d   TMV P                  Ve   V4      # V P                  4      # )zCreate a new copy of this key, but with altered members.

For example:
>>> a = OptionKey('foo', '', MachineChoice.Host)
>>> b = OptionKey('foo', 'bar', MachineChoice.Host)
>>> b == a.evolve(subproject='bar')
True
)r&   rf   
_BAD_VALUErg   rh   r   s   &&&&r8   evolveOptionKey.evolve  sK     !1tyy'1Z'?T__$+$7K 	K=A\\K 	Kr7   c                   V ^8  d   QhRR/# rn   ro   r&   r0   )rp   s   "r8   rq   rr   "  s     * * *r7   c                &    V P                  RR7      # )z1Convenience method for key.evolve(subproject='').rl   rg   )r   r   s   &r8   as_rootOptionKey.as_root"  s    {{b{))r7   c                   V ^8  d   QhRR/# r   r0   )rp   s   "r8   rq   rr   &  s     8 8) 8r7   c                B    V P                  \        P                  R7      # )z?Convenience method for key.evolve(machine=MachineChoice.BUILD).rh   )r   r   r   r   s   &r8   as_buildOptionKey.as_build&  s    {{=#6#6{77r7   c                   V ^8  d   QhRR/# r   r0   )rp   s   "r8   rq   rr   *  s     7 7 7r7   c                B    V P                  \        P                  R7      # )z>Convenience method for key.evolve(machine=MachineChoice.HOST).r   )r   r   r   r   s   &r8   as_hostOptionKey.as_host*  s    {{=#5#5{66r7   c                   V ^8  d   QhRR/# rn   ro   r   r0   )rp   s   "r8   rq   rr   .  s        4  r7   c                	     R V P                   9   # )r   rf   r   s   &r8   has_module_prefixOptionKey.has_module_prefix.  s    diir7   c                   V ^8  d   QhRR/# )rn   ro   rj   r0   )rp   s   "r8   rq   rr   1  s      ? r7   c                	x    V P                  4       '       d$   V P                  P                  R ^4      ^ ,          # R# )r   N)r   rf   r   r   s   &r8   get_module_prefixOptionKey.get_module_prefix1  s.    !!##99??3*1--r7   c                   V ^8  d   QhRR/# r   r0   )rp   s   "r8   rq   rr   6  s     3 3d 3r7   c                	:    V P                   \        P                  J # r   )rh   r   r   r   s   &r8   is_for_buildOptionKey.is_for_build6  s    ||}2222r7   r0   )rf   rg   rh   ri   )$r1   r2   r3   r4   __doc__	__slots__r5   r   r   ru   rw   r   r   r   r   r   r   r   r   r   r   r   r   r   classmethodr   r   r   r   r   r   r   r  r  r6   __classcell__r{   s   @r8   r&   r&   s   s     ;I
IJ .2)6);); &MM
2
:

R 1 1: (,-748K$*87 
3 3r7   
OptionDictc                      ] tR tRt$ R]R&   R]R&   R]R&   ]tR]R&   R	tR
]R&   ]P                  ! R	R7      t
R]R&   RtR]R&   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tR# )
UserOptioni<  r+   rf   descriptionzdataclasses.InitVar[_T]value_r   yieldingFr   
deprecated)r.   readonlyNzT.Optional[UserOption]parentc                    V ^8  d   QhRRRR/# rn   r  r:   ro   r~   r0   )rp   s   "r8   rq   UserOption.__annotate__G  s     - -B -4 -r7   c                	T    V P                  V4      V n        V P                  V n        R # r   )validate_valuer   r.   )r   r  s   &&r8   __post_init__UserOption.__post_init__G  s    ((0
"&**r7   c                    V ^8  d   QhRRRR/# )rn   r   r%   ro   T.List[str]r0   )rp   s   "r8   rq   r  L  s      3  r7   c                	    \        V\        4      '       d   V# \        V\        4      '       d   V'       d   R .# R.# \        V\        4      '       d   \	        V4      .# V.# )truefalse)r   listr   rk   r+   r   r   s   &&r8   listifyUserOption.listifyL  sR    eT""LeT""$F837)3eS!!J<wr7   c                   V ^8  d   QhRR/# )rn   ro   r%   r0   )rp   s   "r8   rq   r  U  s      !7 r7   c                	~    \        V P                  \        \        \        \
        34      '       g   Q hV P                  # r   )r   r   r+   rk   r   r#  r   s   &r8   printable_valueUserOption.printable_valueU  s,    $**sCt&<====zzr7   c                   V ^8  d   QhRR/# rn   ro   zT.Optional[T.List[str]]r0   )rp   s   "r8   rq   r  Y  s      #: r7   c                	    R # r   r0   r   s   &r8   printable_choicesUserOption.printable_choicesY  s    r7   c                    V ^8  d   QhRRRR/# rn   r   r   ro   r:   r0   )rp   s   "r8   rq   r  _  s     T TF Tr Tr7   c                	    \        R 4      h)z5Derived option class did not override validate_value.)RuntimeErrorr$  s   &&r8   r  UserOption.validate_value_  s    RSSr7   c                    V ^8  d   QhRRRR/# )rn   newvaluer   ro   r   r0   )rp   s   "r8   rq   r  b  s     & && &T &r7   c                	d    V P                   pV P                  V4      V n         V P                   V8g  # r   )r   r  )r   r6  oldvalues   && r8   	set_valueUserOption.set_valueb  s,    ::((2
zzX%%r7   )r.   r   )r1   r2   r3   r4   r5   DEFAULT_YIELDINGr  r  dataclassesfieldr  r  r  r%  r)  r.  r  r9  r6   r0   r7   r8   r  r  <  sm     I##%Hd%!&J& &&u5Hd5%)F")-
T& &r7   r  c                  X    ] tR tRt$ Rt]P                  ! ]R7      tR]	R&   R R lt
RtR	# )
EnumeratedUserOptionig  z0A generic UserOption that has enumerated values.default_factoryz
T.List[_T]r/   c                   V ^8  d   QhRR/# r,  r0   )rp   s   "r8   rq   !EnumeratedUserOption.__annotate__n  s     . .#: .r7   c                	V    V P                    Uu. uF  p\        V4      NK  	  up# u upi r   r/   r+   r   cs   & r8   r.  &EnumeratedUserOption.printable_choicesn  s"     $-1A---s   &r0   N)r1   r2   r3   r4   r	  r<  r=  r#  r/   r5   r.  r6   r0   r7   r8   r?  r?  g  s&     ;%++DAGZA. .r7   r?  c                  "    ] tR tRtR R ltRtR# )r"   ir  c                    V ^8  d   QhRRRR/# rn   r   r   ro   r+   r0   )rp   s   "r8   rq   UserStringOption.__annotate__t  s      F s r7   c                	j    \        V\        4      '       g   \        R V P                   RV R24      hV# )zThe value of option "z" is "z", which is not a string.)r   r+   r   rf   r$  s   &&r8   r  UserStringOption.validate_valuet  s4    %%% #86%Pi!jkkr7   r0   Nr1   r2   r3   r4   r  r6   r0   r7   r8   r"   r"   r  s     r7   c                  b    ] tR tRt$ ]P
                  ! R R7      tR]R&   R R ltR R	 lt	R
t
R# )r   iy  c                 	
    R R.# )TFr0   r0   r7   r8   <lambda>UserBooleanOption.<lambda>|  s    tUmr7   r@  zT.List[bool]r/   c                   V ^8  d   QhRR/# r   r0   )rp   s   "r8   rq   UserBooleanOption.__annotate__~  s      $ r7   c                	    V P                   # r   r   r   s   &r8   __bool__UserBooleanOption.__bool__~  r   r7   c                    V ^8  d   QhRRRR/# )rn   r   r   ro   r   r0   )rp   s   "r8   rq   rU    s     	d 	dF 	dt 	dr7   c                	*   \        V\        4      '       d   V# \        V\        4      '       g   \        R V P                   RV R24      hVP                  4       R8X  d   R# VP                  4       R8X  d   R# \        R V P                   RV R24      h)Option "" value z! cannot be converted to a booleanr!  Tr"  Fz  is not boolean (true or false).)r   r   r+   r   rf   lowerr$  s   &&r8   r   UserBooleanOption.validate_value  s    eT""L%%% 8DII;hugEf!ghh;;=F";;=G#x		{(5'Aabccr7   r0   N)r1   r2   r3   r4   r<  r=  r/   r5   rX  r  r6   r0   r7   r8   r   r   y  s+     (-->STG\T	d 	dr7   c                     a  ] tR tRt$ R]R&   R]R&   ]P                  '       d   R R ltR V 3R lltR	 R
 lt	R R lt
RtV ;t# )_UserIntegerBasei  T.Optional[int]	min_value	max_valuec                    V ^8  d   QhRRRR/# )rn   vr+   ro   rk   r0   )rp   s   "r8   rq   _UserIntegerBase.__annotate__  s    ++3+3+r7   c                	    R # r   r0   )r   rf  s   &&r8   toint_UserIntegerBase.toint  s    r7   c                    V ^8  d   QhRRRR/# r  r0   )rp   s   "r8   rq   rg    s     1 1B 14 1r7   c                	
  < \         SV `  V4       . pV P                  e    VP                  RV P                  : 24       V P                  e    VP                  RV P                  : 24       RP                  V4      V n        R # )Nz>= z<= r   )rt   r  rc  appendrd  join_UserIntegerBase__choices)r   r  r/   r{   s   && r8   r  _UserIntegerBase.__post_init__  si    f%!>>%NNS 234>>%NNS 234"ii0r7   c                   V ^8  d   QhRR/# r,  r0   )rp   s   "r8   rq   rg    s        #:  r7   c                	    V P                   .# r   )ro  r   s   &r8   r.  "_UserIntegerBase.printable_choices  s    r7   c                    V ^8  d   QhRRRR/# r1  r0   )rp   s   "r8   rq   rg    s     	# 	#F 	#r 	#r7   c           	     	*   \        V\        4      '       d'   \        P                  ! R V P	                  V4      4      p\        V\
        4      '       g   \        RV: RV P                   R24      hV P                  e:   WP                  8  d*   \        RV RV P                   RV P                   R24      hV P                  e:   WP                  8  d*   \        RV RV P                   RV P                   R24      h\        P                  ! R V4      # )r:   zValue z for option "z" is not an integer.z" is less than minimum value r   z" is more than maximum value )
r   r+   Tcastri  rk   r   rf   rc  rd  r$  s   &&r8   r  _UserIntegerBase.validate_value  s    eS!!FF4E!23E%%% 6%-		{J^!_``>>%%..*@ 6%dii[Hefjftfteuuv!wxx>>%%..*@ 6%dii[Hefjftfteuuv!wxxvvdE""r7   )	__choices)r1   r2   r3   r4   r5   rv  TYPE_CHECKINGri  r  r.  r  r6   r  r  s   @r8   ra  ra    s4    +1 1 	# 	#r7   ra  c                  @    ] tR tRt$ RtR]R&   RtR]R&   R R ltRtR# )	r   i  Nrb  rc  rd  c                    V ^8  d   QhRRRR/# rn   valuestringr+   ro   rk   r0   )rp   s   "r8   rq   UserIntegerOption.__annotate__  s     } } } }r7   c                	p     \        V4      #   \         d    \        R T RT P                   R24      hi ; i)zValue string "" for option "z#" is not convertible to an integer.rk   r   r   rf   )r   r~  s   &&r8   ri  UserIntegerOption.toint  sC    	}{## 	} >+nTYYKWz!{||	}s   
 (5r0   )	r1   r2   r3   r4   rc  r5   rd  ri  r6   r0   r7   r8   r   r     s$     "&I%!%I%} }r7   c                  "    ] tR tRtR R ltRtR# )OctalInti  c                   V ^8  d   QhRR/# r   r0   )rp   s   "r8   rq   OctalInt.__annotate__  s       r7   c                	*    \        \        V 4      4      # r   )octrk   r   s   &r8   r   OctalInt.__str__  s    3t9~r7   r0   N)r1   r2   r3   r4   r   r6   r0   r7   r8   r  r    s     r7   r  c                     a  ] tR tRt$ ]P
                  ! ^ RR7      tR]R&   ]P
                  ! RRR7      tR]R&   R R	 lt	R
 V 3R llt
R R ltRtV ;t# )r#   i  F)r.   initrb  rc    rd  c                   V ^8  d   QhRR/# r   r0   )rp   s   "r8   rq   UserUmaskOption.__annotate__  s       r7   c                	    \        V P                  \        4      '       d   \        V P                  R 4      # V P                  # )04o)r   r   rk   rp   r   s   &r8   r)  UserUmaskOption.printable_value  s.    djj#&&$**e,,zzr7   c                    V ^8  d   QhRRRR/# )rn   r   r   ro   z&T.Union[Literal['preserve'], OctalInt]r0   )rp   s   "r8   rq   r    s     7 7F 7/U 7r7   c                	F   < VR 8X  d   R # \        \        SV `	  V4      4      # )preserve)r  rt   r  )r   r   r{   s   &&r8   r  UserUmaskOption.validate_value  s#    J.u566r7   c                    V ^8  d   QhRRRR/# r}  r0   )rp   s   "r8   rq   r    s     O O O Or7   c                	x     \        V^4      #   \         d!   p\        RT P                   RT 24      hRp?ii ; i)   zInvalid mode for option "z" Nr  )r   r~  es   && r8   ri  UserUmaskOption.toint  sD    	O{A&& 	O #<TYYKr!!MNN	Os    949r0   )r1   r2   r3   r4   r<  r=  rc  r5   rd  r)  r  ri  r6   r  r  s   @r8   r#   r#     sN     "-!2!215!III!,!2!25u!MIM
7 7
O Or7   zLiteral['preserve']c                  "    ] tR tRtR R ltRtR# )r   i  c                    V ^8  d   QhRRRR/# rK  r0   )rp   s   "r8   rq   UserComboOption.__annotate__  s      F s r7   c                	   WP                   9  d   \        V\        4      '       d   R pM!\        V\        \        34      '       d   RpMRpRP                  V P                    Uu. uF	  pRV R2NK  	  up4      p\        RP                  WV P                  V4      4      h\        V\        4      '       g   Q R4       hV# u upi )booleannumberstringr   "zjValue "{}" (of type "{}") for option "{}" is not one of the choices. Possible choices are (as string): {}.for mypy)
r/   r   r   rk   floatrn  r   rp   rf   r+   )r   r   _typeitemoptionsstrings   &&   r8   r  UserComboOption.validate_value  s    $%&&!EC<00   IIt||&L|t4&{|&LMM  "JJP&%*499mKMN N %%%1z1% 'Ms   $B?r0   NrO  r0   r7   r8   r   r     s     r7   c                  d    ] tR tRt$ R]R&   RtR]R&   RtR]R	&   RtR]R
&   R R ltR R lt	Rt
R# )UserArrayOptioni  z,dataclasses.InitVar[T.Union[_T, T.List[_T]]]r  NzT.Optional[T.List[_T]]r/   Fr   
split_args
allow_dupsc                    V ^8  d   QhRRRR/# )rn   r   zT.Union[str, T.List[str]]ro   r~   r0   )rp   s   "r8   rq   UserArrayOption.__annotate__  s     ) )"; ) )r7   c                l    V P                  V4      pV P                  V P                  V,           4       R# )z*Extend the value with an additional value.N)r  r9  r   )r   r   news   && r8   extend_valueUserArrayOption.extend_value  s'    !!%(tzzC'(r7   c                   V ^8  d   QhRR/# r,  r0   )rp   s   "r8   rq   r    s     . .#: .r7   c                	v    V P                   f   R # V P                    Uu. uF  p\        V4      NK  	  up# u upi r   rE  rF  s   & r8   r.  !UserArrayOption.printable_choices  s/    << $-1A---s   6r0   )r1   r2   r3   r4   r5   r/   r  r  r  r.  r6   r0   r7   r8   r  r    s8     98&*G#*JJ)
. .r7   r  c                  .    ] tR tRtR R ltR R ltRtR# )r!   r  c                    V ^8  d   QhRRRR/# rn   r   r   ro   r  r0   )rp   s   "r8   rq   "UserStringArrayOption.__annotate__  s     J JV J Jr7   c                	     \        WP                  4      #   \         d"   p\        R T P                   RT: 24      hRp?ii ; i)error in option "": N)r   r  r   rf   )r   r   r  s   && r8   r%  UserStringArrayOption.listify  sF    	J&uoo>> 	J #4TYYKs1%!HII	Js    A>Ac                    V ^8  d   QhRRRR/# r  r0   )rp   s   "r8   rq   r    s      F { r7   c                	   V P                  V4      pV P                  '       g;   \        \        V4      4      \        V4      8w  d   R p\        P
                  ! V4       V F6  p\        V\        4      '       d   K  \        RV: RV P                   R24      h	  V P                  '       d   V Uu. uF  qUV P                  9  g   K  VNK  	  ppV'       du   \        RP                  \        V4      ^8X  d   RMRRP                  V4      V P                  \        V4      ^8X  d   RMR	RP                  V P                  4      4      4      hV# u upi )
z\Duplicated values in array option is deprecated. This will become a hard error in meson 2.0.String array element "r  " is not a string.z<Value{} "{}" for option "{}" {} not in allowed choices: "{}"rl   sr   isare)r%  r  lensetr   deprecationr   r+   r   rf   r/   rp   rn  )r   r   r6  msgixbads   &&     r8   r  $UserStringArrayOption.validate_value  s   <<&3s8}#5X#F@CS!Aa%%$'=h\X\XaXaWbbt%uvv  <<<&@h4<<*?11hC@$%c%j%jc(a-BSIIcNIIHMDuIIdll+&-    As   0EEr0   N)r1   r2   r3   r4   r%  r  r6   r0   r7   r8   r!   r!     s    J r7   c                  p    ] tR tRt$ ]P
                  ! R RR7      tR]R&   R R ltR	 R
 lt	R R lt
RtR# )r   i  c                 	
    . RO# )enabled)r  disabledautor0   r0   r7   r8   rR  UserFeatureOption.<lambda>$  s     ?r7   F)rA  r  r  r/   c                   V ^8  d   QhRR/# r   r0   )rp   s   "r8   rq   UserFeatureOption.__annotate__&  s     ' 'D 'r7   c                	     V P                   R 8H  # )r  rW  r   s   &r8   
is_enabledUserFeatureOption.is_enabled&  s    zzY&&r7   c                   V ^8  d   QhRR/# r   r0   )rp   s   "r8   rq   r  )  s     ( (T (r7   c                	     V P                   R 8H  # )r  rW  r   s   &r8   is_disabledUserFeatureOption.is_disabled)  s    zzZ''r7   c                   V ^8  d   QhRR/# r   r0   )rp   s   "r8   rq   r  ,  s     $ $ $r7   c                	     V P                   R 8H  # )r  rW  r   s   &r8   is_autoUserFeatureOption.is_auto,  s    zzV##r7   r0   N)r1   r2   r3   r4   r<  r=  r/   r5   r  r  r  r6   r0   r7   r8   r   r     s6     ',,?eMG[ M'($ $r7   _U)boundc               $    V ^8  d   QhRRRRRR/# )rn   ar  bro   r   r0   )rp   s   "r8   rq   rq   3  s!      R B 4 r7   c                   \        V \        4      '       d7   \        V\        4      '       g   Q R4       hV P                  VP                  8g  # \        V \        4      '       d7   \        V\        4      '       g   Q R4       hV P                  VP                  8g  # \        V \        4      '       dX   \        V\        4      '       g   Q R4       hV P
                  VP
                  8g  ;'       g    V P                  VP                  8g  # R# )zAre the choices between two options the same?

:param a: A UserOption[T]
:param b: A second UserOption[T]
:return: True if the choices have changed, otherwise False
r  F)r   r?  r/   r  ra  rd  rc  )r  r  s   &&r8   choices_are_differentr  3  s     !)**!122>J>2yyAII%%	A	'	'!_--9z9-yyAII%%	A'	(	(!-..:
:.{{akk)GGQ[[AKK-GGr7   c                  N   a  ] tR tRtRtR V 3R lltR
R R lltR R ltR	tV ;t	# )r    iI  a)  
UserOption specific to c_std and cpp_std options. User can set a list of
STDs in preference order and it selects the first one supported by current
compiler.

For historical reasons, some compilers (msvc) allowed setting a GNU std and
silently fell back to C std. This is now deprecated. Projects that support
both GNU and MSVC compilers should set e.g. c_std=gnu11,c11.

This is not using self.deprecated mechanism we already have for project
options because we want to print a warning if ALL values are deprecated, not
if SOME values are deprecated.
c               $    V ^8  d   QhRRRRRR/# )rn   langr+   all_stdsr  ro   r~   r0   )rp   s   "r8   rq   UserStdOption.__annotate__W  s&     a aS aK aD ar7   c                	   < VP                  4       V n        R .V,           V n        / V n        VR8X  d   RMV R2p\        SV `  W1 R2R R .R7       R# )nonezc++cpp_std_stdz language standard to user/   N)r^  r  r  deprecated_stdsrt   __init__)r   r  r  opt_namer{   s   &&& r8   r  UserStdOption.__init__W  sY    JJL	8+13 $9dV4=V+D#EvX^W_`r7   c               (    V ^8  d   QhRRRRRRRR/# )rn   versionsr  gnur   gnu_deprecatedro   r~   r0   )rp   s   "r8   rq   r  _  s*     4 4[ 4t 4UY 4fj 4r7   c                	  a  \         ;QJ d    V 3R  lV 4       F  '       d   K   RM	  RM! V 3R  lV 4       4      '       g   Q hS ;P                  V,          un        V'       dk   V Uu/ uF  pRVR,           2VbK  	  ppV'       d   S P                  P                  V4       R# S ;P                  VP	                  4       ,          un        R# R# u upi )c              3  @   <"   T F  qSP                   9   x  K  	  R # 5ir   r  .0stdr   s   & r8   	<genexpr>-UserStdOption.set_versions.<locals>.<genexpr>`  s     <8C$--'8s   FTr  :   NNN)allr/   r  updatekeys)r   r  r  r  r  gnu_stds_maps   f&&&  r8   set_versionsUserStdOption.set_versions_  s    s<8<sss<8<<<<< <DEHSc#b'OS0HLE$$++L9 1 1 33 Es   )Cc                    V ^8  d   QhRRRR/# rK  r0   )rp   s   "r8   rq   r  i  s     ] ]F ]s ]r7   c           	     	L  a   \        V4      pT F6  p\        T\        4      '       d   K  \        RT: RS P                   R24      h	  RP                  T 3R lT 4       4      pT'       d*   \        RS P                   R	T R
S P                   R24      hT F  pTS P                  9   g   K  Tu # 	  T Fr  pS P                  P                  T4      pTf   K$  \        P                  ! RT RS P                   R2RT RT R2,           R,           R,           R,           RR7       Tu # 	  \        RT RS P                  P                  4        R2RS P                   RS P                   2,           4      h  \         d"   p\        R S P                   RT: 24      hRp?ii ; i)r  r  Nr  r  r  ,c              3  L   <"   T F  qSP                   9  g   K  Vx  K  	  R # 5ir   r  r  s   & r8   r   /UserStdOption.validate_value.<locals>.<genexpr>q  s     Q*34==8P33*s   $
$zUnknown option "r]  z. Possible values are r   zNone of the values z are supported by the z compiler.
zHowever, the deprecated z std currently falls back to z.
z$This will be an error in meson 2.0.
zEIf the project supports both GNU and MSVC compilers, a value such as
zZ"c_std=gnu11,c11" specifies that GNU is preferred but it can safely fallback to plain c11.T)oncezNone of values z compiler. zPossible values for option "z" are )r   r   rf   r   r+   rn  r  r/   r  getr   r  r  upper)r   r   
candidatesr  r  unknownnewstds   f&     r8   r  UserStdOption.validate_valuei  s   	J,U3J Cc3''$'=j^>Z^ZcZcYddv%wxx  ((Q*QQ #3DII;hwiOefjfsfsettu!vwwCdll"
  C))--c2F!  )*5KDII;Vbc.se3PQWPXX[\];< ]] q	q x|}   zl:PQUQZQZQ`Q`QbPccno;DII;fT\\N[\ ] 	]/  	J #4TYYKs1%!HII	Js   E7 7F#FF#)r  r  r  )FF)
r1   r2   r3   r4   r	  r  r  r  r6   r  r  s   @r8   r    r    I  s%    a a4] ]r7   c                    V ^8  d   QhRRRR/# )rn   rf   r+   ro   r0   )rp   s   "r8   rq   rq     s     ) )s )s )r7   c                F    V R 8X  d   R# RV P                  RR4      ,           # )r\   z--warnlevelz--_-)replacer   s   &r8   argparse_name_to_argr    s#    $,,sC(((r7   rl   c               (    V ^8  d   QhRRRRRRRR/# )	rn   r   r$   rf   r&   r?   r+   ro   r%   r0   )rp   s   "r8   rq   rq     s)     = == =	 =3 =Xn =r7   c                   \        V \        \        \        34      '       d"   \        P
                  ! R V P                  4      #  \        V,          V,          #   \         d%    \        P
                  ! R T P                  4      u # i ; i)r%   )	r   r   r   r#   rv  rw  r.   BUILTIN_DIR_NOPREFIX_OPTIONSrv   )r   rf   r?   s   &&&r8   argparse_prefixed_defaultr    sg    #):OLMMvv.<<=+D1&99 =vv.<<=s   A ,BBc          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )rn   optionr$   rf   r&   parserzargparse.ArgumentParserhelp_suffixr+   ro   r~   r0   )rp   s   "r8   rq   rq     s9     F F} FI FG^ Fmp Fuy Fr7   c                   / p\        V \        \        34      '       d   V P                  pMR p\        V P                  \
        4      '       d   RMR pV P                  pV'       g,   RP                  VP                  R4      \        W4      4      pMWdR&   V'       d   V'       g   WTR&   \        P                  VR&   \        V4      VR&   \        \        V4      4      pVP                  ! V3RWs,           /VB  R # )	N
store_truez{} (default: {}).r   r,   r/   r.   r-   help)r   r?  r  r/   r.   r   r  rp   rstripr  argparseSUPPRESSr+   r  add_argument)	r   rf   r!  r"  kwargsrG  r  hcmdline_names	   &&&&     r8   option_to_argparser-    s    F&/ABBNN"6>>488dAA&&qxx}6OPV6]^xy ))F9YF6N'D	2L
E1?EfEr7   zInstallation prefixzExecutable directorybinzData file directoryzHeader file directoryzInfo page directoryzLibrary directoryzLicenses directoryzLibrary executable directoryzLocale data directoryzLocalstate data directoryvarzManual page directoryzSystem executable directoryz'Architecture-independent data directorycomzSysconf data directoryz#T.Mapping[OptionKey, AnyOptionType]BUILTIN_DIR_OPTIONSzT.List[AnyOptionType]z%Override value of all 'auto' featuresr  zBackend to useT)r/   r  zSetup multiple buildtype-suffixed ninja-backend build directories, and a [builddir]_vs containing a Visual Studio meta-backend with multiple configurations that calls into themr  zBuild type to usez*Enable debug symbols and other informationzDefault library typesharedz'Default library type for both_librariesz,Whether to print the logs from failing testsz8Default umask to apply on permissions of installed fileszBuild directory layoutmirrorflatnamingschemez How target file names are formedclassicplatformzOptimization level01z3Whether to try static linking before shared linkingz$Split stdout and stderr in test logszStrip targets on installzUnity buildoffzUnity block size)rc  zCompiler warning level to usezTreat warnings as errorsz	Wrap moder.   z$Force fallback for those subprojectsz"Activate Visual Studio environment)r  zUse OMF format on OS/2zpkgconfig.relocatablez'Generate pkgconfig files as relocatablezpython.bytecompilezWhether to compile bytecode)rc  rd  zpython.install_envz&Which python environment to install tozpython.platlibdirz5Directory for site-specific, platform-specific files.zpython.purelibdirz9Directory for site-specific, non-platform-specific files.zpython.allow_limited_apiz.Whether to allow use of the Python Limited APIzpython.build_configzLConfig file containing the build details for the target Python installation.BUILTIN_CORE_OPTIONSz1List of additional paths for pkg-config to searchz/List of additional prefixes for cmake to searchBUILTIN_OPTIONS_PER_MACHINEz/usrz/etcz/varz
/usr/localz
/var/localz/var/libz/var/local/libz#T.Dict[OptionKey, T.Dict[str, str]]r  b_pchzUse precompiled headersb_ltozUse link time optimizationb_lto_threadsz/Use multiple threads for Link Time Optimization
b_lto_modez#Select between different LTO modes.thinb_thinlto_cachez6Use LLVM ThinLTO caching for faster incremental buildsb_thinlto_cache_dirz(Directory to store ThinLTO cache objects
b_sanitizezCode sanitizer to useb_lundefz#Use -Wl,--no-undefined when linking
b_asneededz Use -Wl,--as-needed when linkingb_pgozUse profile guided optimization
b_coveragezEnable coverage tracking.
b_coloroutzUse colored outputalwaysb_ndebugzDisable assertsr"  b_staticpicz.Build static libraries as position independentb_piez)Build executables as position independent	b_bitcodez0Generate and embed bitcode (only macOS/iOS/tvOS)b_vscrtz VS run-time library type to use.from_buildtypestatic_from_buildtypeCOMPILER_BASE_OPTIONSc            
      F   ] tR tRtRR_RR`RRaRRbRRc/tR R ltR	 R
 ltRdR R lltR R ltR R lt	R R lt
R R ltRdR R 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ReR* R+ lltReR, R- lltR. R/ ltR0 R1 ltR2 R3 ltR4 R5 ltR6 R7 ltR8 R9 ltR: R; ltR< R= ltR> R? lt R@ RA lt!RB RC lt"RD RE lt#RF RG lt$RH RI lt%RJ RK lt&RL RM lt'RN RO lt(RP RQ lt)RR RS lt*RT RU lt+RV RW lt,ReRX RY llt-RZ R[ lt.R\ R] lt/R^t0R# )fOptionStorei!  plainr>   debugoptimizedreleaseminsizec                    V ^8  d   QhRRRR/# )rn   is_crossr   ro   r~   r0   )rp   s   "r8   rq   OptionStore.__annotate__)  s     9 9 9$ 9r7   c                	    / V n         \        4       V n        \        4       V n        \        4       V n        ^RIHp \        V4      V n        / V n        Wn        / V n	        / V n
        R# )r  )all_languagesN)optionsr  subprojectsproject_optionsmodule_options	compilersr]  augmentsrZ  pending_optionspending_subproject_options)r   rZ  r]  s   && r8   r  OptionStore.__init__)  sU    =?'*u1403, /$&  ,.68'r7   c                    V ^8  d   QhRRRR/# )rn   r   T.Union[OptionKey, str]ro   r&   r0   )rp   s   "r8   rq   r[  9  s      +B y r7   c                	    \        V\        4      '       d   \        V4      # V P                  '       g0   VP                  \
        P                  8X  d   VP                  4       pV# r   )r   r+   r&   rZ  rh   r   r   r   r   r   s   &&r8   ensure_and_validate_key#OptionStore.ensure_and_validate_key9  sE    c3S>! }}}0C0C!C++-C
r7   Nc               $    V ^8  d   QhRRRRRR/# )rn   r   rh  r.   z"T.Optional[ElementaryOptionValues]ro   r%   r0   )rp   s   "r8   rq   r[  J  s(     6 6%< 6Gi 6  vL 6r7   c                	    V P                  V4      pWP                  9   d   V P                  V,          P                  # V P                  P	                  W4      # r   )rk  r^  r   rd  r  )r   r   r.   s   &&&r8   get_pending_valueOptionStore.get_pending_valueJ  sH    **3/,,<<$***##''55r7   c                   V ^8  d   QhRR/# r   r0   )rp   s   "r8   rq   r[  P  s     ! ! !r7   c                	,    \        V P                  4      # r   )r  r^  r   s   &r8   __len__OptionStore.__len__P  s    4<<  r7   c                    V ^8  d   QhRRRR/# )rn   r   'T.Union[OptionKey, str]'ro   r$   r0   )rp   s   "r8   rq   r[  S  s      ";  r7   c                	   V P                  V4      pV P                  P                  VR 4      pV P                  V4      '       d'   VP                  f   Q hVf   \        RV R24      h V# VfU   \        VP                  R VP                  R7      pW0P                  9  d   \        RV R24      hV P                  V,          # V# )Nz+Tried to access nonexistant project option r   rg   rh   z2Tried to access nonexistant project parent option )	rk  r^  r  is_project_optionrg   rv   r&   rf   rh   )r   r   	potential
parent_keys   &&  r8   resolve_optionOptionStore.resolve_optionS  s    **3/LL$$S$/	!!#&&>>--- !LSEQRSTT !   &sxxD#++V
\\1"%WXbWccd#eff ||J//r7   c                    V ^8  d   QhRRRR/# )rn   r   r&   ro   z.T.Tuple[AnyOptionType, ElementaryOptionValues]r0   )rp   s   "r8   rq   r[  d  s     
/ 
/I 
/:h 
/r7   c                	P   \        V\        4      '       g   Q hV P                  V4      pV P                  V4      pVP                  pWP
                  9   d'   VP                  f   Q hV P
                  V,          pW#3# VP                  '       d   VP                  P                  pW#3# r   )	r   r&   rk  r|  r   rc  rg   r  r  )r   r   option_objectcomputed_values   &&  r8   get_option_and_value_for$OptionStore.get_option_and_value_ford  s    #y))))**3/++C0&,,-->>---!]]3/N .. ###*1177N..r7   c               $    V ^8  d   QhRRRRRR/# )rn   r   r&   r   r%   ro   r   r0   )rp   s   "r8   rq   r[  p  s(     D DI D6L DQU Dr7   c                	P    V P                  V4      w  r4VP                  V4      V8H  # r   )r  r  )r   r   r   r  current_values   &&&  r8   option_has_valueOptionStore.option_has_valuep  s+    '+'D'DS'I$++E2mCCr7   c               $    V ^8  d   QhRRRRRR/# )rn   rf   rv  rg   rj   ro   r%   r0   )rp   s   "r8   rq   r[  t  s#      ";  dz r7   c                	    \        V\        4      '       d   \        W4      pMVe   Q hTpV P                  V4      w  rEV# r   )r   r+   r&   r  )r   rf   rg   r   r  resolved_values   &&&   r8   get_value_forOptionStore.get_value_fort  sC    dC  D-C%%%C 99#>r7   c               $    V ^8  d   QhRRRRRR/# rn   r   rh  valobjr$   ro   r~   r0   )rp   s   "r8   rq   r[  }  s#     5 5%< 5m 5X\ 5r7   c                	    V P                  V4      pR VP                  9   d   \        RVP                   R 24      hV P                  W4       R# )r   z;Internal error: non-module option has a period in its name N)rk  rf   r   add_system_option_internal)r   r   r  s   &&&r8   add_system_optionOptionStore.add_system_option}  sI    **3/#((? #^_b_g_g^hhi!jkk''4r7   c               $    V ^8  d   QhRRRRRR/# )rn   r   r&   r  r$   ro   r~   r0   )rp   s   "r8   rq   r[    s"     ' 'i ' 'SW 'r7   c                	   \        V\        4      '       g   Q h\        VP                  \        4      '       g#   \        VP                  \        4      '       g   Q hWP                  9   d   R # V P
                  P                  VR 4      pVP                  '       d%   VP                  R R7      pV P                  WB4       MW P                  V&   Ve   V P                  W4       R # R # )Nr   )r   r  rf   r+   r^  rd  poprg   r   r  
set_option)r   r   r  pvalproj_keys   &&&  r8   r  &OptionStore.add_system_option_internal  s    &*----&++s++fkk3////,,##''T2>>>zzTz2H++H= &LLOOC& r7   c               (    V ^8  d   QhRRRRRRRR/# )	rn   languager+   r   rh  r  r$   ro   r~   r0   )rp   s   "r8   rq   r[    s+     , ,C ,6M ,Wd ,im ,r7   c                	    V P                  V4      pVP                  P                  VR ,           4      '       g   \        RVP                   RV R24      hV P	                  W#4       R# )r  zLInternal error: all compiler option names must start with language prefix. (z vs z_)N)rk  rf   
startswithr   r  )r   r  r   r  s   &&&&r8   add_compiler_optionOptionStore.add_compiler_option  su    **3/xx""8c>22 #opspxpxoyy}  G  ~H  HJ  "K  L  Ls+r7   c               $    V ^8  d   QhRRRRRR/# r  r0   )rp   s   "r8   rq   r[    s#     / /&= /} /Y] /r7   c                	   V P                  V4      pVP                  f   Q hWP                  9   d   \        RV R24      hVP                  '       dU   VP                  '       dC   VP                  4       p V P                  V,          p\        V4      \        V4      J d   WBn        VP                  R JVn        W P                  V&   V P                  P                  V4       WP                  9  g   Q hR #   \         d     L]i ; i)Nz.Internal error: tried to add a project option z that already exists.)rk  rg   r^  r   r  r   typer  rv   r`  addrd  )r   r   r  r{  parent_options   &&&  r8   add_project_optionOptionStore.add_project_option  s    **3/~~))),, #QRUQVVk!lmm???s~~~J	 $Z 8 &$v,6$1M
 !--t3"S  %.....   s   61C7 7DDc               (    V ^8  d   QhRRRRRRRR/# )	rn   
modulenamer+   r   rh  r  r$   ro   r~   r0   )rp   s   "r8   rq   r[    s+     % %C %6M %Wd %im %r7   c                	>   V P                  V4      pVP                  P                  R 4      '       d   \        R4      hVP                  P                  VR,           4      '       g   \        R4      hV P	                  W#4       V P
                  P                  V4       R# )r   z6FATAL internal error: somebody goofed option handling.r   z]Internal error: module option name {key.name} does not start with module prefix {modulename}.N)rk  rf   r  r   r  ra  r  )r   r  r   r  s   &&&&r8   add_module_optionOptionStore.add_module_option  s    **3/88x(( !YZZxx"":#344   "A  B  B''4$r7   c               $    V ^8  d   QhRRRRRR/# )rn   r   r&   r   r$   ro   r~   r0   )rp   s   "r8   rq   r[    s!     - -i -m - -r7   c                	   \         P                   ! V4      pVP                  e   Q h\        W!\        4       4      pVP	                  V4       VP                  4       pV'       d   V P                  WAV4       R # V P                  W4       R # r   )copyrg   r  r   r9  r  r  r  )r   r   r   	new_valuer  s   &&&  r8   add_builtin_optionOptionStore.add_builtin_option  si    iin~~%%%-c8HI	i **,
"":C8""3,r7   c                   V ^8  d   QhRR/# )rn   ro   r~   r0   )rp   s   "r8   rq   r[    s     N Nt Nr7   c                	   \         P                  4        F  w  rV P                  W4       K  	  \        \        4       FB  p\
        P                  4        F'  w  rV P                  VP                  VR 7      V4       K)  	  KD  	  R# )r   N)BUILTIN_OPTIONSitemsr  iterr   r<  r   )r   r   r   r   s   &   r8   init_builtinsOptionStore.init_builtins  se    '--/HC##C- 0.K7==?''

;
(GM @ /r7   c                    V ^8  d   QhRRRR/# )rn   r?   r+   ro   r0   )rp   s   "r8   rq   r[    s      c c r7   c                	|   \         P                  P                  V4      p\         P                  P                  V4      '       g   \	        R V: R24      hVP                  R4      '       g   VP                  R4      '       d:   \        V4      ^8X  d   V^,          R8X  d    V# \        V4      ^8X  d    V# VRR pV# )zprefix value z must be an absolute path/\r   N)ospath
expanduserisabsr   endswithr  )r   r?   s   &&r8   sanitize_prefixOptionStore.sanitize_prefix  s    ##F+ww}}V$$ =
:S!TUU??36??4#8#8 6{aF1I$4 	 V!   r7   c               (    V ^8  d   QhRRRRRRRR/# )rn   r?   r+   r   r&   r   r   ro   r0   )rp   s   "r8   rq   r[    s)          Y  u  Y^  r7   c           	         \         P                  ! V4      pTP                  P	                  R4      '       d[   TP                  4       '       dE   T\        9  d:    TP                  T4      pRTP                  9   d   \        RT RT RT: R24      hTP                  4       #   \         d    Tu # i ; i  \         d     LWi ; i)a\  
If the option is an installation directory option, the value is an
absolute path and resides within prefix, return the value
as a path relative to the prefix. Otherwise, return it as is.

This way everyone can do f.ex, get_option('libdir') and usually get
the library directory relative to prefix, even though it really
should not be relied upon.
dirz..zThe value of the 'z' option is 'z[' but directory options are not allowed to contain '..'.
If you need a path outside of the z% prefix, please use an absolute path.)pathlibPurePath	TypeErrorrf   r  is_absoluter  relative_tor   partsr   as_posix)r   r?   r   r   s   &&&&r8   sanitize_dir_option_value%OptionStore.sanitize_dir_option_value  s    	$$U+E ;;&&5+<+<+>+>55))&1 u{{"$(eW E99?
 C33  ~~%  	L	  s#   B# B6 #B32B36CCc               (    V ^8  d   QhRRRRRRRR/# )rn   r   r&   r  r%   first_invocationr   ro   r0   )rp   s   "r8   rq   r[    s1     C Ci C4J C^b Cos Cr7   c                	h  aa R pVoSP                   R8X  d   SP                  RR7      oVP                  R8X  d0   \        V\        4      '       g   Q R4       hV P                  V4      pMWV P                  V4      '       dA   V P                  R4      p\        V\        4      '       g   Q R4       hV P                  WQV4      p V P                  V4      oSP                  RJ d   \        P                  ! R	S R
24       EMD\        SP                  \        4      '       dK   SP!                  T4       F4  pTSP                  9   g   K  \        P                  ! R	S RT: R24       K6  	  M\        SP                  \"        4      '       dB   R TT3R llpSP!                  T4       Uu. uF
  qg! T4      NK  	  ppRP%                  T4      pMy\        SP                  \        4      '       dZ   \        P                  ! R	S RSP                  : 24       Y@P'                  TP                  SP                  R7      Y#4      ,          pSP)                  T4      pYP*                  9   d&   SP,                  p	SP/                  T4       R Sn        MDTP                   f   Q hT P2                  P5                  TSP,                  4      p	Y P2                  T&   YIT8g  ,          pSP6                  '       d    T'       d   T'       g   \        RS R24      hTP                  R8X  d\   T'       dT   T'       dL   \        T	\        4      '       g   Q R4       h\        T\        4      '       g   Q R4       hT P9                  Y4       T'       d   TP                  R8X  d   TR8w  d{   \        T\        4      '       g   Q R4       hT P:                  T,          w  rTP                  RR7      pTP                  RR7      pT P'                  YT4       T P'                  YT4       T#   \         d    \        RS R24      hi ; iu upi )Frl   Nr   r?   r  Unknown option: "".Tr\  z" is deprecatedr]  z is deprecatedc                    V ^8  d   QhRRRR/# )rn   rf  r+   ro   r0   )rp   s   "r8   rq   ,OptionStore.set_option.<locals>.__annotate__  s      3 3 r7   c                   < \        SP                  \        4      '       g   Q hSP                  P                  V 4      pVe$   \        P
                  ! RS RV : RV: 24       V# V # )Nr\  r]  z is replaced by )r   r  dictr  r   r  )rf  r6  	error_keyr   s   & r8   r  'OptionStore.set_option.<locals>.replace  sb    !#..$7777>>--a0'$$x	{(1%GWX`Wc%de#Or7   r  z" is replaced by r   z"Tried to modify read only option "r  rO   customr>   rV   )rg   r   rf   r   r+   r  is_builtin_optionr  r  r|  rv   r   r  r   r  r#  r%  r  rn  r  r  r^  r   r9  r  rc  r  r  reset_prefixed_optionsDEFAULT_DEPENDENTS)r   r   r  r  changedr?   rf  r  valarr	old_valuerV   r>   dkeyoptkeyr  r   s   &&&&          @@r8   r  OptionStore.set_option  sv   	2%!((D(9I88xi--9z9-,,Y7I##C((''1Ffc**6J6*66vINI	D%%c*C >>T!x	{/BC--[[+&$$x	{(1%~%VW , --  +.++i*@A*@Qgaj*@FA(I,,x	{2CCNNCUVWszzs~~z'F	ddG&&y1	,,		IMM)$ CL>>---))#syy9I!*MM#	))<<<G,< #Ei[PQ!RSS88x$4i--9z9-i--9z9-''	=sxx;.93Hi--9z9-"&"9"9)"DL::7:+DZZ^Z4FOOD)9:OOF2BCg  	D #4YKr!BCC	D" Bs   P &P/P,c               (    V ^8  d   QhRRRRRRRR/# )rn   or&   r  r%   r  r   ro   r0   )rp   s   "r8   rq   r[  D  s+     < < <7M <ae <rv <r7   c                	T   V P                   '       g   VP                  4       '       d   R # WP                  9   d   V P                  WV4      # VP	                  RR7      pVP
                  e#   W@P                  9   d   V P                  WV4      # V P                  WR7      '       dE   V P                  P                  VR4      pW P                  V&   VRJ ;'       g    \        V4      V8g  # VP
                  f#   VP                  4       pV P                  WV4      # \        RV R24      h)FNr   )r  r  r  )rZ  r  r^  r  r   rg   accept_as_pending_optionrd  r  r+   r   r   )r   r  r  r  global_optionr  s   &&&&  r8   set_user_optionOptionStore.set_user_optionD  s   }}}!1!1 ??11ABB D1<<#(E??11ABB(((NN,,00D9I&/  #$CCI)(CC\\!		A??11ABB #4QCr!:;;r7   c                    V ^8  d   QhRRRR/# )rn   D_argsz"T.Dict[OptionKey, T.Optional[str]]ro   r   r0   )rp   s   "r8   rq   r[  e  s      1S X\ r7   c                	   R pVP                  4        F  w  r4Ve   W P                  W44      ,          pK"  W0P                  9   d   V P                  V RpKC  W0P                  9  d   \	        RV 24      hV P                  V4      pY%P                  '       * ;'       d    \        VP                  4      ,          p\        VP                  4      Vn        K  	  V# )FTzUnknown option: )	r  r  rc  r^  r   get_value_objectr  r   r  )r   r  dirtyr   valstrr   s   &&    r8   set_from_configure_command&OptionStore.set_from_configure_commande  s    !<<>KC!--c::mm#MM#&ll*(+;C5)ABB ++C0\\)>>d3::.>>#CJJ// *0 r7   c               $    V ^8  d   QhRRRRRR/# )rn   
old_prefixr+   
new_prefixro   r~   r0   )rp   s   "r8   rq   r[    s!     ( ( (# ($ (r7   c                	8   \         P                  4        F  w  r4V P                  V,          pVP                  pW$9  d   \        V,          P
                  pM.W9   d!   WA,          VP                  8X  d	   WB,          pMWB,          pVP                  V4       K  	  R # r   )r  r  r^  r   r  r.   r9  )r   r  r  r  prefix_mappingr  r  s   &&&    r8   r  "OptionStore.reset_prefixed_options  sz    &B&H&H&J"F\\&)FI/+F3;;	/%1V\\A$2$>	 . :IY' 'Kr7   c                    V ^8  d   QhRRRR/# )rn   r   rh  ro   r$   r0   )rp   s   "r8   rq   r[    s     ! !$; ! !r7   c                	J    V P                  V4      pV P                  V,          # r   rk  r^  rj  s   &&r8   r  OptionStore.get_value_object  s!    **3/||C  r7   c                    V ^8  d   QhRRRR/# )rn   r   r&   ro   r~   r0   )rp   s   "r8   rq   r[    s      )  r7   c                	|    V P                   V  V P                  P                  V4       R #   \         d     R # i ; ir   )r^  r`  removerv   rj  s   &&r8   r  OptionStore.remove  s9    LL	  '', 		s   , ;;c                    V ^8  d   QhRRRR/# )rn   r   zT.Union[str, OptionKey]ro   r   r0   )rp   s   "r8   rq   r[    s     # # 7 #D #r7   c                	@    V P                  V4      pWP                  9   # r   r  rj  s   &&r8   __contains__OptionStore.__contains__  s    **3/ll""r7   c                   V ^8  d   QhRR/# r   r0   )rp   s   "r8   rq   r[    s     " "# "r7   c                	,    \        V P                  4      # r   )reprr^  r   s   &r8   r   OptionStore.__repr__  s    DLL!!r7   c                   V ^8  d   QhRR/# )rn   ro   zT.KeysView[OptionKey]r0   )rp   s   "r8   rq   r[    s     # #+ #r7   c                	6    V P                   P                  4       # r   )r^  r  r   s   &r8   r  OptionStore.keys  s    ||  ""r7   c                   V ^8  d   QhRR/# )rn   ro   zT.ValuesView[AnyOptionType]r0   )rp   s   "r8   rq   r[    s     % %3 %r7   c                	6    V P                   P                  4       # r   )r^  valuesr   s   &r8   r  OptionStore.values  s    ||""$$r7   c                   V ^8  d   QhRR/# )rn   ro   z)T.ItemsView['OptionKey', 'AnyOptionType']r0   )rp   s   "r8   rq   r[    s     $ $@ $r7   c                	6    V P                   P                  4       # r   )r^  r  r   s   &r8   r  OptionStore.items  s    ||!!##r7   c                    V ^8  d   QhRRRR/# rn   r   r&   ro   r   r0   )rp   s   "r8   rq   r[    s     + +Y +4 +r7   c                    WP                   9   # )z8Convenience method to check if this is a project option.)r`  rj  s   &&r8   ry  OptionStore.is_project_option  s    ****r7   c                    V ^8  d   QhRRRR/# )rn   optnamer&   ro   r   r0   )rp   s   "r8   rq   r[    s     0 0Y 04 0r7   c                	|    VP                  R \        P                  R7      \        9   d   R# V P	                  V4      # )Nrx  T)r   r   r   r<  is_compiler_option)r   r  s   &&r8   is_per_machine_option!OptionStore.is_per_machine_option  s2    >>T=3E3E>FJee&&w//r7   c                    V ^8  d   QhRRRR/# r  r0   )rp   s   "r8   rq   r[    s      I $ r7   c                	    VP                   \        9   d   R # RVP                   9  d   R# VP                   P                  R4      ^ ,          pVR9   d   R # W P                  9   d   R # R# )Tr  F)r  rN   )rf   _BUILTIN_NAMESr   r]  r   r   r?   s   && r8   is_reserved_nameOptionStore.is_reserved_name  sW    88~%chh$Q' %%'''r7   c                    V ^8  d   QhRRRR/# r  r0   )rp   s   "r8   rq   r[    s     H HY H4 Hr7   c                Z    VP                   \        9   ;'       g    V P                  V4      # )z8Convenience method to check if this is a builtin option.)rf   r#  is_module_optionrj  s   &&r8   r  OptionStore.is_builtin_option  s$    xx>)GGT-B-B3-GGr7   c                    V ^8  d   QhRRRR/# r  r0   )rp   s   "r8   rq   r[    s     ~ ~) ~ ~r7   c                    VP                   P                  R4      ;'       d)    VP                  R\        P                  R7      \
        9   # )z5Convenience method to check if this is a base option.b_Nrx  )rf   r  r   r   r   rR  rj  s   &&r8   is_base_optionOptionStore.is_base_option  s;     xx""4(}}SZZ4Q^QcQcZ-dh}-}}r7   c                    V ^8  d   QhRRRR/# r  r0   )rp   s   "r8   rq   r[    s     + +Y +4 +r7   c                n    \        V\        4      '       d   TpMVP                  pVP                  R4      # )z8Convenience method to check if this is a backend option.backend_)r   r+   rf   r  )r   r   rf   s   && r8   is_backend_optionOptionStore.is_backend_option  s,    c3D88Dz**r7   c                    V ^8  d   QhRRRR/# r  r0   )rp   s   "r8   rq   r[    s     	 	i 	D 	r7   c                    RVP                   9  d   R# VP                   P                  R4      ^ ,          pW P                  9   d   R# R# )z9Convenience method to check if this is a compiler option.r  FT)rf   r   r]  r$  s   && r8   r  OptionStore.is_compiler_option  s<     chh$Q''''r7   c                    V ^8  d   QhRRRR/# r  r0   )rp   s   "r8   rq   r[    s     * *I *$ *r7   c                	    WP                   9   # r   )ra  rj  s   &&r8   r)  OptionStore.is_module_option  s    ))))r7   c                    V ^8  d   QhRRRR/# )rn   collr  ro   z$T.Tuple[T.Optional[str], OptionDict]r0   )rp   s   "r8   rq   r[    s     
" 
" 
"8\ 
"r7   c                	    R p/ pVP                  4        F?  w  rEVP                  R8X  d&   \        V\        4      '       g   \	        R4      hTpK;  WSV&   KA  	  W#3# )Nr?   z2Incorrect type for prefix option (expected string))r  rf   r   r+   r   )r   r<  r?   others_dkrf  s   &&    r8   prefix_split_options OptionStore.prefix_split_options  sZ    !JJLDAvv!!!S))()]^^ ! !!r7   c               (    V ^8  d   QhRRRRRRRR/# )rn   project_default_optionsr  cmd_line_optionsmachine_file_optionsro   z+T.Tuple[OptionDict, OptionDict, OptionDict]r0   )rp   s   "r8   rq   r[    s6     f f5?f.8f 3=f ;	fr7   c                	X   \         P                   ! V4      pR pV P                  V4      w  rgVf   TMTpVP                  \        R4      R 4      pVe   \	        V\
        4      '       g   Q R4       hVf   TMTpV P                  V4      w  riVf   TMTpVe   V P                  V4       WyV3# )Nr?   z0mypy: prefix from machine file was not a string?)r  r@  r  r&   r   r+   hard_reset_from_prefix)
r   rC  rD  rE  nopref_machine_file_optionsr?   possible_prefixnopref_project_default_optionspossible_prefixvnopref_cmd_line_optionss
   &&&&      r8   first_handle_prefixOptionStore.first_handle_prefix  s     '+ii0D&E#<@<U<UVm<n9*26::9X;NPTU':6F+L+L  	A  OA  	AL+39I595N5NO_5`2*2''/.Ideer7   c                    V ^8  d   QhRRRR/# )rn   r?   r+   ro   r~   r0   )rp   s   "r8   rq   r[    s     < <S <T <r7   c                	   V P                  V4      p\        P                  4        Fn  w  r#V P                  V,          pW9   d
   W1,          pM6\        V,          P
                  p\        V\        4      '       g   Q R 4       hTpVP                  V4       Kp  	  V P                  \        R4      ,          P                  V4       R# )r  r?   N)
r  r  r  r^  r  r.   r   r+   r9  r&   )r   r?   r  r  r  r  _vs   &&     r8   rG  "OptionStore.hard_reset_from_prefix  s    %%f-&B&H&H&J"F\\&)F'*2	$V,44!"c**6J6*	Y' 'K 	Yx()33F;r7   c               (    V ^8  d   QhRRRRRRRR/# )rn   project_default_options_inr  cmd_line_options_inmachine_file_options_inro   r~   r0   )rp   s   "r8   rq   r[    s4     8 8KU8DN8 IS8 X\8r7   c                	8   V P                  VVV4      w  rEpVP                  4        Fc  w  rxV P                  '       g   VP                  4       '       d   K/  VP                  '       d   WP
                  V&   KQ  V P                  WxR 4       Ke  	  \        P                  ! VP                  4       VP                  4       4       FU  w  rxV P                  '       g   VP                  4       '       d   K/  VP                  '       d   KC  V P                  WxR 4       KW  	  R# )TN)	rM  r  rZ  r  rg   re  r  	itertoolsr   )	r   rT  rU  rV  rC  rD  rE  r   r  s	   &&&&     r8   &initialize_from_top_level_project_call2OptionStore.initialize_from_top_level_project_call  s     MQLdLdeexe|M~I	 4H 388:KC ===S%5%5%7%7~~~ 8>//4 $$S$7 ;$ %??+?+E+E+GIYI_I_IabKC ===S%5%5%7%7>>>$$S$7 cr7   c               $    V ^8  d   QhRRRRRR/# )rn   r   r&   r  r   ro   r0   )rp   s   "r8   rq   r[  3  s"     ( (I ( (Z^ (r7   c                	    V P                  V4      '       d   R # V'       d   V P                  V4      '       d   R # V P                  V4      # )T)r  r3  r.  )r   r   r  s   &&&r8   r  $OptionStore.accept_as_pending_option3  s?     ""3'' 6 6s ; ;""3''r7   c               0    V ^8  d   QhRRRRRRRRRRRR	/# )
rn   rg   r+   spcall_default_optionsr  rC  rD  rE  ro   r~   r0   )rp   s   "r8   rq   r[  <  sJ     ?) ?)47?)@J?) BL?) ;E	?)
 ?I?)
 NR?)r7   c                	   / pVP                  4        F^  w  rxVP                  V8X  d%   VP                  R R7      p	\        RV	 RV R24      hVP                  f   VP                  VR7      pWV&   K`  	  \        P
                  ! VP                  4       VP                  4       4       F`  w  rxVP                  e   K  V P                  VP                  4       4      '       d   K<  VP                  VR7      p
VP                  V
R 4       Kb  	  V P                  P                  4        F  w  rxVP                  V8X  g   K  WV&   K  	  VP                  4        F^  w  rxVP                  V8X  d%   VP                  R R7      p	\        RV	 RV R24      hVP                  f   VP                  VR7      pWV&   K`  	  \        P
                  ! VP                  4       VP                  4       4       F  w  rxVP                  V8X  g   K  WV&   K  	  VP                  4        F  w  rxVP                  V8w  d[   VP                  V P                  9   d0   V P                  Wx4      '       g   \        P                  ! R4       K`  WP                  V&   Kp  V P                  P                  VR 4       V P                  P                  VR 4       WpP                  9  g   K  V P!                  WxR4       K  	  V P                  P#                  V4       R # )Nr   z4subproject name not needed in default_options; use "z" instead of "r  zMoption {key} is set in subproject {subproject} but has already been processedT)r  rg   r   r   rX  r   ry  r   r  re  r_  r  r   warningrd  rc  r  r  )r   rg   r_  rC  rD  rE  r^  r   r  without_subpsubp_keys   &&&&&&     r8   initialize_from_subproject_call+OptionStore.initialize_from_subproject_call<  s    ! 388:KC~~+"zzTz:$'[\h[iiwx{w||}%~~~%jjJj7!CL ; %??+?+E+E+GIYI_I_IabKC~~%d.D.DS[[].S.S:::<Hd+	 c  ::@@BKC~~+% C
 2779KC~~+"zzTz:$'[\h[iiwx{w||}%~~~%jjJj7!CL : %??+?+E+E+GIYI_I_IabKC~~+% c
 #==?KC~~+>>T%5%55d>S>STW>`>`LL!pq 8>//4++//T:  $$S$/--'$$S$7 + 	Z(r7   c               $    V ^8  d   QhRRRRRR/# )rn   r`  r'   rg   r   ro   r~   r0   )rp   s   "r8   rq   r[  }  s$     ! !6P !^h !mq !r7   c           	     	   VP                  4        F  w  r4VP                  \        P                  J g   Q hW0P                  9  d   V P                  W44       KH  VP                  V8w  d   \        R VP                   RV R24      hV P                  V4      p\        V4      \        V4      Jd   V P                  W4P                  4       K  \        WT4      '       g   K  W@P                  V&    VP                  VP                  4       K  	  V P                  P#                  4       VP#                  4       ,
          pV F@  pV P%                  V4      '       g   K  VP                  V8X  g   K/  V P'                  V4       KB  	  R#   \         d/    \        P                   ! RT RTP                   R2RR7        EK  i ; i)	z&Tried to set an option for subproject z from !zOld value(s) of z, are no longer valid, resetting to default (z).F)fatalN)r  rh   r   r   r^  r  rg   r   r  r  r  r   r  r9  r   r   ra  r  ry  r  )r   r`  rg   r   r   oldvalpotential_removed_keyss   &&&    r8   update_project_options"OptionStore.update_project_options}  sq   )//1JC;;-"4"4444,,&''3~~+'*PQTQ_Q_P``fgqfrrs(tuu**3/FF|4;.[[1&v55 %*S!.OOFLL1# 2. "&!2!2!47K7K7M!M)C%%c**s~~/KC  * & .LL#3C58dejepepdqqs!t',. ..s   .F4F=<F=)	r]  rc  rZ  ra  r^  rd  re  r`  r_  )rU  F)r8  T)2T)3F)r  Tr   )F)1r1   r2   r3   r4   r  r  rk  ro  rs  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  ry  r  r%  r  r.  r3  r  r)  r@  rM  rG  rY  r  rd  rl  r6   r0   r7   r8   rT  rT  !  s   !#3!;*K#\#[	9 "6!"
/D5' ,/.%-N" @CJ<B8(!#"#%$+0
H~
+	*
"f.<8B(?)B! !r7   rT  )r   r   r   r   r    r!   r"   r#   )r;   vsvs2010vs2012vs2013vs2015vs2017vs2019r<   r=   xcoder  )rU  r>   rV  rW  rX  r  )rl   )r2  staticboth)r2  rx  r  )rU  r8  gr9  rn  ro  r  )onr:  r_  )r8  r9  rn  ro  
everything)r.   
nofallback
nodownloadforcefallback	nopromoter  )r  r?   systemvenv)r  mdmddmtmtd)r:  generateuse)r  rJ  never)r!  r"  z
if-release)a__conditional_annotations__
__future__r   collectionsr   rX  r   r'  r  r<  r  r  typingrv  mesonlibr   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   rl   r   rz  typing_extensionsr   r   r   r   interpreterbaser   Unionr   r+   DictListr   r5   r$   rk   r%   r'   TupleOptionalr(   r*   r;  TypeVarr:   backendlistgenvslitelistbuildtypelistr#  r   rd   r&   r  	dataclassGenericr  r?  r"   r   ra  r   r  r#   r   r  r!   r   r  r  r    r  r  r-  rf   r1  rw  r;  r  r  r<  r  
MSCRT_VALSrR  rT  )r  r  s   0@r8   <module>r     s
  
 # " #      	      " ???FF+ !c166#s(3CQVVC[(P QNIQ ww	. /M9 / )*S$s0K(LIL,-FF;3M,N	N!"C-)L!MOYMiu    YYt_~8$T
''' ' 	'
 ' ' ' ' ' ' ' ' ' ' '  !'" #'$ %'& ''( )'* +', -'. /'0 1'2 3'4 5'6 7'8 9': ;'< ='> ?'@ A'B C'D E'F G'H I'J K'L M'R 
79 4 9D3 D3L ???FF9.D#DEJ	E(&2 (& (&T .:b> . .z#  d,T2 d d&#z"~ #@ 	}(- 	} 	}s  O&qww/Dh/N'OP O O, *3/  $ .j, . .$ OC0  > $ $ $  YYt:&,;]O ;]|)=F6 	#8.:JK#95A$9?;LM'>@R@TU$9?;LM#68HI';R@'EGYG[\&=?P?RS*EuM#:N<LM$A?CTU)+TV[\'?ASAUV#<#QIaffq #< 8 ( #$&&)@/+RTZ[	#3Wk\`a|!	
 	%8'=Y'#OQUV)+A8Uqr02[]e <	>+'UW[\)cemnsetu":HxY_N`a(JI`jlu_vw(<cKrs/+`bgh*&LdS'#=uE?[\,(:AK)H#Wyz($>F[)  FK  	L24Z\^_'#GY]^,(@%H 	13\^cd 	.0Mq\^jkl,.VX` D	F,.egij,.ikmn46fhlm.0~  AC  	DU+C +#-=+#QIaffq +#-= 9 -^ e$7$=$=$?AUA[A[A]^_ 	/1dfhi13dfhi#D#QIaffq #D @  l&&!1o&&lL!Q&*lDT!U!"B!"BE A  0
 #$&&)@'#<dC'#?G/+\^_`&KYajlr`st+-eglm.0Z\^_l,CRH*&KTR,(JDQ6Ga	c,(CUK.B]	_)7<[	]-)Y[_`'#NPUV+'Y[`a9;K"24K!LL	N)C #>#QIaffq #> : 6w	! w	!e<&-=bD&>s   1^/0^4^9?^>