§
    ƒnócA  ã                  óx   — d dl m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Z	ddl
mZmZ  G d„ d¦  «        Zdd„ZdS )é    )ÚannotationsN)ÚPathé   )Ú
Popen_safeÚ
split_argsc                  ó@   — e Zd Zdd„Zdd„Zdd„Zdd	„Zdd„Zddd„ZdS )ÚExternalProjectÚoptionsúargparse.Namespacec                óø   — |j         | _         |j        | _        |j        | _        |j        | _        |j        | _        |j	        | _	        |j
        | _
        |j        | _        t          |j        ¦  «        | _        d S ©N)ÚnameÚsrcdirÚsrc_dirÚbuilddirÚ	build_dirÚ
installdirÚinstall_dirÚlogdirÚlog_dirÚverboseÚ	stampfileÚdepfiler   Úmake)Úselfr
   s     úD/usr/lib/python3/dist-packages/mesonbuild/scripts/externalproject.pyÚ__init__zExternalProject.__init__   sc   € Ø”LˆŒ	Ø”~ˆŒØ Ô)ˆŒØ"Ô-ˆÔØ”~ˆŒØ”ˆŒØ Ô*ˆŒØ”ˆŒÝ˜wœ|Ñ,Ô,ˆŒ	ˆ	ˆ	ó    ÚreturnÚNonec                óö  — t          | j        dd¬¦  «        5 }|                     | j        › d�¦  «         t	          j        | j        ¦  «        D ]�\  }}}d„ |D ¦   «         |d d …<   |D ]v}|                     d¦  «        rŒt          ||¦  «        }|                     d 	                    | 
                    ¦   «                              dd	¦  «        ¦  «        ¦  «         ŒwŒ‘	 d d d ¦  «         d S # 1 swxY w Y   d S )
NÚwúutf-8©Úencodingz: \
c                ó<   — g | ]}|                      d ¦  «        °|‘ŒS )ú.)Ú
startswith)Ú.0Úds     r   ú
<listcomp>z1ExternalProject.write_depfile.<locals>.<listcomp>)   s)   € ÐLÐLÐL Q¸!¿,º,ÀsÑ:KÔ:KÐL˜qÐLÐLÐLr   r'   z  {} \
ú z\ )Úopenr   Úwriter   ÚosÚwalkr   r(   r   ÚformatÚas_posixÚreplace)r   ÚfÚdirpathÚdirnamesÚ	filenamesÚfnameÚpaths          r   Úwrite_depfilezExternalProject.write_depfile%   si  € Ý�$”, ¨gÐ6Ñ6Ô6ð 	U¸!Ø�GŠG�t”~Ð-Ð-Ð-Ñ.Ô.Ð.Ý02´¸¼Ñ0EÔ0Eð Uð UÑ,�˜ 9ØLÐL¨(ÐLÑLÔL�˜˜˜‘Ø&ð Uð U�EØ×'Ò'¨Ñ,Ô,ð !Ø Ý ¨Ñ/Ô/�DØ—G’G˜K×.Ò.¨t¯}ª}©¬×/FÒ/FÀsÈEÑ/RÔ/RÑSÔSÑTÔTÐTÐTð	UðUð	Uð 	Uð 	Uñ 	Uô 	Uð 	Uð 	Uð 	Uð 	Uð 	Uð 	Uð 	Uøøøð 	Uð 	Uð 	Uð 	Uð 	Uð 	Us   ˜CC.Ã.C2Ã5C2c                óh   — t          | j        dd¬¦  «        5  	 d d d ¦  «         d S # 1 swxY w Y   d S )Nr"   r#   r$   )r-   r   )r   s    r   Úwrite_stampfilezExternalProject.write_stampfile0   s€   € Ý�$”. #°Ð8Ñ8Ô8ð 	ð 	Øð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ˜'§+®+Úboolc                óh   — t          | j        dgz   ¦  «        \  }}}|j        dk    r
d|v sd|v rdS dS )Nz	--versionr   zGNU MakeÚwafTF)r   r   Ú
returncode)r   ÚpÚoÚes       r   Úsupports_jobs_flagz"ExternalProject.supports_jobs_flag4   sE   € Ý˜TœY¨+¨Ñ6Ñ7Ô7‰ˆˆ1ˆaØŒ<˜1ÒÐ *° / /°U¸a°Z°ZØ�4Øˆur   Úintc                óð  — | j                              ¦   «         }|                      ¦   «         r)|                     dt	          j        ¦   «         › �¦  «         |                      d|¦  «        }|dk    r|S | j                              ¦   «         }i }| j        |d<   |                     d¦  «         |                      d||¦  «        }|dk    r|S |                      ¦   «          |  	                    ¦   «          dS )Nz-jÚbuildr   ÚDESTDIRÚinstall)
r   ÚcopyrD   ÚappendÚmultiprocessingÚ	cpu_countÚ_runr   r:   r<   )r   Úmake_cmdÚrcÚinstall_cmdÚinstall_envs        r   rG   zExternalProject.build:   sð   € Ø”9—>’>Ñ#Ô#ˆØ×"Ò"Ñ$Ô$ð 	@Ø�OŠOÐ>¥Ô!:Ñ!<Ô!<Ð>Ð>Ñ?Ô?Ð?Ø�YŠY�w Ñ)Ô)ˆØ�Š7ˆ7ØˆIà”i—n’nÑ&Ô&ˆØˆØ!%Ô!1ˆ�IÑØ×Ò˜9Ñ%Ô%Ð%Ø�YŠY�y +¨{Ñ;Ô;ˆØ�Š7ˆ7ØˆIà×ÒÑÔÐØ×ÒÑÔÐàˆqr   NÚstepÚstrÚcommandúT.List[str]ÚenvúT.Optional[T.Dict[str, str]]c                ó–  — dt          |¦  «        z   dz   t          | j        ¦  «        z   dz   }t          | j        | j        › d|› d�¦  «        }d }| j        s?t          |dd¬¦  «        }|                     |dz   ¦  «         |                     ¦   «          nt          |¦  «         t          j                             ¦   «         }|r|                     |¦  «         t          |t          j        || j        |¬	¦  «        \  }}	}
|j        d
k    r8|› d|j        › d�}| j        s|dt          |¦  «        z   z  }t          |¦  «         |j        S )NzRunning command z in directory ú
ú-z.logr"   r#   r$   )ÚstderrÚstdoutÚcwdrW   r   z step returned error code r'   z
See logs: )rT   r   r   r   r   r   r-   r.   ÚflushÚprintr/   ÚenvironrJ   Úupdater   Ú
subprocessÚSTDOUTr@   )r   rS   rU   rW   ÚmÚlog_filenameÚoutputÚrun_envrA   rB   rC   s              r   rN   zExternalProject._runO   sU  € Ø¥ W¡¤Ñ-Ð0@Ñ@Å3ÀtÄ~ÑCVÔCVÑVÐY]Ñ]ˆÝ˜DœL¨T¬YÐ*CÐ*C¸Ð*CÐ*CÐ*CÑDÔDˆØˆØŒ|ð 	Ý˜,¨°gÐ>Ñ>Ô>ˆFØ�LŠL˜˜T™Ñ"Ô"Ð"Ø�LŠL‰NŒNˆNˆNå�!‰HŒHˆHÝ”*—/’/Ñ#Ô#ˆØð 	 Ø�NŠN˜3ÑÔÐÝ˜W­ZÔ->ÀvØ!%¤Ø!(ð*ñ *ô *‰ˆˆ1ˆað Œ<˜1ÒÐØÐBÐB°1´<ÐBÐBÐBˆAØ”<ð 8Ø�^¥c¨,Ñ&7Ô&7Ñ7Ñ7�Ý�!‰HŒHˆHØŒ|Ðr   )r
   r   )r   r    )r   r=   )r   rE   r   )rS   rT   rU   rV   rW   rX   r   rE   )	Ú__name__Ú
__module__Ú__qualname__r   r:   r<   rD   rG   rN   © r   r   r	   r	      s•   € € € € € ð	-ð 	-ð 	-ð 	-ð	Uð 	Uð 	Uð 	Uðð ð ð ðð ð ð ðð ð ð ð*ð ð ð ð ð ð r   r	   ÚargsrV   r   rE   c                ó  — t          j        ¦   «         }|                     d¦  «         |                     d¦  «         |                     d¦  «         |                     d¦  «         |                     d¦  «         |                     d¦  «         |                     dd¬	¦  «         |                     d
¦  «         |                     d¦  «         |                     | ¦  «        }t	          |¦  «        }|                     ¦   «         S )Nz--namez--srcdirz
--builddirz--installdirz--logdirz--makez	--verboseÚ
store_true)Úactionr   r   )ÚargparseÚArgumentParserÚadd_argumentÚ
parse_argsr	   rG   )rm   Úparserr
   Úeps       r   Úrunrw   f   s÷   € ÝÔ$Ñ&Ô&€FØ
×Ò˜Ñ!Ô!Ð!Ø
×Ò˜
Ñ#Ô#Ð#Ø
×Ò˜Ñ%Ô%Ð%Ø
×Ò˜Ñ'Ô'Ð'Ø
×Ò˜
Ñ#Ô#Ð#Ø
×Ò˜Ñ!Ô!Ð!Ø
×Ò˜¨LÐÑ9Ô9Ð9Ø
×Ò˜Ñ$Ô$Ð$Ø
×Ò˜	Ñ"Ô"Ð"à×Ò Ñ%Ô%€GÝ	˜Ñ	!Ô	!€BØ�8Š8‰:Œ:Ðr   )rm   rV   r   rE   )Ú
__future__r   r/   rq   rL   rc   Úpathlibr   ÚtypingÚTÚmesonlibr   r   r	   rw   rl   r   r   ú<module>r}      sÈ   ðð #Ð "Ð "Ð "Ð "Ð "à 	€	€	€	Ø €€€Ø Ð Ð Ð Ø Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð à -Ð -Ð -Ð -Ð -Ð -Ð -Ð -ðKð Kð Kð Kð Kñ Kô Kð KðZð ð ð ð ð r   