
    <h)                    @   S SK Jr  S SKrS SKrS SKr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  SSKJrJr  SSKJrJrJrJrJrJrJrJr  SSKJr  SSKJr  \
R8                  (       a  SS	KJr  S
S1rSS jr SS jr!SS jr"SS jr#SS jr$SS jr%SS jr&SSS jjr'SS jr(g)    )annotationsN)Path   )buildminstall)EnvironmentVariablesMesonException	join_args
is_windowssetup_vsenvget_wine_shortpathMachineChoicerelpath)	OptionKey)mlog)InstallDatazpwsh.exezpowershell.exec                    U R                  SS[        SSS9  U R                  SS[        S SS	9  U R                  S
SSSS9  U R                  SS/ SQSS9  U R                  S[        R                  SSS9  g )Nz-Cbuilddir.zPath to build directory)desttypedefaulthelpz	--workdirz-wzDDirectory to cd into before running (default: builddir, Since 1.0.0))r   r   r   z--dump?TzXOnly print required environment (Since 0.62.0) Takes an optional file path (Since 1.1.0))nargsconstr   z--dump-formatexport)shr   vscodez%Format used with --dump (Since 1.1.0))r   choicesr   devcmdcommandzDCommand to run in developer environment (default: interactive shell))r   metavarr   )add_argumentr   argparse	REMAINDER)parsers    s/mnt/mint/home/seanl/mnt/public/Repos/ladybird/Build/vcpkg/downloads/tools/meson-1.9.0-d1fcc2/mesonbuild/mdevenv.pyadd_argumentsr)      s    
:D#6  8
Tdc  e
4I  J  :D  F (:(:Ic  e    c            	     .   [        [        5      R                  n U S-  S-  n[         HI  n USSSS[	        U5      /n[
        R                  " U5      nUR                  5       R                  5       s  $    g ! [
        R                  [        4 a     Mk  f = f)Nscriptszcmd_or_ps.ps1z
-noprofilez-executionpolicybypassz-file)r   __file__parentPOWERSHELL_EXESstr
subprocesscheck_outputdecodestripCalledProcessErrorOSError)
mesonbuildscriptshellr"   results        r(   get_windows_shellr<   (   s    h&&J)#o5F 	l,>'SVW]S^_G,,W5F==?((**	 !  --w7 		s   AA66BBc                   U R                  S5      nU(       d  g [        R                  " S5      =(       d    [        R                  " S5      nU(       d  g [        U/UR	                  S5      5      U S'   [
        R                  " S5        g )NWINEPATHwine64wine;z4Meson detected wine and has set WINEPATH accordingly)getshutilwhichr   splitr   log)envwinepathwinecmds      r(   reduce_winepathrJ   4   s`    wwz"Hll8$<V(<G('HNN34GHC
OHHCDr*   c                >   [        5       nUR                  SS/5        UR                  SU R                  /5        U R                  R                  [
        R                     R                  5       nU(       a  UR                  SU/5        U(       a  0 O[        R                  R                  5       nUS;   a  SOS n[        5       n[        R                  " U R                  U15       H&  nUR                  XE5      nXgR                  5       -  nM(     [!        U5        XF4$ )NMESON_DEVENV1MESON_PROJECT_NAMEQEMU_LD_PREFIX>   r   r   z${0})r   setproject_nameenvironment
propertiesr   HOSTget_sys_rootosenvironcopy	itertoolschaindevenvget_env	get_namesrJ   )bdump_fmt	extra_envsysrootrG   default_fmtvarnamesis           r(   r\   r\   >   s    $&IMM.3%(MM&(89mm&&}'9'9:GGIG&	2"bjjoo/C$(88&dKuH__QXX	{3ii)KKM! 4 C=r*   c                   SSK Jn  / nU" SU R                  SSSS.5      nUR                  5       (       GaT  U R                  R                  R
                  R                  [        S5      5      n[        U[        5      (       d   S	5       eU R                  R                  R
                  R                  [        S
5      5      n[        U[        5      (       d   S	5       e[        R                  R                  XV5      nUR                  SS
U44S9n[        U[        5      (       d   S	5       e[        U5      n	UR                   HC  n
U	[        U
R                   5      R"                  ;   d  M(  UR%                  U
R                  5        ME     U$ )Nr   )PkgConfigDependencyzbash-completionFTz>=2.10)requiredsilentversionprefixzfor mypydatadircompletionsdir)	pkgconfigpkgconfig_define)dependencies.pkgconfigrf   rR   foundcoredataoptstoreget_value_forr   
isinstancer1   rV   pathjoinget_variabler   datainstall_pathparentsappend)r^   install_datarf   r;   deprj   rk   datadir_absrl   completionsdir_pathfs              r(   bash_completion_filesr   R   s@   ;F
/+0DXVXC
yy{{''00>>y?RS&#&&2
2&--((11??	)@TU'3''33'ggll63))4DYbdoXpWr)s.#..:
:.">2""A"d1>>&:&B&BBaff% # Mr*   c           	        XR                   -  nUR                  SSS9   [        5       (       aA  [        R                  " U[        U[        R                  R                  U5      -  5      5        g [        R                  " U[        U[        R                  R                  U5      -  5      5        g ! [        [        R                  4 a     g f = f)NT)rz   exist_ok)r/   mkdirr   rC   rX   r1   rV   ru   basenamesymlinkFileExistsErrorSameFileError)autoload_path
gdb_helperfnamedestdirs       r(   add_gdb_auto_loadr   e   s    ll*GMM$M.<<KK
C"''2B2B:2N(N$OPJJz3w1A1A*1M'M#NOV112 s   AB1 0A B1 1CCc           	        [         R                  " S5      (       d  g U R                  nU S-  n[        U/UR                  SS  Q76 nSnUR
                   H  nUR                  R                  S5      (       dB  UR                  R                  S5      (       d"  UR                  R                  S5      (       d  Me  [        UR                  5      R                  R                  SS5      S	   nUR                   HB  n	[        U	R                  5      n
U
R                  U:X  d  M*  [        XWR                  U
5        S
nMD     M     U(       Ga  SU S3nUS-  nSn UR                  SSS9 nXR                  5       ;  a  UR                  U5        S
nS S S 5        U(       Ga5  UR%                  5       nUR%                  5       n[        ['        X5      5      n[(        R*                  " S[(        R,                  " [/        U5      5      5        [(        R*                  " S5        [(        R*                  " S[(        R,                  " SUR                   35      S[(        R,                  " S5      5        UR                  U:w  aX  [(        R*                  " S[(        R,                  " [/        UR                  5      5      S[(        R,                  " SU 35      5        g g g g ! , (       d  f       GNN= f! [          a    UR#                  USS9  S
n GNpf = f)Ngdbzgdb-auto-loadr   Fz-gdb.pyz-gdb.gdbz-gdb.scm-r   Tz add-auto-load-scripts-directory 
z.gdbinitzr+utf-8encodingz.Meson detected GDB helpers and added config inz+To load it automatically you might need to:z - Addzadd-auto-load-safe-path inz
~/.gdbinitz - Change current workdir tozor usez--init-command )rC   rD   r/   r   partsrx   ru   endswithnamersplittargetsr   r   open	readlineswriteFileNotFoundError
write_textresolver   r   rF   boldr1   )
privatedirr|   workdirbdirautoload_basedirr   have_gdb_helpersdlibnametru   gdbinit_linegdbinit_path
first_timer   workdir_pathrel_paths                    r(   write_gdb_scriptr   q   sm   <<D!O3);DJJqrN;M66??9%%)D)DXbHcHc 166l''..sA6q9G!))AGG}99'%mVVTB'+$	 *  9:J9K2Nj(
	""4'":a{{}4GGL)!%J ; '//1L"??,LGL?@HHHEtyyQTU]Q^G_`HHBCHHXtyy+CLDWDWCX)YZ499\24""l273xCW9X!499xj-I#JL 3  
 ;: ! 	##L7#CJ	s0   K( ('KK( 
K% K( %K( (LLc                d    U H*  n[        U SX    S3US9  US:X  d  M  [        SU 3US9  M,     g )Nz="")filer   zexport )print)r[   rc   dump_formatoutputr   s        r(   dumpr      s>    ba(v6("GD6"0 r*   c                b
   [        U R                  5      S-  nUS-  nUR                  5       (       d  [        SU R                  < S35      e[        R
                  " U R                  5      nU R                  =(       d    U R                  n[        R                  " SUR                  R                  R                  R                  [        S5      5      5      n[        U5        U R                  (       a  U R                   OS n[#        X65      u  pxU R                  (       ac  U R$                  (       a  [        S5      eU R                  SL a  [        XxU5        g['        U R                  S	S
S9 n	[        XxXi5        S S S 5        gUR                  R)                  5       (       a`  Sn
UR                  R+                  5       nU(       a'  SR-                  UR/                  5       5      nU
SU 3-  n
[0        R2                  " U
5        [4        R6                  " [9        US-  5      5      n[;        XU5        U R$                  nU(       Gd  SUR<                   S3n[>        R@                  RC                  S5      nU(       a(  [>        RD                  RG                  U5      (       a  U/nO[I        5       (       aq  [K        5       nU(       d  [0        RL                  " S5        U[N        ;   a  USS/nSU S3nUSU/-  nOk[>        R@                  RC                  SS5      /nUSSU S3/-  nO>[>        R@                  RC                  S[>        RD                  RQ                  S5      5      /nS US   ;   a  [R        RT                  " S	S!9nURW                  S"5        [>        R@                  RC                  S#5      (       d  URW                  S$U S%35        [Y        X=5       H  nURW                  S&U S'35        M     UR[                  5         UR]                  S(5        UR]                  UR^                  5        O9[`        Rb                  " US   URC                  S)S 5      S*9nU=(       d    US   US'    [I        5       (       a6  [d        Rf                  " XUS+9n[h        Rj                  " URl                  5        g [>        Rn                  " U5        [>        Rp                  " US   XS,9  g ! , (       d  f       g= f! [r         a    [        S-US    35      e[t         a  n[        S.[w        U5       S/U 35      eS nAff = f)0Nzmeson-privatez	build.datz
Directory z- does not seem to be a Meson build directory.boolvsenvz3--dump option does not allow running other command.Twr   r   r   z'An executable wrapper could be required z: zinstall.dat[]SHELLz6Failed to determine Windows shell, fallback to cmd.exez-NoLogoz-NoExitzfunction global:prompt {  "z PS " + $PWD + "> "}z-CommandCOMSPECzC:\WINDOWS\system32\cmd.exez/kzprompt z $P$Gz/bin/shbash)modez [ -e ~/.bashrc ] && . ~/.bashrc
MESON_DISABLE_PS1_OVERRIDEzexport PS1="z $PS1"
z. "z"
z--rcfilePATH)ru   )rG   cwd)rG   zCommand not found: z	Command `z` failed to execute: )<r   r   is_filer	   r   loadr   TcastrR   rq   rr   rs   r   r   r   r   r\   r!   r   need_exe_wrapperget_exe_wrapperrv   get_commandr   rF   r   load_install_datar1   r   rQ   rV   rW   rB   ru   existsr   r<   warningr0   realpathtempfileNamedTemporaryFiler   r   flushr{   r   rC   rD   r2   runsysexit
returncodechdirexecvper   r7   r
   )optionsr   	buildfiler^   r   
need_vsenvr_   r[   rc   r   mexe_wrappercmdr|   argsprompt_prefix	shell_envr:   prompttmprcr   abs_pathr;   es                           r(   r   r      s   g&&'/9J[(Iz'*:*:)==jkll

7##$Aoo1!1!1G 6 6 ? ? M MiX_N` abJ
&-llw""Hq+F||>> !VWW<<48,  gllC':fVx8 ;}}%%''5mm335((;2245C2cUOA--c*}2L.MNLZw7>>DANN+1-JJNN7+		22;D\\%'EUV'y)47F[\V,,

y2PQRu=>>JJNN7BGG,<,<Y,GHIDT!W//S9EKK;<::>>">??l=/BC*1;c!CL) <KKMKK
#KK

# <<Qfjj.FG%d1gQT<<  ^^D'BFHHV&&'HHWJJtAw1w ;:t  >247)<== Ty4(99NqcRSSTs+   .S&AS+ +.S+ 
S(+$T.T))T.)r'   zargparse.ArgumentParserreturnNone)r   T.Optional[str])rG   T.Dict[str, str]r   r   )r^   build.Buildr_   r   r   z%T.Tuple[T.Dict[str, str], T.Set[str]])r^   r   r|   'InstallData'r   zT.List[str])r   r   r   r1   r   r   r   r   )r   r   r|   r   r   r   r   r   )N)
r[   r   rc   z
T.Set[str]r   r   r   zT.Optional[T.TextIO]r   r   )r   zargparse.Namespacer   int))
__future__r   rV   r2   r%   r   rC   r   rY   typingr   pathlibr    r   r   mesonlibr   r	   r
   r   r   r   r   r   r   r   r   TYPE_CHECKINGbackend.backendsr   r0   r)   r<   rJ   r\   r   r   r   r   r    r*   r(   <module>r      s    "     
    C C C   ??-/0e
E(&
'LR1QTr*   