
    <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
Jr  S
S jrSSS jjrSS jr\S:X  a&  \R                   " \" \R"                  S	S 5      5        gg)    )annotationsN   )ExecutableSerialisationc                     [         R                  " SS9n U R                  S5        U R                  S5        U R                  S5        U $ )NzECustom executable wrapper for Meson. Do not run on your own, mmm'kay?)descriptionz
--unpicklez	--capturez--feed)argparseArgumentParseradd_argument)parsers    }/mnt/mint/home/seanl/mnt/public/Repos/ladybird/Build/vcpkg/downloads/tools/meson-1.9.0-d1fcc2/mesonbuild/scripts/meson_exe.pybuildparserr      sB    $$1yzF
%
$
!M    c           
        U R                   (       a  U R                   R                  5       (       d@  [        SR                  U R                  S   U R                   R                  5       5      5      eU R                   R                  5       U R                  -   nOU R                  n[        R                  R                  5       nU(       a  UR                  U5        U R                  (       a  U R                  R                  U5      nU R                  (       a  [        R                  R                  U R                  S/-   5      US   -   US'   U R                   (       a  [!        S U R                   R                  5        5       5      (       a~  SSKJn  UR'                  U R                   R                  5       U R                   Vs/ s H  nSU-   PM
     snUR)                  S	S5      R+                  S
5      -   U R,                  5      US	'   S nU R.                  (       a  [1        U R.                  S5      n[2        R4                  nU R6                  (       a  U R8                  (       a   S5       eS n[2        R:                  " X#U R,                  SXgUS9nUR=                  5       u  pUb  UR?                  5         UR@                  S:X  a  SUS   -   n
[C        UR@                  X5      eUR@                  S:w  a  U RD                  (       a  [G        SU< 35        U R6                  (       a  UR@                  $ [H        RJ                  " 5       nU R8                  (       d$  [G        S5        [G        URM                  USS95        [G        S5        [G        U	RM                  USS95        UR@                  $ U R8                  (       am  Sn [1        U R8                  S5       nURO                  5       U:H  nS S S 5        U(       d1  [1        U R8                  S5       nURS                  U5        S S S 5        ggs  snf ! , (       d  f       NL= f! [P         a     N[f = f! , (       d  f       g= f)NzBBUG: Can't run cross-compiled exe {!r} with not-found wrapper {!r}r    PATHc              3  ,   #    U  H
  nS U;   v   M     g7f)wineN ).0is     r   	<genexpr>run_exe.<locals>.<genexpr>'   s     "V8U16Q;8Us   r   )mesonlibzZ:WINEPATH;rbz4Cannot capture and print to console at the same timeF)envcwd	close_fdsstdinstdoutstderrl   5   z.Failed to run due to missing DLLs, with path: zwhile executing z--- stdout ---replace)encodingerrorsz--- stderr ---wb)*exe_wrapperfoundAssertionErrorformatcmd_argsget_pathget_commandosenvironcopyupdater   get_envextra_pathspathsepjoinanyr   r   get_wine_shortpathgetsplitworkdirfeedopen
subprocessPIPEverbosecapturePopencommunicateclose
returncodeFileNotFoundErrorpickledprintlocalegetpreferredencodingdecodereadOSErrorwrite)exe	extra_envr+   	child_envr   pr    piper!   r"   strerrorr$   
skip_writecuroutputs                  r   run_exerW      s<   
$$&&  "006s||AH`H`Hb0ce e??..03<<?<<

!I#
wwGGOOI.	
ZZ__S__t-CD&v./	&??s"V8S8S8U"VVV#$,$?$?++-#&??3?a?3immJPR6S6Y6YZ]6^^%Ij! E
xxSXXt$??D
{{;;V VVckk#(4	QA]]_NF||z!CiPVFWWhAA||q;;$XL12;;<<..0{{"#&--)-DEfmmXim@A||
{{
	ckk4(C XXZ61
 ) ckk4(FV$ ) c 4R )( 		 )( sB   P+
 Q P0*Q Q0
P>:Q >Q 
QQ
Qc                <   [        5       nUR                  U 5      u  p#U(       a  US   S:X  a  USS  nUR                  (       d  U(       d  UR                  S5        UR                  (       aw  U(       d"  UR                  (       d  UR
                  (       a  UR                  S5        [        UR                  S5       n[        R                  " U5      nSUl	        S S S 5        O[        X2R                  UR
                  S9n[        W5      $ ! , (       d  f       N= f)	Nr   z--   z:either --unpickle or executable and arguments are requiredz.no other arguments can be used with --unpickler   T)r@   r;   )r   parse_known_argsunpickleerrorr@   r;   r<   pickleloadrF   r   rW   )argsr   optionsr+   frN   s         r   runrb   ^   s    ]F//5G HQK4'AB<HQRw',,LLIJ'""D)Q++a.CCK *) &hgll[3< *)s   =D
D__main__rY   )returnzargparse.ArgumentParser)N)rN   r   rO   zT.Optional[T.Dict[str, str]]rd   int)r_   zT.List[str]rd   re   )
__future__r   r.   sysr   r]   r=   typingTrH   
utils.corer   r   rW   rb   __name__exitargvr   r   r   <module>rn      s]    # 	 
      0EN( zHHS!" r   