
    -Ph(                       d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dlZ	d dl
mZ ddlmZmZ ddlmZmZmZmZmZmZmZmZ ddlmZ ddlmZ e	j        rdd	lmZ d
dhZd3dZd4dZ d5dZ!d6dZ"d7dZ#d8d$Z$d9d'Z%d:d;d.Z&d<d2Z'dS )=    )annotationsN)Path   )buildminstall)EnvironmentVariablesMesonException	join_args
is_windowssetup_vsenvget_wine_shortpathMachineChoicerelpath)	OptionKey)mlog)InstallDatazpwsh.exezpowershell.exeparserargparse.ArgumentParserreturnNonec                0   |                      ddt          dd           |                      ddt          d d	           |                      d
ddd           |                      ddg dd           |                      dt          j        dd           d S )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)r   s    R/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/mesonbuild/mdevenv.pyadd_argumentsr,      s    
:D#6  8 8 8
Tdc  e e e
4I  J J J  : : :D  F F F (:Ic  e e e e e    T.Optional[str]c            	     6   t          t                    j        } | dz  dz  }t          D ]o}	 |ddddt	          |          g}t          j        |          }|                                                                c S # t
          j	        t          f$ r Y lw xY wd S )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^S^_G,W55F==??((*****-w7 	 	 	D	4s   AA==BBenvT.Dict[str, str]c                   |                      d          }|sd S t          j        d          pt          j        d          }|sd S t          |g|                    d                    | d<   t          j        d           d S )NWINEPATHwine64wine;z4Meson detected wine and has set WINEPATH accordingly)getshutilwhichr   splitr   log)rA   winepathwinecmds      r+   reduce_winepathrO   3   s    wwz""H l8$$<V(<(<G ('HNN34G4GHHC
OHCDDDDDr-   bbuild.Builddump_fmt%T.Tuple[T.Dict[str, str], T.Set[str]]c                >   t                      }|                    ddg           |                    d| j        g           | j        j        t
          j                                                 }|r|                    d|g           |ri nt          j	        
                                }|dv rdnd }t                      }t          j        | j        |h          D ]/}|                    ||          }||                                z  }0t!          |           ||fS )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_namesrO   )rP   rR   	extra_envsysrootrA   default_fmtvarnamesis           r+   re   re   =   s   $&&IMM.3%(((MM&(8999m&}'9:GGIIG 3&	222
/""bjoo//C$(888&&dKuuH_QX	{33 " "ii[))AKKMM!C=r-   install_data'InstallData'T.List[str]c                   ddl m} g } |d| j        dddd          }|                                rG| j        j        j                            t          d                    }t          |t                    s
J d	            | j        j        j                            t          d
                    }t          |t                    s
J d	            t          j                            ||          }|                    dd
|ff          }t          |t                    s
J d	            t          |          }	|j        D ]7}
|	t          |
j                  j        v r|                    |
j                   8|S )Nr   )PkgConfigDependencyzbash-completionFTz>=2.10)requiredsilentversionprefixzfor mypydatadircompletionsdir)	pkgconfigpkgconfig_define)dependencies.pkgconfigrp   r[   foundcoredataoptstoreget_value_forr   
isinstancer5   r_   pathjoinget_variabler   datainstall_pathparentsappend)rP   rl   rp   r?   deprt   ru   datadir_absrv   completionsdir_pathfs              r+   bash_completion_filesr   Q   s{   ;;;;;;F

/+0DXVVX XC
yy{{ &'0>>y?R?RSS&#&&22
222-(1??	)@T@TUU'3''33333gll6733))4DYbdoXpWr)ss.#..::
:::">22" 	& 	&A"d1>&:&:&BBBaf%%%Mr-   autoload_pathr   
gdb_helperr5   fnamec           	        | |j         z  }|                    dd           	 t                      rDt          j        |t          |t          j                            |          z                       d S t          j	        |t          |t          j                            |          z                       d S # t          t          j        f$ r Y d S w xY w)NT)r   exist_ok)r3   mkdirr   rI   ra   r5   r_   r   basenamesymlinkFileExistsErrorSameFileError)r   r   r   destdirs       r+   add_gdb_auto_loadr   d   s    el*GMM$M...<< 	PK
C"'2B2B:2N2N(N$O$OPPPPPJz3w1A1A*1M1M'M#N#NOOOOOV12   s   AB9 5AB9 9CC
privatedirworkdirc           	        t          j        d          sd S | j        }| dz  }t          |g|j        dd          R  }d}|j        D ]}|j                            d          s4|j                            d          s|j                            d          rtt          |j                  j        	                    dd          d	         }|j
        D ]9}	t          |	j                  }
|
j        |k    rt          ||j        |
           d
}:|rd| d}|dz  }d}	 |                    dd          5 }||                                vr|                    |           d
}d d d            n# 1 swxY w Y   n)# t           $ r |                    |d           d
}Y nw xY w|r/|                                }|                                }t          t'          ||                    }t)          j        dt)          j        t/          |                               t)          j        d           t)          j        dt)          j        d|j                   dt)          j        d                     |j        |k    rVt)          j        dt)          j        t/          |j                            dt)          j        d|                      d S d S d S d S )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 )rI   rJ   r3   r   partsr   r   endswithnamersplittargetsr   r   open	readlineswriteFileNotFoundError
write_textresolver   r   rL   boldr5   )r   rl   r   bdirautoload_basedirr   have_gdb_helpersdlibnametr   gdbinit_linegdbinit_path
first_timer   workdir_pathrel_paths                    r+   write_gdb_scriptr   p   sP   < D!O3);DJqrrN;;;M 	, 	,6??9%% 	,)D)D 	,XbHcHc 	, 16ll'..sA66q9G!) , ,AG}}9''%mQVTBBB'+$ LN:JNNNj(
	""4'":: &aq{{}}44GGL)))!%J& & & & & & & & & & & & & & & ! 	 	 	##L7#CCCJJJ	  
	L'//11L"??,,LGL,??@@HHEtyQTU]Q^Q^G_G_```HBCCCHXty)YLDW)Y)YZZ49\224 4 4"l2273xCWCW9X9X!49-Ix-I-I#J#JL L L L L+L L
	L 
	L 32s6   E9 3.E-!E9 -E11E9 4E15E9 9#FFrd   rj   
T.Set[str]dump_formatoutputT.Optional[T.TextIO]c                ~    |D ]9}t          | d| |          d|           |dk    rt          d| |           :d S )Nz="")filer!   zexport )print)rd   rj   r   r   r   s        r+   dumpr      sk     1 1(((((v6666("""D""00001 1r-   optionsargparse.Namespaceintc                	   t          | j                  dz  }|dz  }|                                st          d| j        d          t	          j        | j                  }| j        p| j        }t          j        d|j	        j
        j                            t          d                              }t          |           | j        r| j        nd }t#          ||          \  }}| j        rt| j        rt          d          | j        du rt          |||           nAt'          | j        d	d
          5 }	t          ||||	           d d d            n# 1 swxY w Y   dS |j	                                        r`d}
|j	                                        }|r/d                    |                                          }|
d| z  }
t1          j        |
           t5          j        t9          |dz                      }t;          |||           | j        }|sd|j         d}t>          j         !                    d          }|r#t>          j"        #                    |          r|g}ntI                      rmtK                      }|st1          j&        d           |tN          v r|ddg}d| d}|d|gz  }nkt>          j         !                    dd          g}|dd| dgz  }n>t>          j         !                    dt>          j"        (                    d                    g}d |d         v rtS          j*        d	!          }|+                    d"           t>          j         !                    d#          s|+                    d$| d%           tY          ||          D ]}|+                    d&| d'           |-                                 |.                    d(           |.                    |j/                   n=ta          j1        |d         |!                    d)d           *          }|p|d         |d<   	 t?          j2        |           t?          j3        |d         ||+           d S # th          $ r t          d,|d                    tj          $ r'}t          d-tm          |           d.|           d }~ww xY w)/Nz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)r   )rA   zCommand not found: z	Command `z` failed to execute: )7r   r   is_filer	   r   loadr   Tcastr[   r{   r|   r}   r   r   r   r   re   r%   r   need_exe_wrapperget_exe_wrapperr   get_commandr   rL   r   load_install_datar5   r   rZ   r_   r`   rH   r   existsr   r@   warningr4   realpathtempfileNamedTemporaryFiler   r   flushr   r   rI   rJ   chdirexecvper   r;   r
   )r   r   	buildfilerP   r   
need_vsenvrR   rd   rj   r   mexe_wrappercmdrl   argsprompt_prefix	shell_envr>   prompttmprcr   abs_pathes                          r+   runr      s   g&''/9J[(I mk'*:kkklll
7#$$Ao1!1G 6 ? M MiX_N`N` a abbJ
&-l<w""Hq(++FH| > 	X !VWWW<48,,,,glC'::: 9fVXx8889 9 9 9 9 9 9 9 9 9 9 9 9 9 9q}%%'' 5m3355 	((;224455CcOA-c*}2L.M.MNNLZw777>D !&-AN---JNN7++	 	J	22 	J;DD\\ 	J%''E WUVVV''y)4\\\\V,,
y2PQQR====>>JNN7BG,<,<Y,G,GHHIDT!W/S999EKK;<<<:>>">?? DB=BBBCCC*1l;; * *L!LLL))))KKMMMKK
###KK
### <Qfjj.F.FGGG%d1gQT


47Df------ > > ><47<<=== T T TR4RRqRRSSSTs*   5EEE;1Q. .+S "R;;S )r   r   r   r   )r   r.   )rA   rB   r   r   )rP   rQ   rR   r.   r   rS   )rP   rQ   rl   rm   r   rn   )r   r   r   r5   r   r   r   r   )r   r   rl   rm   r   r   r   r   )N)
rd   rB   rj   r   r   r.   r   r   r   r   )r   r   r   r   )(
__future__r   r_   r6   r)   r   rI   rb   typingr   pathlibr    r   r   mesonlibr   r	   r
   r   r   r   r   r   r   r   r   TYPE_CHECKINGbackend.backendsr   r4   r,   r@   rO   re   r   r   r   r   r    r-   r+   <module>r      s-   " " " " " "                                 C C C C C C C C C C C C C C C C C C C C             ? .------/0e e e e
 
 
 
E E E E   (   &
 
 
 
'L 'L 'L 'LR1 1 1 1 1KT KT KT KT KT KTr-   