
    <hO9                       S SK Jr  SSKJr  S SKr\\R
                  S'   S SKrS SKrS SK	r	S SK
r
S SKrSSKJrJr  SSKJr  SS jr " S	 S
5      rSS jrSS jrSS jrS rSS jrSS jr\S:X  a  \R4                  " \" 5       5        gg)    )annotations   )_pathlibNpathlib)MesonExceptionMesonBugException)mlogc                  ^  SS K n[        T [        5      (       a  [        R                  " T 5        [        R
                  " 5       nUbu  [        R                  " S[        R                  " U5      5        [        R                  " US[        R                  R                  U5       S35      nU(       a  [        U5        [        R                  R                  S5      (       a  T eg[        R                  R                  S5      (       a  T eUR                  5         US:X  a  g[        T [         5      (       a+  [        R                  " [#        S	5      5        T R$                  $ S
n['        U 4S jS 5       5      (       a-  [)        UT R*                  T R,                  T R.                  5      m O[)        U5      m [        R                  " T 5        g)Nr   z
A full log can be found atz%CI platform detected, click here for z
 contents.MESON_FORCE_BACKTRACEr   	runpython   zeUnhandled python OSError. This is probably not a Meson bug, but an issue with your build environment.zUnhandled python exceptionc              3  B   >#    U  H  n[        TUS 5      S Lv   M     g 7fN)getattr).0aes     u/mnt/mint/home/seanl/mnt/public/Repos/ladybird/Build/vcpkg/downloads/tools/meson-1.9.0-d1fcc2/mesonbuild/mesonmain.py	<genexpr>errorhandler.<locals>.<genexpr>7   s!     X<Wq71a&d2<Ws   )filelinenocolno)	traceback
isinstancer   r	   	exceptionshutdownlogboldci_fold_fileospathbasenameprintenvironget	print_excOSError	Exceptionerrnoallr   r   r   r   )r   commandr   logfilecontentsmsgs   `     r   errorhandlerr0      sQ   !^$$q--/HH3TYYw5GH((4YZ\ZaZaZjZjkrZsYtt~2  AHh::>>122G ::>>122Gk!7##NN9 &G H I77N.CX<WXXX%c166188QWWE%c*NN1    c                  n    \ rS rSrSS jr S       SS jjrSS jrSS jrSS jrSS jr	SS	 jr
S
rg)CommandLineParser@   c                  ^ ^ SSK JnJnJnJnJnJnJnJmJ	nJ
n	Jn
JnJn  SSKJnJn  SSKJn  SS KnUR)                  5       R*                  T l        U 4S jT l        0 T l        / T l        [4        R6                  " ST R.                  S9T l        T R8                  R;                  S	S
SS9T l        T R?                  SUR@                  URB                  SS9  T R?                  SUR@                  URB                  SS9  T R?                  SUR@                  URB                  SS9  T R?                  SUR@                  URB                  SS9  T R?                  SUR@                  URB                  SS9  T R?                  SUR@                  URB                  SS9  T R?                  SUR@                  URB                  SS9  T R?                  SUR@                  URB                  SS9  T R?                  SUR@                  URB                  SS9  T R?                  S UU 4S! jTRB                  S"S9  T R?                  S#U
R@                  U
RB                  S$S9  T R?                  S%UR@                  URB                  S&S9  T R?                  S'UR@                  URB                  S(S9  T R?                  S)UR@                  URB                  S*S9  T R?                  S+UR@                  URB                  S,/S-S.9  T R?                  S/T RD                  T RF                  S0S9  T R?                  S1T RH                  T RJ                  [4        RL                  S9  T R?                  S2U	R@                  U	RB                  [4        RL                  S9  g )3Nr   )mconfmdistminitminstallmintromsetupmtestrewritermsubprojectsmunstable_coredatamcompilemdevenvmformat)	env2mfile	reprotest)wraptoolr   c                p   > [         R                  " U [        TR                  S-  5      TR                  S9$ )Nr   )max_help_positionwidth)argparseHelpFormatterint
term_width)progselfs    r   <lambda>,CommandLineParser.__init__.<locals>.<lambda>I   s9    h&<&<TUXY]YhYhklYlUmuy  vE  vE  'Fr1   mesonrM   formatter_classCommandsr,   z8If no command is specified it defaults to setup command.)titledestdescriptionsetupzConfigure the project)help_msg	configurezChange project optionsdistzGenerate release archiveinstallzInstall the project
introspectzIntrospect projectinitzCreate a new projecttestz	Run testswrapz
Wrap toolssubprojectszManage subprojectsrewritec                <   > TR                  U TR                  5      $ r   )add_arguments	formatter)parserr=   rN   s    r   rO   rP   b   s    83I3I&RVR`R`3ar1   zModify the project definitioncompilezBuild the projectdevenvz%Run commands in developer environmentrC   z5Convert current environment to a cross or native filerD   z#Test if project builds reproduciblyformatfmtzFormat meson source file)aliasesrY   helpzPrint help of a subcommandr   zunstable-coredata)' r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   scriptsrC   rD   r`   rE   shutilget_terminal_sizecolumnsrL   re   commandshidden_commandsrI   ArgumentParserrf   add_subparsers
subparsersadd_commandrd   runadd_help_argumentsrun_help_commandadd_runpython_argumentsrun_runpython_commandSUPPRESS)rN   r6   r7   r8   r9   r:   r;   r<   r>   r?   r@   rA   rB   rC   rD   rE   ro   r=   s   `                @r   __init__CommandLineParser.__init__A   s]    	S  	S  	S  	S1" 224<< F>@,.--7DNN[++44:IA{ 5 }&"6"6

"9 	 	;e&9&9599": 	 	=!4!4eii"< 	 	?H$:$:HLL"7 	 	9v';';VZZ"6 	 	8!4!4eii"8 	 	:!4!4eii"- 	 	/!7!7". 	 	0(B(BLDTDT"6 	 	8$ackcoco"A 	 	CH$:$:HLL"5 	 	77#8#8'++"I 	 	Ki&=&=y}}"Y 	 	[i&=&=y}}"G 	 	I7#8#8'++PUw"< 	 	> 	!8!8$:O:O"> 	 	@ 	d&B&BDD^D^"*"3"3 	 	5,.@.N.NPbPfPf"*"3"3 	 	5r1   Nc                j   U=(       d    / nU[         R                  :X  a>  [         R                  " SU-   U R                  S9nU R                  R                  U5        O$U R                  R                  XXPR                  S9nU" U5        UR                  US9  U/U-    H  nX`R                  U'   M     g )Nzmeson rR   )rl   rk   rS   )run_func)
rI   r}   rt   re   rs   appendrv   
add_parserset_defaultsrr   )rN   nameadd_arguments_funcr   rY   rk   pis           r   rw   CommandLineParser.add_commandx   s    -R x(((''X_dnn]A  ''-**4aoao*pA1	)'!A MM! "r1   c                    UR                  SSSSS9  UR                  SS[        R                  " 5       S9  UR                  S	5        UR                  S
[        R                  S9  g )Nz-c
store_trueeval_argF)actionrV   defaultz	--versionversion)r   r   script_filescript_args)nargs)add_argumentplatformpython_versionrI   	REMAINDERrN   rf   s     r   r{   )CommandLineParser.add_runpython_arguments   s_    DJPUVK	8CZCZC\]M*M1C1CDr1   c                V   UR                   [        R                  SS & UR                  (       a  [	        UR
                  5        gSS Kn[        R                  R                  S[        R                  R                  UR
                  5      5        UR                  UR
                  SS9  g)Nr   r   __main__)run_name)r   sysargvr   execr   runpyr"   insertr!   dirnamerun_path)rN   optionsr   s      r   r|   'CommandLineParser.run_runpython_command   sv    **$$%
  HHOOArwww/B/BCDNN7..NDr1   c                h    UR                  SS[        U R                  R                  5       5      S9  g )Nr,   ?)r   choices)r   listrr   keysr   s     r   ry   $CommandLineParser.add_help_arguments   s)    IS$t}}?Q?Q?S:TUr1   c                    UR                   (       a(  U R                  UR                      R                  5         gU R                  R                  5         g)Nr   )r,   rr   
print_helprf   )rN   r   s     r   rz   "CommandLineParser.run_help_command   s<    ??MM'//*557  KK""$r1   c                   Sn[        U R                  R                  5       5      SS/-   nU(       a	  US   U;  a  SnS/U-   nUS   U R                  ;   a  US   nU R                  U   nUSS  nOU R                  nS nSSKJn  UR                  U5      nUR                  U5      nUc  UR                  nUS	;   =(       a    [        R                  S
:  n UR                  U5      U(       a  [        R                  " SSS9  U(       a  [        R                  " SSS9  [        R                   " 5         $ ! ["         ab  n	[%        X5      s S n	A	U(       a  [        R                  " SSS9  U(       a  [        R                  " SSS9  [        R                   " 5         $ S n	A	ff = f! U(       a  [        R                  " SSS9  U(       a  [        R                  " SSS9  [        R                   " 5         f = f)NFz-hz--helpr   TrX   r   mesonlib>   r_   rX   rg   r\   )      znRunning the setup command as `meson [options]` instead of `meson setup [options]` is ambiguous and deprecated.)fatalzdYou are using Python 3.6 which is EOL. Starting with v0.62.0, Meson will require Python 3.7 or newer)r   rr   r   rs   rf   rm   r   expand_arguments
parse_argsr,   r   version_infor   r	   warningnoticer   r)   r0   )
rN   argsimplicit_setup_command_noticeknown_commandsr,   rf   r   r   !pending_python_deprecation_noticer   s
             r   rx   CommandLineParser.run   s   (-% dmm0023tX6FFtAwn4,0)9t#D 7d***1gG]]7+F8D[[FG((.##D)?ooG >>\3CSCSV\C\ 	*	##G, - T[`b0 ELQSMMO  	,++, T[`b0 ELQSMMO	, - T[`b0 ELQSMMOs1   D3 3
F=
FFF" FF" "AG1)rr   re   rs   rf   rv   rL   returnNoner   )r   strr   z+T.Callable[[argparse.ArgumentParser], None]r   z%T.Callable[[argparse.Namespace], int]rY   r   rk   T.List[str]r   r   )rf   zargparse.ArgumentParserr   r   )r   zargparse.Namespacer   rK   )r   r   r   rK   )__name__
__module____qualname____firstlineno__r~   rw   r{   r|   ry   rz   rx   __static_attributes__ r1   r   r3   r3   @   sO    55p lp!C!OR!]h!tx!EV*r1   r3   c                v   SSSSSSS.nUR                  X 5      n [        R                  " SU-   5      n UR                  U5      $ ! [         a   n[        R
                  " U5         S nAg	S nAff = f! [         a:  n[        R                  " S
U  S35        [        R
                  " U5         S nAg	S nAff = f)N	meson_exemeson_installdelwithsuffixgtkdochelperhotdochelperregen_checker)exer\   	delsuffixgtkdochotdoc
regencheckzmesonbuild.scripts.r   z	Error in z helper script:)	r&   	importlibimport_moduleModuleNotFoundErrorr	   r   rx   r   error)script_namer   
script_mapmodule_namemoduler   s         r   run_script_commandr      s    $,.** /1J ..:K(()>)LM
zz+&&  q  

Y{m?;<qs.   A A4 
A1A,,A14
B8>0B33B8c                     [         R                  R                  (       a[  [         R                  R                  R                  5       R	                  S5      (       d  [         R                  R                  SS9  g g g )NzUTF-surrogateescape)errors)r   stdoutencodingupper
startswithreconfigurer   r1   r   ensure_stdout_accepts_unicoder      sQ    
zz3::#6#6#<#<#>#I#I&#Q#Q

&78 $Rr1   c                2    SSK Jn  UR                  U 5        g )Nr   r   )rm   r   set_meson_command)mainfiler   s     r   r   r      s    x(r1   c           
        SS K nSS KnS nUR                  UR                  R                  UR                  R
                  5       H  nUR                  R                  UR                  5      nSUR                   S3nU" X5      (       d  MG  U" X5      (       d  MV  [        R                  " SUR                   SU SU S35        M     g )	Nr   c                F    U  H  nUR                  U5      (       d  M    g   g)NTF)r   )colltargetentrys      r   has_startswith.validate_original_args.<locals>.has_startswith   s%    E''  r1   z-D=zGot argument z	 as both z and z. Pick one.)
mesonbuild.options	itertoolschainr   BUILTIN_DIR_OPTIONSBUILTIN_CORE_OPTIONSargparse_name_to_argr   r   exit)r   
mesonbuildr   r   	optionkeylongargshortargs          r   validate_original_argsr      s     __Z%7%7%K%KZM_M_MtMtu	$$99)..I	'q)$((^D-K-KHH	/y
%yP[\^	 vr1   c                   [         R                  R                  S5      (       aB  SS Kn[        [
        [        [        4 H  nUR                  SUSS9  M     UR                  SSS9  [        R                  S	:  aR  [         R                  R                  S
5      (       a.  SS KnUR                  S[        SS9  UR                  SS[        S9  [        5         [        R                  S:X  aQ  [         R                  R                  SS5      S;  a-  [        R                  " S5        [        R                  " S5        gU S S  n[!        U5      S:  aN  US   S:X  aE  US   S:X  a*  [#        U5        SSKJn   UR)                  S/USS  -   5      $ [/        US   USS  5      $ [#        U5        [1        U5        [3        5       R)                  U5      $ ! [*         a  n[-        US5      s S nA$ S nAff = f)NMESON_SHOW_DEPRECATIONSr   r   r   )categoryr   ignorez.*importlib-resources.*)message)r   
   MESON_RUNNING_IN_PROJECT_TESTSz)UTF-8 Mode affects .*getpreferredencoding)r  r   cygwinMSYSTEMrm   )MSYSrm   zYThis python3 seems to be msys/python on MSYS2 Windows, but you are in a MinGW environmentzFPlease install it via https://packages.msys2.org/base/mingw-w64-pythonr   z
--internalr   
regenerate)r;   z--reconfigurerX   )r!   r%   r&   warningsDeprecationWarningSyntaxWarningFutureWarningPendingDeprecationWarningfilterwarningsr   r   EncodingWarningr   r   r	   r   lenr   rm   r;   rx   r)   r0   r   r   r3   )original_argsr   r	  typr   r;   r   s          r   rx   rx      s   	zz~~/00&}F_`C##Gc,#O a2KL
7"rzz~~6V'W'W/,W 	2]hwx
 "# ||xBJJNN9b$A$U

no

[\D 4yA~$q'\17l"h' 0zz?"3d12h">?? &d1gtABx88h4 ""4((  0#Aw//0s   4G 
G-G("G-(G-c                 R   [        [        SS5      (       aE  [        R                  R	                  [        R
                  5      (       d   e[        R
                  n O0[        R                  R                  [        R                  S   5      n [        [        R                  SS  U 5      $ )NfrozenFr   r   )	r   r   r!   r"   isabs
executableabspathr   rx   )launchers    r   mainr  2  sh    sHe$$ww}}S^^,,,,>>77??388A;/sxx|X&&r1   r   )r   r)   r,   r   r   rK   )r   r   r   r   r   rK   r   )r   r   r   r   )r  r   r   r   r   rK   )r   rK   )
__future__r   rm   r   r   modulesos.pathr!   r   r   rI   typingT
utils.corer   r   r	   r0   r3   r   r   r   r   rx   r  r   r   r   r1   r   <module>r      s    #  
!I       9 %RK KZ.9)
^&0)d' zHHTV r1   