§
    ‹ã÷cÜ2  ã                  óô   — d dl mZ ddlmZ d dlZeej        d<   d dlZd dlZd dl	Z	d dl
Z
ddlmZmZ ddlmZ d„ Z G d	„ d
¦  «        Zd„ Zd„ Zd„ Zd„ Zd„ Zedk    r ej         e¦   «         ¦  «         dS dS )é    )Úannotationsé   )Ú_pathlibNÚpathlib)ÚMesonExceptionÚMesonBugException)Úmlogc                ó¾  ‡ — dd l }t          ‰ t          ¦  «        rst          j        ‰ ¦  «         t          j        ¦   «         }|�'t          j        dt          j        |¦  «        ¦  «         t          j	         
                    d¦  «        r‰ ‚dS t          j	         
                    d¦  «        r‰ ‚|                     ¦   «          |dk    rdS t          ‰ t          ¦  «        rt          j        d¦  «         ‰ j        S d}t          ˆ fd	„d
D ¦   «         ¦  «        r"t          |‰ j        ‰ j        ‰ j        ¦  «        Š nt          |¦  «        Š t          j        ‰ ¦  «         dS )Nr   z
A full log can be found atÚ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  ó>   •K  — | ]}t          ‰|d ¦  «        d uV — Œd S ©N)Úgetattr)Ú.0ÚaÚes     €ú6/usr/lib/python3/dist-packages/mesonbuild/mesonmain.pyú	<genexpr>zerrorhandler.<locals>.<genexpr>=   s4   øè è € ÐXÐX°q•7˜1˜a Ñ&Ô&¨dÐ2ÐXÐXÐXÐXÐXÐXó    )ÚfileÚlinenoÚcolno)Ú	tracebackÚ
isinstancer   r	   Ú	exceptionÚshutdownÚlogÚboldÚosÚenvironÚgetÚ	print_excÚOSErrorÚerrnoÚallr   r   r   r   )r   Úcommandr   ÚlogfileÚmsgs   `    r   Úerrorhandlerr*       s^  ø€ ØÐÐÐÝ�!•^Ñ$Ô$ð  ÝŒ�qÑÔÐÝ”-‘/”/ˆØÐÝŒHÐ3µT´Y¸wÑ5GÔ5GÑHÔHÐHÝŒ:�>Š>Ð1Ñ2Ô2ð 	ØˆGØˆqõ Œ:�>Š>Ð1Ñ2Ô2ð 	ØˆGØ×ÒÑÔÐà�kÒ!Ð!Ø�1Ý˜�7Ñ#Ô#ð 
	ÝŒNð Gñ Hô Hð Hà”7ˆNà.ˆCÝÐXÐXÐXÐXÐ<WÐXÑXÔXÑXÔXð +Ý% c¨1¬6°1´8¸Q¼WÑEÔE��å% cÑ*Ô*�ÝŒN˜1ÑÔÐØˆqr   c                  ó<   — e Zd Zd„ Zdd„Zdd„Zd„ Zd„ Zd	„ Zd
„ Z	dS )ÚCommandLineParserc                óØ  ‡ ‡— ddl m}m}m}m}m}m}m}mŠm	}m
}	m}
m} ddlm} ddlm} dd l}|                     ¦   «         j        ‰ _        ˆ fd„‰ _        i ‰ _        g ‰ _        t1          j        d‰ j        ¬¦  «        ‰ _        ‰ j                             d	d
d¬¦  «        ‰ _        ‰                      d|j        |j        d¬¦  «         ‰                      d|j        |j        d¬¦  «         ‰                      d|j        |j        d¬¦  «         ‰                      d|j        |j        d¬¦  «         ‰                      d|j        |j        d¬¦  «         ‰                      d|j        |j        d¬¦  «         ‰                      d|j        |j        d¬¦  «         ‰                      d|j        |j        d¬¦  «         ‰                      d|j        |j        d¬¦  «         ‰                      d ˆˆ fd!„‰j        d"¬¦  «         ‰                      d#|
j        |
j        d$¬¦  «         ‰                      d%|j        |j        d&¬¦  «         ‰                      d'|j        |j        d(¬¦  «         ‰                      d)‰ j         ‰ j!        d*¬¦  «         ‰                      d+‰ j"        ‰ j#        t0          j$        ¬¦  «         ‰                      d,|	j        |	j        t0          j$        ¬¦  «         d S )-Nr   )ÚmconfÚmdistÚminitÚminstallÚmintroÚmsetupÚmtestÚrewriterÚmsubprojectsÚmunstable_coredataÚmcompileÚmdevenv)Ú	env2mfile)Úwraptoolr   c                óf   •— t          j        | t          ‰j        dz  ¦  «        ‰j        ¬¦  «        S )Nr   )Úmax_help_positionÚwidth)ÚargparseÚHelpFormatterÚintÚ
term_width)ÚprogÚselfs    €r   ú<lambda>z,CommandLineParser.__init__.<locals>.<lambda>O   s=   ø€ ¥hÔ&<¸TÕUXÐY]ÔYhÐklÑYlÑUmÔUmÐuyô  vEð  'Fñ  'Fô  'F€ r   Úmeson©rC   Ú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                ó:   •— ‰                      | ‰j        ¦  «        S r   )Úadd_argumentsÚ	formatter)Úparserr5   rD   s    €€r   rE   z,CommandLineParser.__init__.<locals>.<lambda>h   s   ø€ °8×3IÒ3IÈ&ÐRVÔR`Ñ3aÔ3a€ r   zModify the project definitionÚcompilezBuild the projectÚdevenvz%Run commands in developer environmentr:   z5Convert current environment to a cross or native fileÚhelpzPrint help of a subcommandr   zunstable-coredata)%Ú r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   Úscriptsr:   rU   r;   ÚshutilÚget_terminal_sizeÚcolumnsrB   rZ   ÚcommandsÚhidden_commandsr?   ÚArgumentParserr[   Úadd_subparsersÚ
subparsersÚadd_commandrY   ÚrunÚadd_help_argumentsÚrun_help_commandÚadd_runpython_argumentsÚrun_runpython_commandÚSUPPRESS)rD   r.   r/   r0   r1   r2   r3   r4   r6   r7   r8   r9   r:   r;   ra   r5   s   `              @r   Ú__init__zCommandLineParser.__init__G   s=  øø€ ð 	Jð  	Jð  	Jð  	Jð  	Jð  	Jð  	Jð  	Jð  	Jð  	Jð  	Jð  	Jð  	Jð  	Jð  	Jð  	Jð  	Jð  	Jð  	Jð  	Jð  	Jð  	Jð  	Jð  	Jð  	Jð  	Jð  	Jð  	JØ&Ð&Ð&Ð&Ð&Ð&Ø"Ð"Ð"Ð"Ð"Ð"Øˆˆˆà ×2Ò2Ñ4Ô4Ô<ˆŒð Fð  Fð  Fð  FˆŒàˆŒØ!ˆÔÝÔ-°7ÈDÌNÐ[Ñ[Ô[ˆŒØœ+×4Ò4¸:ÈIØA{ð 5ñ }ô }ˆŒà×Ò˜ &Ô"6¸¼
Ø"9ð 	ñ 	;ô 	;ð 	;à×Ò˜ eÔ&9¸5¼9Ø":ð 	ñ 	=ô 	=ð 	=à×Ò˜ Ô!4°e´iØ"<ð 	ñ 	?ô 	?ð 	?à×Ò˜ HÔ$:¸H¼LØ"7ð 	ñ 	9ô 	9ð 	9à×Ò˜ vÔ';¸V¼ZØ"6ð 	ñ 	8ô 	8ð 	8à×Ò˜ Ô!4°e´iØ"8ð 	ñ 	:ô 	:ð 	:à×Ò˜ Ô!4°e´iØ"-ð 	ñ 	/ô 	/ð 	/à×Ò˜ Ô!7¸¼Ø".ð 	ñ 	0ô 	0ð 	0à×Ò˜¨Ô(BÀLÔDTØ"6ð 	ñ 	8ô 	8ð 	8à×Ò˜Ð$aÐ$aÐ$aÐ$aÐ$aÐckÔcoØ"Að 	ñ 	Cô 	Cð 	Cà×Ò˜ HÔ$:¸H¼LØ"5ð 	ñ 	7ô 	7ð 	7à×Ò˜ 7Ô#8¸'¼+Ø"Ið 	ñ 	Kô 	Kð 	Kà×Ò˜ iÔ&=¸y¼}Ø"Yð 	ñ 	[ô 	[ð 	[ð 	×Ò˜ Ô!8¸$Ô:OØ">ð 	ñ 	@ô 	@ð 	@ð 	×Ò˜ dÔ&BÀDÔD^Ý"*Ô"3ð 	ñ 	5ô 	5ð 	5à×ÒÐ,Ð.@Ô.NÐPbÔPfÝ"*Ô"3ð 	ñ 	5ô 	5ð 	5ð 	5ð 	5r   Nc                óN  — |pg }|t           j        k    r9t          j        d|z   | j        ¬¦  «        }| j                             |¦  «         n#| j                             |||| j        ¬¦  «        } ||¦  «         |                     |¬¦  «         |g|z   D ]}|| j	        |<   Œd S )Nzmeson rG   )r^   ÚaliasesrH   )Úrun_func)
r?   ro   rf   rZ   re   Úappendrh   Ú
add_parserÚset_defaultsrd   )rD   ÚnameÚadd_arguments_funcrs   rN   rr   ÚpÚis           r   ri   zCommandLineParser.add_commandz   sÆ   € Ø�-˜Rˆð •xÔ(Ò(Ð(ÝÔ'¨X¸©_ÈdÌnÐ]Ñ]Ô]ˆAØÔ ×'Ò'¨Ñ-Ô-Ð-Ð-à”×*Ò*¨4°hÈÐaeÔaoÐ*ÑpÔpˆAØÐ˜1ÑÔÐØ	�Š ˆÑ)Ô)Ð)Ø�˜'Ñ!ð 	!ð 	!ˆAØ ˆDŒM˜!ÑÐð	!ð 	!r   r[   úargparse.ArgumentParserc                óö   — |                      dddd¬¦  «         |                      ddt          j        ¦   «         ¬¦  «         |                      d	¦  «         |                      d
t          j        ¬¦  «         d S )Nz-cÚ
store_trueÚeval_argF)ÚactionrK   Údefaultz	--versionÚversion)r   r�   Úscript_fileÚscript_args)Únargs)Úadd_argumentÚplatformÚpython_versionr?   Ú	REMAINDER©rD   r[   s     r   rm   z)CommandLineParser.add_runpython_argumentsˆ   sz   € Ø×Ò˜D¨¸JÐPUÐÑVÔVÐVØ×Ò˜K°	Å8ÔCZÑC\ÔC\ÐÑ]Ô]Ð]Ø×Ò˜MÑ*Ô*Ð*Ø×Ò˜MµÔ1CÐÑDÔDÐDÐDÐDr   c                ó.  — |j         t          j        dd …<   |j        rt	          |j        ¦  «         nbdd l}t          j                             dt          j         
                    |j        ¦  «        ¦  «         |                     |j        d¬¦  «         dS )Nr   r   Ú__main__)Úrun_name)rƒ   ÚsysÚargvr~   Úexecr‚   ÚrunpyÚpathÚinsertr    ÚdirnameÚrun_path)rD   Úoptionsr�   s      r   rn   z'CommandLineParser.run_runpython_commandŽ   s‚   € ØÔ*�Œ���‰ØÔð 	EÝ�Ô$Ñ%Ô%Ð%Ð%àˆLˆLˆLÝŒH�OŠO˜A�rœwŸš¨wÔ/BÑCÔCÑDÔDÐDØ�NŠN˜7Ô.¸ˆNÑDÔDÐDØˆqr   c                ó~   — |                      ddt          | j                             ¦   «         ¦  «        ¬¦  «         d S )Nr'   ú?)r„   Úchoices)r…   Úlistrd   Úkeysr‰   s     r   rk   z$CommandLineParser.add_help_arguments˜   s9   € Ø×Ò˜I¨S½$¸t¼}×?QÒ?QÑ?SÔ?SÑ:TÔ:TÐÑUÔUÐUÐUÐUr   c                ó�   — |j         r%| j        |j                                       ¦   «          n| j                             ¦   «          dS )Nr   )r'   rd   Ú
print_helpr[   )rD   r•   s     r   rl   z"CommandLineParser.run_help_command›   sC   € ØŒ?ð 	%ØŒM˜'œ/Ô*×5Ò5Ñ7Ô7Ð7Ð7àŒK×"Ò"Ñ$Ô$Ð$Øˆqr   c                ó¤  — d}t          | j                             ¦   «         ¦  «        ddgz   }|r
|d         |vrd}dg|z   }|d         | j        v r |d         }| j        |         }|dd …         }n	| j        }d }ddlm} |                     |¦  «        }|                     |¦  «        }|€|j	        }|d	v ot          j        d
k     }	 |                     |¦  «        |rt          j        dd¬¦  «         |rt          j        dd¬¦  «         t          j        ¦   «          S # t"          $ r]}	t%          |	|¦  «        cY d }	~	|rt          j        dd¬¦  «         |rt          j        dd¬¦  «         t          j        ¦   «          S d }	~	ww xY w# |rt          j        dd¬¦  «         |rt          j        dd¬¦  «         t          j        ¦   «          w xY w)NFz-hz--helpr   TrM   r   ©Úmesonlib>   rT   rM   r\   rQ   )é   é   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™   rd   rš   re   r[   r_   rŸ   Úexpand_argumentsÚ
parse_argsr'   r�   Úversion_infors   r	   ÚwarningÚnoticer   Ú	Exceptionr*   )
rD   ÚargsÚimplicit_setup_command_noticeÚknown_commandsr'   r[   rŸ   r•   Ú!pending_python_deprecation_noticer   s
             r   rj   zCommandLineParser.run¢   s™  € Ø(-Ð%õ ˜dœm×0Ò0Ñ2Ô2Ñ3Ô3°t¸XÐ6FÑFˆØð 	$�t˜A”w nÐ4Ð4Ø,0Ð)Ø�9˜tÑ#ˆDð �Œ7�dÔ*Ð*Ð*Ø˜1”gˆGØ”] 7Ô+ˆFØ˜˜˜”8ˆDˆDà”[ˆFØˆGàÐÐÐÐÐØ×(Ò(¨Ñ.Ô.ˆØ×#Ò# DÑ)Ô)ˆàˆ?Ø”oˆGð Ð>Ð>Ð\Å3ÔCSÐV\ÒC\ð 	*ð	Ø×#Ò# GÑ,Ô,ð -ð bÝ”ð TØ[`ðbñ bô bð bà0ð SÝ”ð EØLQðSñ Sô Sð SåŒM‰OŒOˆOˆOøõ ð 	,ð 	,ð 	,Ý  7Ñ+Ô+Ð+Ð+Ð+Ð+Ð+à,ð bÝ”ð TØ[`ðbñ bô bð bà0ð SÝ”ð EØLQðSñ Sô Sð SåŒM‰OŒOˆOˆOøøøøð	,øøøøð -ð bÝ”ð TØ[`ðbñ bô bð bà0ð SÝ”ð EØLQðSñ Sô Sð SåŒM‰OŒOˆOˆOøøøs1   ÃD  Ä 
FÄ*FÄ9FÄ:F
 ÆFÆF
 Æ
AGr   )r[   r{   )
Ú__name__Ú
__module__Ú__qualname__rp   ri   rm   rn   rk   rl   rj   © r   r   r,   r,   F   s�   € € € € € ð15ð 15ð 15ðf!ð !ð !ð !ðEð Eð Eð Eðð ð ðVð Vð Vðð ð ð*ð *ð *ð *ð *r   r,   c                ó~  — dddddddœ}|                      | | ¦  «        }	 t          j        d|z   ¦  «        }n,# t          $ r}t	          j        |¦  «         Y d }~d	S d }~ww xY w	 |                     |¦  «        S # t          $ r7}t	          j        d
| › d�¦  «         t	          j        |¦  «         Y d }~d	S d }~ww xY w)NÚ	meson_exeÚmeson_installÚdelwithsuffixÚgtkdochelperÚhotdochelperÚregen_checker)ÚexerQ   Ú	delsuffixÚgtkdocÚhotdocÚ
regencheckzmesonbuild.scripts.r   z	Error in z helper script:)	r"   Ú	importlibÚimport_moduleÚModuleNotFoundErrorr	   r   rj   r   Úerror)Úscript_namerƒ   Ú
script_mapÚmodule_nameÚmoduler   s         r   Úrun_script_commandrÅ   Î   sý   € à$Ø,Ø.Ø*Ø*Ø /ð1ð 1€Jð —.’. ¨kÑ:Ô:€KðÝÔ(Ð)>ÀÑ)LÑMÔMˆˆøÝð ð ð ÝŒ�qÑÔÐØˆqˆqˆqˆqˆqøøøøðøøøðØ�zŠz˜+Ñ&Ô&Ð&øÝð ð ð ÝŒ
Ð;˜{Ð;Ð;Ð;Ñ<Ô<Ð<ÝŒ�qÑÔÐØˆqˆqˆqˆqˆqøøøøðøøøs-   ¡9 ¹
A"ÁAÁA"Á&A; Á;
B<Â,B7Â7B<c                 óÜ   — t           j        j        rXt           j        j                             ¦   «                              d¦  «        s$t           j                             d¬¦  «         d S d S d S )NzUTF-Úsurrogateescape)Úerrors)r�   ÚstdoutÚencodingÚupperÚ
startswithÚreconfigurer°   r   r   Úensure_stdout_accepts_unicoderÎ   å   si   € Ý
„zÔð 9¥3¤:Ô#6×#<Ò#<Ñ#>Ô#>×#IÒ#IÈ&Ñ#QÔ#Qð 9ÝŒ
×ÒÐ&7ÐÑ8Ô8Ð8Ð8Ð8ð9ð 9ð 9ð 9r   c                ó<   — ddl m} |                     | ¦  «         d S )Nr   rž   )r_   rŸ   Úset_meson_command)ÚmainfilerŸ   s     r   rÐ   rÐ   é   s.   € àÐÐÐÐÐØ×Ò˜xÑ(Ô(Ð(Ð(Ð(r   c                ór  — t           j        dk    r]t          j                             d¦  «        r>dd l}|                     dt          d¬¦  «         |                     ddt          ¬	¦  «         t          ¦   «          t           j	        d
k    rLt          j                             dd¦  «        dvr*t          j        d¦  «         t          j        d¦  «         dS | d d …         }t          |¦  «        dk    r”|d         dk    rˆ|d         dk    r^t          |¦  «         ddlm} 	 |                     dg|dd …         z   ¦  «        S # t"          $ r}t%          |d¦  «        cY d }~S d }~ww xY wt'          |d         |dd …         ¦  «        S t          |¦  «         t)          ¦   «                              |¦  «        S )N)r    é
   ÚMESON_RUNNING_IN_PROJECT_TESTSr   rÀ   Ú
mesonbuild)ÚcategoryrÄ   Úignorez)UTF-8 Mode affects .*getpreferredencoding)ÚmessagerÖ   ÚcygwinÚMSYSTEMr_   )ÚMSYSr_   zYThis python3 seems to be msys/python on MSYS2 Windows, but you are in a MinGW environmentzYPlease install and use mingw-w64-x86_64-python3 and/or mingw-w64-x86_64-meson with Pacmanr   z
--internalr   Ú
regenerate)r3   z--reconfigurerM   )r�   r¥   r    r!   r"   ÚwarningsÚfilterwarningsÚEncodingWarningrÎ   r†   r	   rÀ   ÚlenrÐ   r_   r3   rj   r¨   r*   rÅ   r,   )Úoriginal_argsrÑ   rÝ   r©   r3   r   s         r   rj   rj   î   sÌ  € Ý
Ô˜7Ò"Ð"¥r¤z§~¢~Ð6VÑ'WÔ'WÐ"àˆˆˆØ×Ò µ/È,ÐÑWÔWÐWð 	×Ò Ð2]ÕhwÐÑxÔxÐxõ
 "Ñ#Ô#Ð#õ „|�xÒÐ¥B¤J§N¢N°9¸bÑ$AÔ$AÈÐ$UÐ$UÝŒ
ÐnÑoÔoÐoÝŒ
ÐnÑoÔoÐoØˆqà˜˜˜Ô€Dõ ˆ4�y„y�A‚~€~˜$˜qœ' \Ò1Ð1Ø�Œ7�lÒ"Ð"Ý˜hÑ'Ô'Ð'Ø Ð Ð Ð Ð Ð ð0Ø—z’z ?Ð"3°d¸1¸2¸2´hÑ">Ñ?Ô?Ð?øÝð 0ð 0ð 0Ý# A wÑ/Ô/Ð/Ð/Ð/Ð/Ð/Ð/øøøøð0øøøõ & d¨1¤g¨t°A°B°B¬xÑ8Ô8Ð8å�hÑÔÐÝÑÔ×"Ò" 4Ñ(Ô(Ð(s   Ä# E Å
E(ÅE#ÅE(Å#E(c                 ó0  — dt           j        v r8t          j                             t           j        ¦  «        sJ ‚t           j        } n/t          j                             t           j        d         ¦  «        } t          t           j        dd …         | ¦  «        S )Nz	meson.exer   r   )r�   Ú
executabler    r‘   ÚisabsÚrealpathrŽ   rj   )Úlaunchers    r   Úmainrç     si   € à•c”nÐ$Ð$ÝŒw�}Š}�Sœ^Ñ,Ô,Ð,Ð,Ð,Ý”>ˆˆå”7×#Ò#¥C¤H¨Q¤KÑ0Ô0ˆÝ�sŒx˜˜˜Œ|˜XÑ&Ô&Ð&r   r‹   )Ú
__future__r   r_   r   r�   ÚmodulesÚos.pathr    r†   r½   r?   Ú
utils.corer   r   r	   r*   r,   rÅ   rÎ   rÐ   rj   rç   r­   Úexitr°   r   r   ú<module>rí      sU  ðð #Ð "Ð "Ð "Ð "Ð "ð Ð Ð Ð Ð Ð Ø 
€
€
€
Ø!€„ˆIÑ ð €€€Ø €€€Ø Ð Ð Ð Ø €€€à 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø Ð Ð Ð Ð Ð ð"ð "ð "ðLFð Fð Fð Fð Fñ Fô Fð FðPð ð ð.9ð 9ð 9ð)ð )ð )ð
()ð ()ð ()ðT'ð 'ð 'ð ˆzÒÐØ€C„HˆTˆT‰VŒVÑÔÐÐÐð Ðr   