§
    k(¡QïQ  ã                   ó  — d dl Z d dlZd dlZd dlZd dlZ	 d dlZn# e$ r d dlZY nw xY wd dlm	Z	m
Z
mZmZmZmZmZmZmZ d dlZdZdZdZdZd                     ¦   «         ZdZd Zd	Zd
Z G d„ dej        ¦  «        Z G d„ dej        ¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z  G d„ de¦  «        Z! G d„ de¦  «        Z" G d„ de¦  «        Z# ej$        ej%        ¦  «        e_%         ej$        ej&        ¦  «        e_&        dS )é    N)	ÚRunnerÚTaskGenÚUtilsÚ	ConfigSetÚTaskÚLogsÚOptionsÚContextÚErrorsÚc4chez	_cache.pyi9  iÇúÿÿz!root node_deps raw_deps task_sigsÚ	cfg_filesé   é   c                   óJ  ‡ — e Zd ZdZdZdZˆ fd„Zd„ Z eed¦  «        Z	d„ Z
d„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd.d„Zd„ Zd„ Z eee¦  «        Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d„ Z"d„ Z#d „ Z$d!„ Z%d/d"„Z&d#„ Z'd$„ Z(d0d&„Z)d'„ Z*d(„ Z+d)„ Z,d*„ Z-d+„ Z.d,„ Z/d-„ Z0ˆ xZ1S )1ÚBuildContextzexecutes the buildÚbuildÚ c                 ó¬  •—  t          t          | ¦  «        j        di |¤Ž d| _        |                     dt
          j        ¦  «        | _        |                     dt
          j        ¦  «        | _        t          | _	        |                     dt
          j
        ¦  «        | _
        |                     dd ¦  «        | _        | j        s!| j
        t          j        z   t          z   | _        i | _        i | _        i | _        i | _        i | _        i | _        t
          j        | _        t,          j        j        | _        t,          j        j        | _        t,          j        j        | _        t,          j        | _        t,          j        j        | _        t,          j        j        | _        t=          j        t@          ¦  «        | _!        d| _"        g | _#        i | _$        d S )Nr   Útop_dirÚrun_dirÚout_dirÚ	cache_dir© )%Úsuperr   Ú__init__Ú
is_installÚgetr
   r   r   ÚPOST_AT_ONCEÚ	post_moder   r   ÚosÚsepÚ	CACHE_DIRÚall_envsÚ	task_sigsÚ	node_depsÚraw_depsÚcache_dir_contentsÚtask_gen_cache_namesÚ
launch_dirr	   ÚoptionsÚjobsÚtargetsÚkeepÚcache_globalÚnocacheÚprogress_barr   ÚdefaultdictÚlistÚdeps_manÚcurrent_groupÚgroupsÚgroup_names©ÚselfÚkwÚ	__class__s     €úO/git_repos/avwlv2/.waf3-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Build.pyr   zBuildContext.__init__   sZ  ø€ Ø#…%��TÑÔÔ#Ð)Ð) bÐ)Ð)Ð)Ø€$„/Ø�vŠv�i¥¤Ñ0Ô0€$„,Ø�vŠv�i¥¤Ñ0Ô0€$„,Ý€$„.Ø�vŠv�i¥¤Ñ0Ô0€$„,Ø—’˜ DÑ)Ô)€$„.Ø	Œð 0Ø”,�rœvÑ%¥iÑ/€4„>Ø€$„-Ø€$„.Ø€$„.Ø€$„-Ø€$ÔØ€$ÔÝÔ$€$„/ÝŒOÔ €$„)ÝŒÔ&€$„,ÝŒOÔ €$„)ÝÔ(€$ÔÝŒÔ&€$„,Ý”OÔ0€$ÔÝÔ!¥$Ñ'Ô'€$„-Ø€$ÔØ€$„+Ø€$ÔÐÐó    c                 ór   — | j         s| j        S t          j                             | j        | j         ¦  «        S ©N)Úvariantr   r    ÚpathÚjoin©r8   s    r;   Úget_variant_dirzBuildContext.get_variant_dir4   s.   € Ø	Œð Ø
Œ,ÐÝ	Œ�Š�d”l 4¤<Ñ	0Ô	0Ð0r<   Nc                 ó–   — | |d<   t          j        |i |¤Ž}i | _        |                      ||                     dd ¦  «        ¬¦  «         |S )NÚbldÚgroup)rF   )r   Útask_genr(   Úadd_to_groupr   )r8   Úkr9   Úrets       r;   Ú__call__zBuildContext.__call__9   sT   € Ø€"€U�)ÝÔ˜Ð˜BÐÐ€#Ø€$ÔØ×Ò�C˜bŸfšf W¨TÑ2Ô2ÐÑ3Ô3Ð3Ø	€*r<   c                 ó   ‡ ‡‡— ˆˆˆ fd„}|S )Nc                 ó&   •—  ‰‰i ‰¤Ž}| |_         |S r>   )Úrule)rN   rJ   rI   r9   r8   s     €€€r;   ÚfzBuildContext.rule.<locals>.f@   s    ø€ Ø€tˆQ€}�€}€}€3Ø€3„8Ø
€:r<   r   )r8   rI   r9   rO   s   ``` r;   rN   zBuildContext.rule?   s/   øøø€ ðð ð ð ð ð ð ð 
€(r<   c                 ó*   — t          j        d¦  «        ‚)Nz,build contexts are not supposed to be copied)r   ÚWafErrorrB   s    r;   Ú__copy__zBuildContext.__copy__E   s   € ÝŒÐFÑGÔGÐGr<   c                 ó   — d S r>   r   ©r8   rI   r9   s      r;   Úinstall_fileszBuildContext.install_filesG   ó   € Ø€$r<   c                 ó   — d S r>   r   rT   s      r;   Ú
install_aszBuildContext.install_asI   rV   r<   c                 ó   — d S r>   r   rT   s      r;   Ú
symlink_aszBuildContext.symlink_asK   rV   r<   c                 óò  — | j                              | j        ¦  «        }|st          j        d¦  «        ‚|                     dt          z  d¬¦  «        }|st          j        d¦  «        ‚|D �]}|                     |¦  «                             t          d¦  «                             dd¦  «        }t          j	        | 
                    ¦   «         ¦  «        }|| j        |<   |t                   D ]…}| j                              |¦  «        }	 t          j        | 
                    ¦   «         ¦  «        }n:# t           t"          f$ r& t%          j        d	|z  ¦  «         t          j        }Y nw xY w||_        Œ†�Œ
d S )
Nú:The project was not configured: run "waf configure" first!z**/*%sT)Úquietz5The cache directory is empty: reconfigure the projectr   ú\ú/zcannot find %r)ÚrootÚ	find_noder   r   rQ   Úant_globÚCACHE_SUFFIXÚ	path_fromÚreplacer   Úabspathr#   Ú	CFG_FILESÚfind_resourcer   Úh_fileÚIOErrorÚAttributeErrorr   ÚerrorÚSIG_NILÚsig)	r8   ÚnodeÚlstÚxÚnameÚenvrO   ÚnewnodeÚhs	            r;   Ú	load_envszBuildContext.load_envsM   sn  € Ø„y×Ò˜4œ>Ñ*Ô*€$Ø	ð WÝ	ŒÐUÑ	VÔ	VÐVØ
‡m‚m�H�\Ñ)°€mÑ5Ô5€#Ø	ð RÝ	ŒÐPÑ	QÔ	QÐQØð ñ €aØ	�Š�DÑÔ×!Ò!¥,¨rÑ2Ô2×:Ò:¸4ÀÑDÔD€4ÝÔ˜1Ÿ9š9™;œ;Ñ'Ô'€3Ø€4„=�ÑØ•	ŒNð ð €qØŒI×#Ò# AÑ&Ô&€GðÝ„|�G—O’OÑ%Ô%Ñ&Ô&€Q€QøÝ•>Ð
"ð ð ð Ý	„ZÐ  Ñ"Ñ#Ô#Ð#Ý„}€Q€Q€Qðøøøð €G„K€Kñð	ð s   Ä&D3Ä34E*Å)E*c                 óŽ  — t           j                             | j        ¦  «        r$t           j                             | j        ¦  «        st          j        d¦  «        ‚| j                             | j        ¦  «        x| _        | _	        | j         
                    | j        ¦  «        | _        | j                             ¦   «          d S )Nr\   )r    r@   Úisabsr   r   r   rQ   r`   Úfind_dirÚsrcnodeÚ	make_nodeÚvariant_dirÚbldnodeÚmkdirrB   s    r;   Ú	init_dirszBuildContext.init_dirs`   s˜   € Ý	Œ�Š�t”|Ñ	$Ô	$ð W­¬¯ª°d´lÑ(CÔ(Cð WÝ	ŒÐUÑ	VÔ	VÐVØœ×+Ò+¨D¬LÑ9Ô9Ð9€$„)ˆDŒLØŒy×"Ò" 4Ô#3Ñ4Ô4€$„,Ø„,×ÒÑÔÐÐÐr<   c                 óŒ   — |                       ¦   «          | j        s|                      ¦   «          |                      ¦   «          d S r>   )Úrestorer#   rv   Úexecute_buildrB   s    r;   ÚexecutezBuildContext.executef   sA   € Ø‡,‚,�.„.€.Ø	Œð Ø‡>‚>ÑÔÐØ×ÒÑÔÐÐÐr<   c           
      ó  — t          j        d| j        z  ¦  «         |                      | j        g¦  «         |                      ¦   «          t          j        ¦   «         | _        | j	        r.t          j                             t           j        j        ¦  «         	 |                      ¦   «          | j	        dk    rºt!          | j        ¦  «        pd}|                      |                      ||t           j        j        t           j        j        ¦  «        ¦  «         t-          d¦  «         t          j                             ¦   «          t          j                             t           j        j        ¦  «         t          j        d| j        z  ¦  «         næ# | j	        dk    rºt!          | j        ¦  «        pd}|                      |                      ||t           j        j        t           j        j        ¦  «        ¦  «         t-          d¦  «         t          j                             ¦   «          t          j                             t           j        j        ¦  «         t          j        d| j        z  ¦  «         w xY w|                      ¦   «          d S )NzWaf: Entering directory `%s'r   r   zWaf: Leaving directory `%s')r   Úinfor|   Úrecurser   Ú	pre_buildr   ÚTimerÚtimerr0   ÚsysÚstderrÚwriteÚcolorsÚ
cursor_offÚcompileÚlenÚreturned_tasksÚto_logÚprogress_lineÚBLUEÚNORMALÚprintÚstdoutÚflushÚ	cursor_onÚ
post_build)r8   Úcs     r;   r‚   zBuildContext.execute_buildk   sô  € Ý„)Ð*¨4Ô+;Ñ;Ñ<Ô<Ð<Ø‡,‚,�”ˆ~ÑÔÐØ‡.‚.ÑÔÐÝŒ[‰]Œ]€$„*Ø	Ôð ,Ý„:×Ò•D”KÔ*Ñ+Ô+Ð+ð	=Ø‡<‚<�>„>€>à
Ô˜ÒÐÝ	ˆ$Ô
ÑÔÐ" €AØ‡K‚K�×"Ò" 1 Q¥t¤{Ô'7½¼Ô8JÑKÔKÑLÔLÐLÝ	ˆ"�I„I€IÝ„J×ÒÑÔÐÝ„J×Ò•T”[Ô*Ñ+Ô+Ð+Ý„9Ð*¨4Ô+;Ñ;Ñ<Ô<Ð<Ð<øð Ô˜ÒÐÝ	ˆ$Ô
ÑÔÐ" €AØ‡K‚K�×"Ò" 1 Q¥t¤{Ô'7½¼Ô8JÑKÔKÑLÔLÐLÝ	ˆ"�I„I€IÝ„J×ÒÑÔÐÝ„J×Ò•T”[Ô*Ñ+Ô+Ð+Ý„9Ð*¨4Ô+;Ñ;Ñ<Ô<Ð<Ð<øøøØ‡/‚/ÑÔÐÐÐs   ÂF ÆC#I3c                 ó  — 	 t          j         t          j                             | j        d¦  «        ¦  «        }|d         t
          j        k     rt          j        d¦  «        ‚|d         D ]} | j	        d	i |¤Ž Œn# t          t          f$ r Y nw xY wt          j                             | j        t
          j        ¦  «        }	 t          j        |d¦  «        }	 t           j        j                             ¦   «          | j        t           j        _        	 t-          j        |¦  «        }t0          D ]}t3          | |||         ¦  «         Œn1# t4          $ r$}t7          j        d|›d|›�¦  «         Y d }~nd }~ww xY wt           j        j                             ¦   «          nV# t           j        j                             ¦   «          w xY w# t          t<          f$ r t7          j        d|z  ¦  «         Y nw xY w|                      ¦   «          d S )
Nzbuild.config.pyÚversionz)Version mismatch! reconfigure the projectÚtoolsÚrbz(build: Could not pickle the build cache z: z2build: Could not load the build cache %s (missing)r   ) r   r    r@   rA   r   r
   Ú
HEXVERSIONr   rQ   Úsetuprj   ÚOSErrorr|   ÚDBFILEr   ÚreadfÚwaflibÚNodeÚpickle_lockÚacquireÚ
node_classÚNod3ÚcPickleÚloadsÚSAVED_ATTRSÚsetattrÚ	Exceptionr   ÚdebugÚreleaseÚEOFErrorr   )r8   rs   ÚtÚdbfnÚdatarq   Úes          r;   r�   zBuildContext.restore}   s$  € ðÝÔ�2œ7Ÿ<š<¨¬Ð7HÑIÔIÑJÔJ€3ð 
ˆ)„n•WÔ'Ò'Ð'Ý
Œ/ÐEÑ
FÔ
FÐFØ�ŒLð ð €qØ€D„J€O€O�€O€O€O€Oðøõ 
•Ðð ð ð Ø€4ðøøøõ 
„w‡|‚|�DÔ$¥W¤^Ñ4Ô4€$ð&ÝŒ�D˜ÑÔ€4ð&Ý
„KÔ×#Ò#Ñ%Ô%Ð%Ø”_…F„KÔðÝ
Œ-˜Ñ
Ô
€Tõ ð ð ˆÝˆd�1�T˜!”WÑÔÐÐðøõ ð Kð Kð KÝ	„Z€ZÀ$À$À$ÀqÀqÐIÑJÔJÐJÐJÐJÐJÐJÐJøøøøðKøøøõ „KÔ×#Ò#Ñ%Ô%Ð%Ð%ø…F„KÔ×#Ò#Ñ%Ô%Ð%Ð%øøøøõ 
•Ðð Ið Ið IÝ„:ÐBÀ4ÑGÑHÔHÐHÐHÐHðIøøøð ‡.‚.ÑÔÐÐÐsY   ‚7A< Á<BÂBÃG Ã9F ÄE	 Ä'"F Å	
E7ÅE2Å-F Å2E7Å7F Æ%GÇ(G1Ç0G1c                 ó  — i }t           D ]}t          | |¦  «        ||<   Œt          j                             | j        t          j        ¦  «        }	 t          j	        j
                             ¦   «          | j        t          j	        _        t          j        |d¦  «        }t          j	        j
                             ¦   «          n(# t          j	        j
                             ¦   «          w xY wt#          j        |dz   |d¬¦  «         	 t          j        |¦  «        }t          j        |¦  «         t"          j        s#t          j        |dz   |j        |j        ¦  «         n# t2          t4          f$ r Y nw xY wt          j        |dz   |¦  «         d S )Néÿÿÿÿz.tmpÚwb)Úm)r­   Úgetattrr    r@   rA   r|   r
   r£   r¥   r¦   r§   r¨   r©   rª   r«   Údumpsr±   r   ÚwritefÚstatÚremoveÚis_win32ÚchownÚst_uidÚst_gidrk   r¢   Úrename)r8   rµ   rq   ÚdbÚsts        r;   ÚstorezBuildContext.storeš   sU  € Ø	€$Ýð ð €aÝ�4˜‰?Œ?€4ˆ�7€7Ý„W‡\‚\�$Ô"¥7¤>Ñ2Ô2€"ð%Ý	„;Ô×"Ò"Ñ$Ô$Ð$Ø”O…6„;ÔÝ„]�4˜ÑÔ€1å	„;Ô×"Ò"Ñ$Ô$Ð$Ð$ø…6„;Ô×"Ò"Ñ$Ô$Ð$Ð$øøøÝ„,ˆr�&‰y˜˜TÐ"Ñ"Ô"Ð"ðÝ„gˆb�k„k€2Ý„9ˆR�=„=€=Ý
Œ.ð ,Ý„HˆR�‰Y�r”y ¤Ñ+Ô+Ð+øøÝ	�Ð ð ð ð Ø€4ðøøøå„)ˆBˆv‰I�bÑÔÐÐÐs    ÁAC Ã%C'ÄAE ÅE1Å0E1c                 óÆ  — t          j        d¦  «         t          j        | | j        ¦  «        | _        |                      ¦   «         | j        _        g | _        	 | j         	                    ¦   «          | j        j
        r|                      ¦   «          n## t          $ r |                      ¦   «          ‚ w xY w| j        j        rt          j        | j        j        ¦  «        ‚d S )Nzbuild: compile())r   r°   r   ÚParallelr+   ÚproducerÚget_build_iteratorÚbiterr‘   ÚstartÚdirtyrÇ   ÚKeyboardInterruptrl   r   Ú
BuildErrorrB   s    r;   r�   zBuildContext.compile®   sØ   € Ý„*ÐÑ Ô Ð Ý”  T¤YÑ/Ô/€$„-Ø×-Ò-Ñ/Ô/€$„-ÔØ€$ÔðØ„=×ÒÑÔÐð
 „mÔð Ø‡J‚J�L„L€Løøõ 
ð 	ð 	ð 	Ø‡:‚:�<„<€<Øð	øøøð 
„]Ôð 0Ý	Ô	˜4œ=Ô.Ñ	/Ô	/Ð/ð0ð 0s   ÁB Â B4c                 óâ   — t          |t          ¦  «        r|D ]}|                      ||¦  «         Œd S t          j        ||¦  «        }t          |d¦  «        r|                     | ¦  «         d S d S )Nr¡   )Ú
isinstancer2   r¡   r
   Ú	load_toolÚhasattr)r8   ÚtoolÚtooldirÚfunsÚiÚmodules         r;   r¡   zBuildContext.setup½   sy   € Ý�•TÑÔð 
ØÐ&Ð&€q�—’˜A˜gÑ&Ô&Ð&Ð&Ø	€6Ý	Ô	˜4 Ñ	(Ô	(€&ÝˆV�GÑÔÐ/˜VŸ\š\¨$Ñ/Ô/Ð/Ð/Ð/Ð/Ð/r<   c                 ób   — 	 | j         | j                 S # t          $ r | j         d         cY S w xY w©Nr   )r#   r?   ÚKeyErrorrB   s    r;   Úget_envzBuildContext.get_envÃ   sD   € ðØ
Œ-˜œÔ
%Ð%øÝ	ð ð ð Ø
Œ-˜Ô
ÐÐÐðøøøs   ‚ ”.­.c                 ó$   — || j         | j        <   d S r>   )r#   r?   )r8   Úvals     r;   Úset_envzBuildContext.set_envÈ   s   € Ø!€$„-�”ÑÐÐr<   c                 óö  — |€t          d¦  «        ‚t          |t          j        j        ¦  «        r|}nTt          j                             |¦  «        r| j                             |¦  «        }n| j                             |¦  «        }t          |t          ¦  «        r/| j
        t          |¦  «                                      |¦  «         d S | j
        t          |¦  «                                      |¦  «         d S )NzInvalid input)Ú
ValueErrorrÒ   r¥   r¦   r    r@   rx   r`   rh   r2   r3   ÚidÚextendÚappend)r8   r@   Úvaluero   s       r;   Úadd_manual_dependencyz"BuildContext.add_manual_dependencyË   sÕ   € Ø	€\Ý	�OÑ	$Ô	$Ð$Ý�•V”[Ô%Ñ&Ô&ð &Ø€4€4Ý	„w‡}‚}�TÑÔð &ØŒ	×Ò Ñ%Ô%€4€4àŒ	×Ò Ñ%Ô%€4Ý�•dÑÔð )Ø„=•�D‘”Ô×!Ò! %Ñ(Ô(Ð(Ð(Ð(à„=•�D‘”Ô×!Ò! %Ñ(Ô(Ð(Ð(Ð(r<   c                 óˆ   — 	 | j         S # t          $ r. | j                             | j        ¦  «        | _         | j         cY S w xY wr>   )Úp_lnrk   r`   ry   r)   rB   s    r;   Úlaunch_nodezBuildContext.launch_nodeØ   sQ   € ðØ
Œ)ÐøÝ	ð ð ð ØŒY×Ò ¤Ñ0Ô0€4„9Ø
Œ)ÐÐÐðøøøs   ‚	 ‰5AÁ Ac                 ó´  ‡— ‰j         s‰j        Š‰st          j        S t	          t          ‰¦  «        ¦  «        t	          |¦  «        z   }	 | j        }	 | j        |         S # t          $ r Y nw xY w# t          $ r i x}| _        Y nw xY wˆfd„|D ¦   «         }t          j	        |¦  «        }t          j        dt          j        |¦  «        |¦  «         |||<   |S )Nc                 ó    •— g | ]
}‰|         ‘ŒS r   r   )Ú.0Úars   s     €r;   ú
<listcomp>z.BuildContext.hash_env_vars.<locals>.<listcomp>í   s   ø€ ÐÐÐ�€sˆ1„vÐÐÐr<   zenvhash: %s %r)ÚtableÚparentr   rm   Ústrrã   Ú	cache_envrÜ   rk   Úh_listr   r°   Úto_hex)r8   rs   Úvars_lstÚidxÚcacherp   rJ   s    `     r;   Úhash_env_varszBuildContext.hash_env_varsÞ   s  ø€ Ø	Œð Ø
„z€3Ø
ð ÝŒ=ÐÝ	�"ˆS‰'Œ'�l„l•3�x‘=”=Ñ €#ð	Ø	Œ€5ð	ØŒ>˜#ÔÐøÝ
ð 	ð 	ð 	Ø€Dð	øøøøõ 
ð ð ð ØÐ€5ˆŒˆˆðøøøð  ÐÐÐ�hÐÑÔ€#Ý„l�3ÑÔ€#Ý„*Ð�eœl¨3Ñ/Ô/°Ñ4Ô4Ð4Ø€%ˆ�*Ø	€*s$   ÁA0 ÁA  Á 
A-Á,A-Á0BÂBc                 óÄ   — | j         }|s*| j        D ]"}|D ]}	 |||j        <   Œ# t          $ r Y Œw xY wŒ#	 ||         S # t          $ r t          j        d|z  ¦  «        ‚w xY w)Nz/Could not find a task generator for the name %r)r(   r5   rr   rk   rÜ   r   rQ   )r8   rr   rø   ÚgÚtgs        r;   Úget_tgen_by_namezBuildContext.get_tgen_by_nameò   s®   € ØÔ!€%Ø	ð ØŒKð ð €qØð ð ˆðØ€eˆBŒG�n€nøÝð ð ð Ø
€dðøøøðð
QØ
�Œ+ÐøÝ	ð Qð Qð QÝ	ŒÐJÈ4ÑOÑ	PÔ	PÐPðQøøøs   ˜
#£
0¯0µ= ½"Ac                 óH  — t          t          |¦  «        ¦  «        }t          xj        dz  c_        t          j        t          j        dz           }d|z  |z  }t          | j        ¦  «        }d|||fz  }	|	|||||fz  }
d|›|›|›d�}t          j        ¦   «         t          |
¦  «        z
  t          |¦  «        z
  dt          |¦  «        z  z   dt          |¦  «        z  z   }|dk     rd}||z  |z  dz
  }d	|z  d
z                        |¦  «        }t          j	        |
||fz  }|S )Nr   é   g      Y@z"[%%%dd/%%%dd][%%s%%2d%%%%%%s][%s][z][ú]r   é   ú=ú>)
r�   rò   r   Úrot_idxÚrot_chrr‰   r   Úget_term_colsÚljustÚ	indicator)r8   ÚstateÚtotalÚcol1Úcol2ÚnÚindÚpcÚetaÚfsÚleftÚrightÚcolsÚratioÚbarÚmsgs                   r;   r“   zBuildContext.progress_lineÿ   s   € Ý�ˆE‰
Œ
�O„O€!Ý€-„-�Ñ€-„-Ý„m•E”M !‘OÔ$€#Ø
ˆ5�j�%Ñ€"Ý	ˆ$Œ*�o„o€#Ø)¨1¨Q¨s¨)Ñ3€"Ø	ˆ5��t˜B˜tÐ
$Ñ$€$€$Ø�T˜#˜#˜d˜d˜dÐ#€%ÝÔÑÔ�C ™IœIÑ%¥c¨%¡j¤jÑ0°µ3°t±9´9±Ñ<¸Q½sÀ4¹y¼y¹[ÑH€$Ø	ˆ!‚V€V�ˆDØ
ˆu‰*�uÑ	˜aÑ€%Ø
ˆ5�y��}×Ò˜DÑ!Ô!€#Ý„o�t˜C Ð&Ñ&€#Ø	€*r<   c                 ó$   — t          j        |i |¤ŽS r>   )r   Údeclare_chainrT   s      r;   r  zBuildContext.declare_chain  s   € Ý	Ô	 Ð	' BÐ	'Ð	'Ð'r<   c                 óD   — t          | dg ¦  «        D ]} || ¦  «         Œd S )NÚpre_funs©r»   ©r8   rº   s     r;   r‡   zBuildContext.pre_build  s6   € Ý�4˜
 2Ñ&Ô&ð ð €aØ€1€T�7„7€7€7ðð r<   c                 óD   — t          | dg ¦  «        D ]} || ¦  «         Œd S )NÚ	post_funsr  r  s     r;   rš   zBuildContext.post_build  s6   € Ý�4˜ BÑ'Ô'ð ð €aØ€1€T�7„7€7€7ðð r<   c                 ón   — 	 | j                              |¦  «         d S # t          $ r |g| _         Y d S w xY wr>   )r  rå   rk   ©r8   Úmeths     r;   Úadd_pre_funzBuildContext.add_pre_fun  sM   € ðØ„=×Ò˜ÑÔÐÐÐøÝ	ð ð ð Ø�€4„=€=€=€=ðøøøó   ‚ ž4³4c                 ón   — 	 | j                              |¦  «         d S # t          $ r |g| _         Y d S w xY wr>   )r  rå   rk   r!  s     r;   Úadd_post_funzBuildContext.add_post_fun  sM   € ðØ„>×Ò˜ÑÔÐÐÐøÝ	ð ð ð Ø�&€4„>€>€>€>ðøøør$  c                 ó¦   — | j         s|                      ¦   «          |€| j         | j                 S || j        v r| j        |         S | j         |         S r>   )r5   Ú	add_groupr4   r6   )r8   rq   s     r;   Ú	get_groupzBuildContext.get_group   sY   € Ø	Œð Ø‡>‚>ÑÔÐØ€YØ
Œ+�dÔ(Ô
)Ð)Øˆ$Ô
ÐÐØ
Ô
˜1Ô
ÐØ	Œ�QŒÐr<   c                 óÐ   — t          |t          j        ¦  «        st          |t          j        ¦  «        sJ ‚| |_        |                      |¦  «                             |¦  «         d S r>   )rÒ   r   rG   r   ÚTaskBaserE   r)  rå   )r8   ÚtgenrF   s      r;   rH   zBuildContext.add_to_group(  sY   € Ý	�D�Ô)Ñ	*Ô	*ÐL­Z¸½T¼]Ñ-KÔ-KÐLÐLÐLØ€$„(Ø‡.‚.�ÑÔ×Ò˜tÑ$Ô$Ð$Ð$Ð$r<   c                 ó¼   — t          |t          ¦  «        s| j        |         }| j        D ]1}t	          | j        |         ¦  «        t	          |¦  «        k    r|c S Œ2dS rÛ   )rÒ   r2   r5   r6   rã   )r8   rû   rq   s      r;   Úget_group_namezBuildContext.get_group_name,  se   € Ý	�A•dÑ	Ô	ð Ø	„[�„^€1ØÔð ð €aÝˆÔ	˜!Ô	ÑÔ�r !™uœuÒ$Ð$Ø€H€H€Hð %à
ˆr<   c                 ó¾   — t          |¦  «        }t          t          | j        ¦  «        ¦  «        D ]+}| j        |         D ]}t          |¦  «        |k    r|c c S ŒŒ,d S r>   )rã   Úranger�   r5   )r8   rü   ÚserØ   r³   s        r;   Úget_group_idxzBuildContext.get_group_idx3  sp   € Ýˆ�V„V€"Ý•�T”[Ñ!Ô!Ñ"Ô"ð ð €aØŒK˜ŒNð ð €qÝ	ˆ!�u„uˆb‚y€yØ€X€X€X€X€Xð ðð 
ˆr<   Tc                 óÖ   — |r || j         v rt          j        d|z  ¦  «         g }|| j         |<   | j                             |¦  «         |rt          | j        ¦  «        dz
  | _        d S d S )Nz"add_group: name %s already presentr   )r6   r   rl   r5   rå   r�   r4   )r8   rr   Úmoverû   s       r;   r(  zBuildContext.add_group:  s„   € Ø	ð 9ˆd�dÔ&Ð&Ð&Ý„:Ð2°4Ñ7Ñ8Ô8Ð8Ø€!Ø€$Ô�4ÑØ„+×Ò�QÑÔÐØ	ð )Ý˜$œ+Ñ&Ô& qÑ(€4ÔÐÐð)ð )r<   c                 ó  — t          |t          ¦  «        re| j        |         }t          t	          | j        ¦  «        ¦  «        D ]4}t          |¦  «        t          | j        |         ¦  «        k    r|| _        Œ5d S || _        d S r>   )rÒ   rò   r6   r0  r�   r5   rã   r4   )r8   r÷   rû   rØ   s       r;   Ú	set_groupzBuildContext.set_groupB  s„   € Ý�•CÑÔð Ø	Ô�cÔ€1Ý•#�d”kÑ"Ô"Ñ#Ô#ð ð €qÝ	ˆ!�u„u�b�”˜Q”Ñ Ô Ò Ð Ø€TÔøðð ð €4ÔÐÐr<   c                 ó‚   — d}| j         D ]4}|D ]/}	 |t          |j        ¦  «        z  }Œ# t          $ r |dz  }Y Œ,w xY wŒ5|S )Nr   r   )r5   r�   Útasksrk   )r8   r
  rF   rü   s       r;   r
  zBuildContext.totalJ  st   € Ø	€%ØŒ{ð ð €eØð ð €rðØ
�C�”‰MŒMÑ€U€UøÝð ð ð Ø
ˆA�X€U€U€Uðøøøðð
 
€,s   ‘)©;º;c                 ó   — g }d}| j                              d¦  «        D ]l}|                      |¦  «        }|st          j        d|z  ¦  «        ‚|                      |¦  «        }||k    r|}|g}ŒQ||k    r|                     |¦  «         Œm||fS )Nr   ú,ztarget %r does not exist)r,   Úsplitrý   r   rQ   r2  rå   )r8   Úto_postÚmin_grprr   rü   rº   s         r;   Úget_targetszBuildContext.get_targetsS  s­   € Ø
€'Ø
€'ØŒl× Ò  Ñ%Ô%ð 	ð 	€dØ
×Ò˜DÑ!Ô!€2Ø
ð ;Ý
Œ/Ð4°TÑ9Ñ
:Ô
:Ð:Ø	×Ò˜ÑÔ€1Øˆ‚i€iØ€GØˆD€G€GØ	ˆ7Š
ˆ
Ø‡N‚N�2ÑÔÐøØ	�ÐÐr<   c                 óH   — g }| j         D ]}|                     |¦  «         Œ|S r>   )r5   rä   )r8   rp   rû   s      r;   Úget_all_task_genzBuildContext.get_all_task_gena  s.   € Ø€#ØŒ;ð ð €aØ‡:‚:ˆa�=„=€=€=Ø	€*r<   c                 ón  — | j         dk    r9| j        | j                 D ]$}	 |j        } |¦   «          Œ# t          $ r Y Œ!w xY wd S | j         ri| j        | j        k     r9| j        | j                 D ]$}	 |j        } |¦   «          Œ# t          $ r Y Œ!w xY wd S | j        D ]}|                     ¦   «          Œd S |                      ¦   «         }|                     | j	        ¦  «        rt          j        d¦  «         | j        }ne|                     | j        ¦  «        sKt          j        d|                     ¦   «         ›d| j                             ¦   «         ›d�¦  «         | j        }| j        | j                 D ]>}	 |j        }|j                             |¦  «        r
 |¦   «          Œ/# t          $ r Y Œ;w xY wd S )NÚ*z6Building from the build directory, forcing --targets=*zCWD z is not under z&, forcing --targets=* (run distclean?))r,   r5   ÚcurÚpostrk   Ú_min_grpÚ	_exact_tgrê   Úis_child_ofr}   r   Úwarnrz   rf   r@   )r8   rü   rO   Úlns       r;   Ú
post_groupzBuildContext.post_groupf  s#  € Ø	„\�3ÒÐØŒ[˜œÔ"ð 	ð 	€rð	Ø	„w€Qð €Q�S„S€S€Søõ ð 
ð 
ð 
Ø	€Tð
øøøð	ð 	ð „|ð 
Ø
„hˆtŒ}ÒÐØŒk˜$œ(Ô#ð 
ð 
ˆð
Ø
Œ€að €a�c„c€c€cøõ ð ð ð Ø
€dðøøøð
ð 
ð Œnð ð ˆØ‡W‚W�Y„Y€Y€Yðð ð ×ÒÑÔ€2Ø‡n‚n�T”\Ñ"Ô"ð Ý„IÐFÑGÔGÐGØ„|€B€BØ�NŠN˜4œ<Ñ(Ô(ð Ý„I€IÈbÏjÊjÉlÌlÈlÈlÐ[_Ô[g×[oÒ[oÑ[qÔ[qÐ[qÐ[qÐrÑsÔsÐsØ„|€BØŒ[˜œÔ"ð 
ð 
€rð
Ø	„w€Qð 	Œ×Ò˜BÑÔð 
Ø€a�c„c€cøøõ	 ð 
ð 
ð 
Ø	€Tð
øøøð
ð 
s2   ¡3³
A ¿A Á1BÂ
BÂBÅ9F%Æ%
F2Æ1F2c                 óª   — g }| j         |         D ]B}	 |                     |j        ¦  «         Œ# t          $ r |                     |¦  «         Y Œ?w xY w|S r>   )r5   rä   r8  rk   rå   )r8   r÷   r8  rü   s       r;   Úget_tasks_groupzBuildContext.get_tasks_group‹  sq   € Ø
€%ØŒK˜Ôð ð €bðØ	‡L‚L�”ÑÔÐÐøÝ
ð ð ð Ø	‡L‚L�ÑÔÐÐÐðøøøà	€,s   “.®AÁAc              #   óì  K  — d| _         | j        r,| j        dk    r!|                      ¦   «         \  | _        | _        | j        t          k    re| j         t          | j        ¦  «        k     rA|  	                    ¦   «          | xj         dz  c_         | j         t          | j        ¦  «        k     °Ad| _         | j         t          | j        ¦  «        k     r¡| j        t          k    r|  	                    ¦   «          |                      | j         ¦  «        }t          j        |¦  «         t          j        |¦  «         || _        | xj         dz  c_         |sŒ�|V — | j         t          | j        ¦  «        k     °¡	 g V — Œ)Nr   rB  r   )rC  r,   r>  rE  rF  r   Ú	POST_LAZYr�   r5   rJ  r   rL  r   Úset_file_constraintsÚset_precedence_constraintsÚ	cur_tasks)r8   r8  s     r;   rË   zBuildContext.get_build_iterator“  sc  è è € Ø€$„(Ø	„\ð 5�d”l CÒ'Ð'Ø"&×"2Ò"2Ñ"4Ô"4Ñ!€D„M�$”.à	„^•YÒÐØ	Œ•#�d”kÑ"Ô"Ò	"Ð	"Ø‡O‚OÑÔÐØ€H„Hˆa�K€H„Hð 
Œ•#�d”kÑ"Ô"Ò	"Ð	"ð €4„8ØŒ•�T”[Ñ!Ô!Ò!Ð!Ø
„n•lÒ"Ð"Ø‡O‚OÑÔÐØ	×	Ò	˜dœhÑ	'Ô	'€5ÝÔ˜UÑ#Ô#Ð#ÝÔ" 5Ñ)Ô)Ð)Ø€4„>Ø€8„8ˆQ�;€8„8Ø
ð ØØ	€;€;€;ð 	Œ•�T”[Ñ!Ô!Ò!Ð!ðØ
€7€7€7ðr<   )NNr>   )NT)2Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úcmdr?   r   rC   Úpropertyr|   rK   rN   rR   rU   rX   rZ   rv   r   rƒ   r‚   r�   rÇ   r�   r¡   rÝ   rà   rs   rç   rê   rù   rý   r“   r  r‡   rš   r#  r&  r)  rH   r.  r2  r(  r6  r
  r>  r@  rJ  rL  rË   Ú__classcell__©r:   s   @r;   r   r      sË  ø€ € € € € ØÐØ€Ø	€ðð ð ð ð ð61ð 1ð 1ð ˆX�o dÑ+Ô+€ðð ð ðð ð ðHð Hð Hðð ð ðð ð ðð ð ðð ð ð&ð ð ðð ð ð
ð ð ð$ð ð ð:ð ð ð(0ð 0ð 0ð0ð 0ð 0ð 0ðð ð ð
"ð "ð "à€Xˆg�gÑÔ€ð)ð )ð )ðð ð ðð ð ð(Qð Qð Qðð ð ð(ð (ð (ðð ð ðð ð ðð ð ð
ð ð ð
ð ð ð%ð %ð %ð %ðð ð ðð ð ð)ð )ð )ð )ðð ð ðð ð ðð ð ðð ð ð
$
ð $
ð $
ðJð ð ðð ð ð ð ð ð r<   r   c                   óT   ‡ — e Zd ZdZd„ Zd„ Zˆ fd„Zd„ Zd„ Zdd„Z	d	„ Z
d
„ Zd„ Zˆ xZS )ÚinstÚCYANc                 óp   — | j         | j        g| j        z   }t          j        t          |¦  «        ¦  «        S r>   )Údestr@   Úsourcer   rô   Úrepr)r8   rp   s     r;   Úuidzinst.uid¬  s-   € Ø„y�”Ð˜DœKÑ'€#Ý	Œ•d˜3‘i”iÑ	 Ô	 Ð r<   c                 óš  — g }| j         D �]8}t          |t          j        j        ¦  «        r|}nþ| j                             |¦  «        }|sât          j        rt          j        d|z  ¦  «         | j	        j
                             | ¦  «        }| j	        j
        j        |         D ]i}t          |t          ¦  «        s4t          |¦  «        t          | ¦  «        k    r|                     ¦   «          | j                             |¦  «        }|r n Œjt!          j        d|›d| j        ›�¦  «        ‚|                     |¦  «         �Œ:|| _        d S )Nz7Could not find %s immediately (may cause broken builds)zCould not find z in )r_  rÒ   r¥   r¦   r@   rh   r   ÚverboserH  Ú	generatorrE   r2  r5   r[  rã   rD  r   rQ   rå   Úinputs)r8   Úbufrq   Úyr÷   rü   s         r;   rD  z	inst.post¯  sE  € Ø€#ØŒ;ð ñ €aÝ�•6”;Ô#Ñ$Ô$ð EØ€A€Aà
„i×Ò˜aÑ Ô €AØð EÝŒð MÝ
„iÐIÈ!ÑKÑLÔLÐLØ	ŒÔ	×	)Ò	)¨$Ñ	/Ô	/€SØŒ~Ô!Ô(¨Ô-ð Eð EˆÝ˜�4Ñ Ô ð ¥B r¡F¤F­B¨t©H¬HÒ$4Ð$4Ø	‡w‚w�y„y€yØŒ	×Ò Ñ"Ô"€aØ	
ð Ø€uðõ ŒOˆO°q°q°q¸¼¸ÐCÑDÔDÐDØ‡:‚:ˆa�=„=€=�=Ø€$„+€+€+r<   c                 óŽ   •— t          t          | ¦  «                             ¦   «         }|t          j        k    rt          j        S |S r>   )r   r[  Úrunnable_statusr   ÚSKIP_MEÚRUN_ME)r8   rJ   r:   s     €r;   ri  zinst.runnable_statusÄ  s8   ø€ Ý�D�ÑÔ×&Ò&Ñ(Ô(€#Ø�$Œ,ÒÐÝ
Œ+ÐØ	€*r<   c                 ó   — dS rÛ   r   rB   s    r;   Ú__str__zinst.__str__É  s   € Ø
ˆr<   c                 ó4   — | j                              ¦   «         S r>   )rd  Ú	exec_taskrB   s    r;   Úrunzinst.runË  s   € Ø	Œ×	!Ò	!Ñ	#Ô	#Ð#r<   Tc                 óˆ  — t          j        | j        | j        ¦  «        }|                     dt
          j        ¦  «        }|r€t          j        j	        rot
          j
                             t          j        j	        t
          j
                             |¦  «        d                              t
          j        ¦  «        ¦  «        }|S )Nr_   r   )r   Ú
subst_varsr^  rs   re   r    r!   r	   r*   Údestdirr@   rA   Ú
splitdriveÚlstrip)r8   rs  r^  s      r;   Úget_install_pathzinst.get_install_pathÍ  s‰   € ÝÔ˜œ	 $¤(Ñ+Ô+€$Ø‡|‚|�C�œÑÔ€$Øð Y•”Ô(ð YÝ
Œ�Š•W”_Ô,­R¬W×-?Ò-?ÀÑ-EÔ-EÀaÔ-H×-OÒ-OÕPRÔPVÑ-WÔ-WÑXÔX€4Ø	€+r<   c                 óä  — |                       ¦   «         }|st          j        d| j        z  ¦  «        ‚t	          | j        | j        ¦  «        D ]¢\  }}| j        r9t          j	         
                    ||                     | j	        ¦  «        ¦  «        }n%t          j	         
                    ||j        ¦  «        }| j        j                             |                     ¦   «         || j        ¦  «         Œ£d S )Nzunknown installation path %r)rv  r   rQ   rd  Úzipr_  re  Úrelative_trickr    r@   rA   rd   rr   rE   Ú
do_installrf   Úchmod)r8   Údestpathrq   rg  Údestfiles        r;   Úexec_install_fileszinst.exec_install_filesÓ  sÔ   € Ø× Ò Ñ"Ô"€(Ø	ð HÝ	ŒÐ7¸¼ÑFÑ	GÔ	GÐGÝ�”˜Tœ[Ñ)Ô)ð Bð B�c€aˆØ
Ôð +ÝŒW�\Š\˜( 1§;¢;¨t¬yÑ#9Ô#9Ñ:Ô:€H€HåŒW�\Š\˜( 1¤6Ñ*Ô*€HØ„>Ô× Ò  §¢¡¤¨X°d´jÑAÔAÐAÐAðBð Br<   c                 ó´   — |                       ¦   «         }| j        j                             | j        d                              ¦   «         || j        ¦  «         d S )Nr   )rv  rd  rE   rz  re  rf   r{  )r8   r}  s     r;   Úexec_install_aszinst.exec_install_asÝ  sJ   € Ø× Ò Ñ"Ô"€(Ø„.Ô×Ò ¤¨A¤× 6Ò 6Ñ 8Ô 8¸À$Ä*ÑMÔMÐMÐMÐMr<   c                 ó  — |                       ¦   «         }| j        }| j        r=t          j                             |t          j                             |¦  «        ¦  «        }| j        j         	                    ||¦  «         d S r>   )
rv  Úlinkry  r    r@   ÚrelpathÚdirnamerd  rE   Údo_link)r8   r}  Úsrcs      r;   Úexec_symlink_aszinst.exec_symlink_asà  si   € Ø× Ò Ñ"Ô"€(Ø
„i€#Ø	Ôð 6Ý	„w‡‚�s�2œ7Ÿ?š?¨8Ñ4Ô4Ñ5Ô5€3Ø„.Ô×Ò˜S Ñ*Ô*Ð*Ð*Ð*r<   )T)rR  rS  rT  Úcolorra  rD  ri  rm  rp  rv  r~  r€  r‡  rX  rY  s   @r;   r[  r[  ª  sÀ   ø€ € € € € Ø€ð!ð !ð !ðð ð ð*ð ð ð ð ð
ð ð ð$ð $ð $ðð ð ð ð	Bð 	Bð 	BðNð Nð Nð+ð +ð +ð +ð +ð +ð +r<   r[  c                   óˆ   ‡ — e Zd ZdZdZˆ fd„Zej        fd„Zd„ Z	d„ Z
dej        ddd	d	fd
„Zdej        dd	d	fd„Zdd„Zˆ xZS )ÚInstallContextz"installs the targets on the systemÚinstallc                 ón   •—  t          t          | ¦  «        j        di |¤Ž g | _        t          | _        d S ©Nr   )r   rŠ  r   Ú	uninstallÚINSTALLr   r7   s     €r;   r   zInstallContext.__init__é  s8   ø€ Ø%…%��tÑÔÔ%Ð+Ð+¨Ð+Ð+Ð+Ø€$„.Ý€$„/€/€/r<   c                 óú  — t           j                             |¦  «        \  }}|st          j        d|›d|›�¦  «        ‚t          j        |¦  «         |                     | j         	                    ¦   «         t           j
        z   d¦  «        }t          j        j        s�	 t          j        |¦  «        }t          j        |¦  «        }|j        dz   |j        k    r4|j        |j        k    r$| j        st%          j        d|›d|›d�¦  «         dS n# t(          $ r Y nw xY w| j        st%          j        d	|›d|›d�¦  «         	 t          j        |¦  «         n# t(          $ r Y nw xY w	 t-          j        ||¦  «         t          j        ||¦  «         d S # t2          $ r\ 	 t          j        |¦  «         n.# t(          t2          f$ r t%          j        d
|z  ¦  «         Y nw xY wt          j        d|z  ¦  «        ‚w xY w)NzInvalid installation given z->r   r   z
- install z (from ú)Fz
+ install zFile %r does not existzCould not install the file %r)r    r@   r;  r   rQ   r   Ú	check_dirre   rz   rf   r!   r	   r*   Úforcer¾   Úst_mtimeÚst_sizer0   r   r…   r¢   r¿   ÚshutilÚcopy2r{  rj   rl   )	r8   r†  Útgtr{  ÚdÚ_ÚsrclblÚst1Úst2s	            r;   rz  zInstallContext.do_installí  s(  € Ý„g‡m‚m�CÑÔ�#€!€AØ	
ð HÝ	Œˆ¸c¸c¸cÀ#À#ÐFÑ	GÔ	GÐGÝ„/�!ÑÔÐØ	�Š�T”\×)Ò)Ñ+Ô+­B¬FÑ2°2Ñ	6Ô	6€&Ý	ŒÔ	ð 
ð	Ý
Œ�‰Œ€CÝ
Œ�‰Œ€Cð „|�A�~�s”|Ò#Ð#¨¬°S´[Ò(@Ð(@ØÔð 7Ý
„i€i¨#¨#¨#¨f¨f¨fÐ5Ñ6Ô6Ð6ØˆEøøõ ð 	ð 	ð 	Ø€Dð	øøøð 
Ô	ð 4Ý„9€9 s s s¨6¨6¨6Ð2Ñ3Ô3Ð3ðÝ„9ˆS�>„>€>€>øÝ	ð ð ð Ø€4ðøøøð>Ý	„<��CÑÔÐÝ„8ˆC�ÑÔÐÐÐøÝ	ð >ð >ð >ð-Ý„GˆC�L„L€L€LøÝ
•'Ð	ð -ð -ð -Ý„JÐ'¨Ñ+Ñ,Ô,Ð,Ð,Ð,ð-øøøå	ŒÐ8¸Ñ<Ñ	=Ô	=Ð=ð>øøøsT   Â(D Ä
DÄDÅE Å
E$Å#E$Å(*F Æ
G:ÆF4Æ3G:Æ4(GÇG:ÇGÇG:c                 óö  — t           j                             |¦  «        \  }}t          j        |¦  «         d}t           j                             |¦  «        sd}nt          j        |¦  «        |k    rd}|r^t          j        |¦  «         n# t          $ r Y nw xY w| j	        st          j        d|›d|›d�¦  «         t          j        ||¦  «         d S | j	        st          j        d|›d|›d�¦  «         d S d S )NFTz
+ symlink z (to r‘  z
- symlink )r    r@   r;  r   r’  ÚislinkÚreadlinkr¿   r¢   r0   r   r…   Úsymlink)r8   r†  r˜  r™  rš  r‚  s         r;   r…  zInstallContext.do_link  s  € Ý„g‡m‚m�CÑÔ�#€!€AÝ„/�!ÑÔÐØ€$Ý	Œ�Š˜Ñ	Ô	ð Ø€4€4Ý	„{�3ÑÔ˜ÒÐØ€4Ø	ð 0Ý	„y��~„~€~€~øÝ
ÐÐÐ�$�$ÐøøøØ
Ô
ð 0Ý„I€I c c c¨#¨#¨#Ð.Ñ/Ô/Ð/Ý„:ˆc�#ÑÔÐÐÐà
Ô
ð 0Ý„I€I c c c¨#¨#¨#Ð.Ñ/Ô/Ð/Ð/Ð/ð0ð 0s   Á7B Â
BÂBc                 óÒ   — |                      ¦   «          |sP|                     ¦   «         t          j        k    r|                      d|z  ¦  «        ‚|                     ¦   «          d S d S )Nzcannot post the task %r)rD  ri  r   Ú	ASK_LATERrQ   rp  )r8   ÚtskÚpostpones      r;   Úrun_task_nowzInstallContext.run_task_now  sc   € Ø‡(‚(�*„*€*Ø	ð Ø	×ÒÑÔ�Tœ^Ò+Ð+Ø
�-Š-Ð1°#Ñ5Ñ
6Ô
6Ð6Ø‡7‚7�9„9€9€9€9ðð r<   NFTc	                 ó|  — t          |p| j        ¬¦  «        }	| |	_        |p| j        |	_        ||	_        t          |t          j        j        ¦  «        r	|g|	_        nt          j
        |¦  «        |	_        ||	_        |	j        |	_        ||	_        |r|                      |	¦  «         |                      |	|¦  «         |	S ©N)rs   )r[  rs   rE   r@   r{  rÒ   r¥   r¦   r_  r   Úto_listr^  r~  ro  ry  rH   r¦  )
r8   r^  Úfilesrs   r{  ry  ÚcwdÚaddr¥  r¤  s
             r;   rU   zInstallContext.install_files$  s´   € Ý
ˆsˆ�d”hÐÑÔ€#Ø
€#„'ØÐ�$”)€#„(Ø€#„)Ý�•f”kÔ&Ñ'Ô'ð #Øˆg€3„:€:åŒm˜EÑ"Ô"€3„:Ø€#„(ØÔ&€#„-Ø#€#ÔØÐˆ×	Ò	˜3Ñ	Ô	Ð	Ø×Ò�C˜Ñ!Ô!Ð!Ø	€*r<   c                 óü   — t          |p| j        ¬¦  «        }| |_        |p| j        |_        ||_        |g|_        ||_        |j        |_        |r|  	                    |¦  «         |  
                    ||¦  «         |S r¨  )r[  rs   rE   r@   r{  r_  r^  r€  ro  rH   r¦  )	r8   r^  Úsrcfilers   r{  r«  r¬  r¥  r¤  s	            r;   rX   zInstallContext.install_as3  s‚   € Ý
ˆsˆ�d”hÐÑÔ€#Ø
€#„'ØÐ�$”)€#„(Ø€#„)ØˆY€#„*Ø€#„(ØÔ#€#„-ØÐˆ×	Ò	˜3Ñ	Ô	Ð	Ø×Ò�C˜Ñ!Ô!Ð!Ø	€*r<   c                 ó$  — t           j        rd S t          |p| j        ¬¦  «        }| |_        ||_        |p| j        |_        g |_        ||_        ||_	        |j
        |_        |r|                      |¦  «         |                      ||¦  «         |S r¨  )r   rÀ   r[  rs   rE   r^  r@   r_  r‚  ry  r‡  ro  rH   r¦  )	r8   r^  r†  rs   r«  r¬  r¥  ry  r¤  s	            r;   rZ   zInstallContext.symlink_as>  s—   € Ý
„^ð 
Ø	€6Ý
ˆsˆ�d”hÐÑÔ€#Ø
€#„'Ø€#„(ØÐ�$”)€#„(Ø€#„*Ø€#„(Ø#€#ÔØÔ#€#„-ØÐˆ×	Ò	˜3Ñ	Ô	Ð	Ø×Ò�C˜Ñ!Ô!Ð!Ø	€*r<   )NNTTF)rR  rS  rT  rU  rV  r   r   ÚO644rz  r…  r¦  rU   rX   rZ   rX  rY  s   @r;   rŠ  rŠ  æ  sÝ   ø€ € € € € Ø)Ð)Ø€ðð ð ð ð ð $)¤:ð >ð >ð >ð >ð@0ð 0ð 0ð"ð ð ð (,°%´*ÈEÐVZÐ_cÐmqð ð ð ð ð '+°´ÀÈÐW[ð 
ð 
ð 
ð 
ðð ð ð ð ð ð ð r<   rŠ  c                   óJ   ‡ — e Zd ZdZdZˆ fd„Zej        fd„Zd„ Z	ˆ fd„Z
ˆ xZS )ÚUninstallContextzremoves the targets installedrŽ  c                 ó`   •—  t          t          | ¦  «        j        di |¤Ž t          | _        d S r�  )r   r²  r   Ú	UNINSTALLr   r7   s     €r;   r   zUninstallContext.__init__O  s2   ø€ Ø'…%Õ˜ÑÔÔ'Ð-Ð-¨"Ð-Ð-Ð-Ý€$„/€/€/r<   c                 óT  — | j         st          j        d|z  ¦  «         | j                             |¦  «         	 t          j        |¦  «         n�# t          $ r€}|j        t          j	        k    rat          | dd ¦  «        sd| _        t          j        d¦  «         t          j        dk    r%t          j        d|j        ›d|j        ›d�¦  «         Y d }~nd }~ww xY w|rJt
          j                             |¦  «        }	 t          j        |¦  «         n# t          $ r Y d S w xY w|°Hd S d S )	Nú- remove %sÚuninstall_errorTzHbuild: some files could not be uninstalled (retry with -vv to list them)r   zCould not remove z (error code r‘  )r0   r   r…   rŽ  rå   r    r¿   r¢   ÚerrnoÚENOENTr»   r·  rH  rc  Úfilenamer@   r„  Úrmdir)r8   r†  r˜  r{  r¶   s        r;   rz  zUninstallContext.do_installR  sR  € Ø	Ô	ð  Ý„9ˆ]˜3ÑÑÔÐØ„.×Ò˜ÑÔÐðKÝ„9ˆS�>„>€>€>øÝ	ð Kð Kð KØ„g�uŒ|ÒÐÝ�4Ð)¨$Ñ/Ô/ð [Ø€TÔÝ	„YÐYÑZÔZÐZÝ„|�A‚~€~Ý	„Y€Y°a´j°j°jÀÄÀÀÐIÑJÔJÐJøøøøøøøøøðKøøøð 	ð 
Ý	„w‡‚�sÑÔ€3ð
Ý„HˆS�M„M€M€MøÝ
ð 
ð 
ð 
Ø	€E€Eð
øøøð	 	ð 
ð 
ð 
ð 
ð 
s*   ºA Á
CÁA6CÃCÃ>D Ä
D!Ä D!c                 ó&  — 	 | j         st          j        d|z  ¦  «         t          j        |¦  «         n# t
          $ r Y nw xY w|rJt          j                             |¦  «        }	 t          j        |¦  «         n# t
          $ r Y d S w xY w|°Hd S d S )Nr¶  )	r0   r   r…   r    r¿   r¢   r@   r„  r»  )r8   r†  r˜  s      r;   r…  zUninstallContext.do_linke  sÅ   € ðØ
Ô
ð !Ý„Iˆm˜CÑÑ Ô Ð Ý„9ˆS�>„>€>€>øÝ	ð ð ð Ø€4ðøøøàð 
Ý	„w‡‚�sÑÔ€3ð
Ý„HˆS�M„M€M€MøÝ
ð 
ð 
ð 
Ø	€E€Eð
øøøð	 	ð 
ð 
ð 
ð 
ð 
s!   ‚25 µ
AÁAÁ'A< Á<
B
Â	B
c                 óš  •— 	 d„ }t          t          j        dt          j        j        ¦  «         t          t          j        d|¦  «         t          t          | ¦  «                             ¦   «          t          t          j        dt          j        j        ¦  «         d S # t          t          j        dt          j        j        ¦  «         w xY w)Nc                 ó   — t           j        S r>   )r   rj  rB   s    r;   ri  z1UninstallContext.execute.<locals>.runnable_statust  s
   € ÝŒ<Ðr<   Úrunnable_status_backri  )r®   r   ri  r   r²  rƒ   r¿  )r8   ri  r:   s     €r;   rƒ   zUninstallContext.executer  s¤   ø€ ðGðð ð å
�4Œ9Ð+­D¬IÔ,EÑFÔFÐFÝ
�4Œ9Ð& Ñ7Ô7Ð7ÝÕ	˜$ÑÔ×'Ò'Ñ)Ô)Ð)å
�4Œ9Ð&¥t¤yÔ'EÑFÔFÐFÐFÐFø…7�4Œ9Ð&¥t¤yÔ'EÑFÔFÐFÐFøøøs   ƒA/B Â,C
)rR  rS  rT  rU  rV  r   r   r°  rz  r…  rƒ   rX  rY  s   @r;   r²  r²  L  s�   ø€ € € € € Ø$Ð$Ø€ðð ð ð ð ð $)¤:ð 
ð 
ð 
ð 
ð&
ð 
ð 
ðGð Gð Gð Gð Gð Gð Gð Gð Gr<   r²  c                   ó"   — e Zd ZdZdZd„ Zd„ ZdS )ÚCleanContextzcleans the projectÚcleanc                 ó  — |                       ¦   «          | j        s|                      ¦   «          |                      | j        g¦  «         	 |                      ¦   «          |                      ¦   «          d S # |                      ¦   «          w xY wr>   )r�   r#   rv   r†   r   rÂ  rÇ   rB   s    r;   rƒ   zCleanContext.execute~  st   € Ø‡,‚,�.„.€.Ø	Œð Ø‡>‚>ÑÔÐØ‡,‚,�”ˆ~ÑÔÐðØ‡:‚:�<„<€<à‡:‚:�<„<€<€<€<ø€4‡:‚:�<„<€<€<øøøs   ÁA6 Á6Bc                 ó¾  ‡ — t          j        d¦  «         ‰ j        ‰ j        k    rƒg }‰ j                             ¦   «         D ].}|                     ˆ fd„|t                   D ¦   «         ¦  «         Œ/‰ j                             ddd¬¦  «        D ]}||v rŒ| 	                    ¦   «          Œi ‰ j
        _        d                     ¦   «         D ]}t          ‰ |i ¦  «         Œd S )Nzbuild: clean calledc              3   óL   •K  — | ]}‰j                              |¦  «        V — Œd S r>   )r`   Úfind_or_declare)rí   rO   r8   s     €r;   ú	<genexpr>z%CleanContext.clean.<locals>.<genexpr>Œ  s3   øè è € ÐAÐA¨qˆtŒy×(Ò(¨Ñ+Ô+ÐAÐAÐAÐAÐAÐAr<   z**/*z*.lock* *conf_check_*/** config.log c4che/*T)Úexclr]   znode_deps task_sigs raw_deps)r   r°   r}   rz   r#   Úvaluesrä   rg   rb   Údeleter`   Úchildrenr;  r®   )r8   rp   r¶   r  Úvs   `    r;   rÂ  zCleanContext.clean‡  sü   ø€ Ý„*Ð"Ñ#Ô#Ð#Ø	„\�4”<ÒÐØ	€3ØŒM× Ò Ñ"Ô"ð Bð B€qØ‡J‚JÐAÐAÐAÐA°Aµi´LÐAÑAÔAÑAÔAÐAÐAØŒL×!Ò! &Ð.ZÐaeÐ!ÑfÔfð ð €qØˆC€x€xØØ‡H‚H�J„J€J€JØ€$„)ÔØ
(×
.Ò
.Ñ
0Ô
0ð ð €aÝ
ˆ4��"ÑÔÐÐðð r<   N)rR  rS  rT  rU  rV  rƒ   rÂ  r   r<   r;   rÁ  rÁ  {  s=   € € € € € ØÐØ€ðð ð ðð ð ð ð r<   rÁ  c                   ó   — e Zd ZdZdZd„ ZdS )ÚListContextzlists the targets to executer2   c                 óJ  — |                       ¦   «          | j        s|                      ¦   «          |                      | j        g¦  «         |                      ¦   «          t          j        ¦   «         | _        | j	        D ])}|D ]$}	 |j
        } |¦   «          Œ# t          $ r Y Œ!w xY wŒ*	 |                      d¦  «         n# t          $ r Y nw xY wt          | j                             ¦   «         ¦  «        }|                     ¦   «          |D ]}t%          j        d|¦  «         Œd S )Nr   ÚGREEN)r�   r#   rv   r†   r   r‡   r   rˆ   r‰   r5   rD  rk   rý   r¯   r2   r(   ÚkeysÚsortr   Úpprint)r8   rû   rü   rO   rp   rI   s         r;   rƒ   zListContext.execute—  sQ  € Ø‡,‚,�.„.€.Ø	Œð Ø‡>‚>ÑÔÐØ‡,‚,�”ˆ~ÑÔÐØ‡.‚.ÑÔÐÝŒ[‰]Œ]€$„*ØŒ;ð 	ð 	€aØð 	ð 	€rð	Ø	„w€Qð €Q�S„S€S€Søõ ð 
ð 
ð 
Ø	€Tð
øøøð	ðØ×Ò˜ÑÔÐÐøÝ	ð ð ð Ø€4ðøøøå
ˆ4Ô$×)Ò)Ñ+Ô+Ñ,Ô,€#Ø‡(‚(�*„*€*Øð ð €aÝ„;ˆw�qÑÔÐÐðð s$   ÂBÂ
B$Â#B$Â)B? Â?
CÃCN)rR  rS  rT  rU  rV  rƒ   r   r<   r;   rÎ  rÎ  ”  s.   € € € € € Ø#Ð#Ø€ðð ð ð ð r<   rÎ  c                   ó2   ‡ — e Zd ZdZdZˆ fd„Zd„ Zd„ Zˆ xZS )ÚStepContextz7executes tasks in a step-by-step fashion, for debuggingÚstepc                 ót   •—  t          t          | ¦  «        j        di |¤Ž t          j        j        | _        d S r�  )r   rÕ  r   r	   r*   rª  r7   s     €r;   r   zStepContext.__init__±  s6   ø€ Ø"…%��DÑÔÔ"Ð(Ð( RÐ(Ð(Ð(ÝŒ_Ô"€$„*€*€*r<   c           	      ó   — | j         s0t          j        d¦  «         t                               | ¦  «         d S d }| j        r%| j        dk    r| j                             d¦  «        }| j        D �]}|D ]0}|r
|j        |vrŒ	 |j	        } |¦   «          Œ!# t          $ r Y Œ-w xY w| j                              d¦  «        D ]Î}|                      |¦  «        }|D ]´}t          |t          j        ¦  «        r|g}n|j        }|D ]Š}d}	t!          |dg ¦  «        D ]}
 ||
d¬¦  «        rd}	 nŒt!          |dg ¦  «        D ]}
 ||
d¬¦  «        rd}	 nŒ|	r:|                     ¦   «         }t          j        t'          |¦  «        ›d	|›�¦  «         Œ‹ŒµŒÏ�Œ!d S )
NzLAdd a pattern for the debug build, for example "waf step --files=main.c,app"rB  r:  Fre  )ÚoutputTÚoutputsz	 -> exit )rª  r   rH  r   r�   r,   r;  r5   rr   rD  rk   Úget_matcherrÒ   r   r+  r8  r»   rp  r…   rò   )r8   r,   rû   rü   rO   ÚpatÚmatcherrp   r¤  Údo_execro   rJ   s               r;   r�   zStepContext.compile´  s+  € Ø	Œð 
Ý„9Ð[Ñ\Ô\Ð\Ý×Ò˜ÑÔÐØ	€6Ø
€'Ø	„\ð #�d”l CÒ'Ð'ØŒ<×Ò˜cÑ"Ô"€7ØŒ;ð 1ñ 1€aØð 	ð 	€rØð �2”7 'Ð)Ð)Øð	Ø	„w€Qð €Q�S„S€S€Søõ ð 
ð 
ð 
Ø	€Tð
øøøð Œj×Ò˜sÑ#Ô#ð 1ð 1€sØ×Ò˜SÑ!Ô!€GØð 1ð 1ˆÝ�2•d”mÑ$Ô$ð Øˆ$€c€cà
Œ(€cØð 1ð 1ˆØ€gÝ˜#˜h rÑ*Ô*ð ð ˆ$Ø
ˆ'�$˜eÐ
$Ñ
$Ô
$ð ØˆØˆðõ ˜#˜i¨Ñ+Ô+ð ð ˆ$Ø
ˆ'�$˜dÐ
#Ñ
#Ô
#ð ØˆØˆðð 
ð 1Ø�7Š7‰9Œ9€sÝ„y¥# c¡(¤( ( (¨3¨3Ð/Ñ0Ô0Ð0øð1ð1ñ1ð1ð 1s   ÂBÂ
B ÂB c                 ó¨  ‡‡‡‡— dŠdŠ|                      d¦  «        rdŠ|                     dd¦  «        }n-|                      d¦  «        rdŠ|                     dd¦  «        }| j                             |¦  «        Šd Š‰sH|                      d¦  «        sd|z  }|                     d¦  «        sd	|z  }t          j        |¦  «        Šˆˆˆˆfd
„}|S )NTzin:Fr   zout:ú^z^.+?%sú$z%s$c                 óŠ   •— |dk    r‰sdS |dk    r‰sdS ‰r‰| k    S ‰                      |                      ¦   «         ¦  «        S )NTF)Úmatchrf   )ro   rÙ  ÚanodeÚinnÚoutÚpatterns     €€€€r;   rã  z&StepContext.get_matcher.<locals>.matchë  sS   ø€ Øˆd‚l€l˜3€lØˆ5Øˆe‚m€m˜C€mØˆ5Øð )Ø�$Š;Ðà�=Š=˜Ÿš™œÑ(Ô(Ð(r<   )Ú
startswithre   r`   ra   ÚendswithÚrer�   )r8   rÜ  rã  rä  rå  ræ  rç  s      @@@@r;   rÛ  zStepContext.get_matcherÚ  s  øøøø€ Ø
€#Ø
€#Ø‡^‚^�EÑÔð Ø€3Ø
‡{‚{�5˜ÑÔ€3€3Ø
‡~‚~�fÑÔð Ø€3Ø
‡{‚{�6˜"ÑÔ€3ØŒ	×Ò˜CÑ Ô €%Ø
€'Ø	ð Ø
�.Š.˜Ñ
Ô
ð Ø�‰€CØ
�,Š,�sÑ
Ô
ð Øˆc‰	€CÝŒ:�c‰?Œ?€7ð)ð )ð )ð )ð )ð )ð )ð )ð 
€,r<   )	rR  rS  rT  rU  rV  r   r�   rÛ  rX  rY  s   @r;   rÕ  rÕ  ®  sb   ø€ € € € € Ø>Ð>Ø€ð#ð #ð #ð #ð #ð%1ð %1ð %1ðLð ð ð ð ð ð r<   rÕ  )'r    rŠ   r¸  rê  r–  r«   ÚImportErrorÚpickler¥   r   r   r   r   r   r   r	   r
   r   Úwaflib.Noder"   rc   r�  r´  r;  r­   rg   r   rN  Ú	POST_BOTHr   r[  rŠ  r²  rÁ  rÎ  rÕ  ÚnogcrÇ   r�   r   r<   r;   ú<module>rð     sŒ  ðð
 Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð ðØ€€€€øØð ð ð ØÐÐÐÐÐðøøøà RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RØ Ð Ð Ð Ø
€	Ø€Ø€Ø
€	Ø/×5Ò5Ñ7Ô7€Ø
€	Ø€Ø
€	Ø
€	ðTð Tð Tð Tð T�7”?ñ Tô Tð Tðj;+ð ;+ð ;+ð ;+ð ;+ˆ4Œ9ñ ;+ô ;+ð ;+ðxeð eð eð eð e�\ñ eô eð eðL.Gð .Gð .Gð .Gð .G�~ñ .Gô .Gð .Gð^ð ð ð ð �<ñ ô ð ð2ð ð ð ð �,ñ ô ð ð4Fð Fð Fð Fð F�,ñ Fô Fð FðN �5”:˜lÔ0Ñ1Ô1€Ô Ø�U”Z Ô 4Ñ5Ô5€Ô Ð Ð s   – ›	'¦'