§
    žsP[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                   óD  ‡ — 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-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'd/d%„Z(d&„ Z)d'„ Z*d(„ Z+d)„ Z,d*„ Z-d+„ Z.d,„ Z/ˆ xZ0S )0Ú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     €úR/git_repos/lvtk-1.2.0/.waf3-1.7.2-89df5661dd0948598701ec3b9c0a4216/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                 ó*   — t          j        d¦  «        ‚)Nz,build contexts are not supposed to be copied)r   ÚWafErrorrB   s    r;   Ú__copy__zBuildContext.__copy__?   s   € ÝŒÐFÑGÔGÐGr<   c                 ó   — d S r>   r   ©r8   rI   r9   s      r;   Úinstall_fileszBuildContext.install_filesA   ó   € Ø€$r<   c                 ó   — d S r>   r   rP   s      r;   Ú
install_aszBuildContext.install_asC   rR   r<   c                 ó   — d S r>   r   rP   s      r;   Ú
symlink_aszBuildContext.symlink_asE   rR   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   rM   Ú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ÚenvÚfÚnewnodeÚhs	            r;   Ú	load_envszBuildContext.load_envsG   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 )NrX   )r    r@   Úisabsr   r   r   rM   r\   Úfind_dirÚsrcnodeÚ	make_nodeÚvariant_dirÚbldnodeÚmkdirrB   s    r;   Ú	init_dirszBuildContext.init_dirsZ   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#   rs   Úexecute_buildrB   s    r;   ÚexecutezBuildContext.execute`   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   Úinfory   Ú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_builde   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                 óv  — 	 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d }	 t          j                             | j        t
          j        ¦  «        }	 t          |d¦  «        }	 t          j        j                             ¦   «          | j        t          j        _        	 t+          j        |¦  «        }t.          D ]}t1          | |||         ¦  «         Œn1# t2          $ r$}t5          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 t5          j        d|z  ¦  «         Y nw xY w|r|                     ¦   «          n# |r|                     ¦   «          w 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   rM   Úsetuprf   ÚOSErrorry   ÚDBFILEÚopenÚwaflibÚNodeÚpickle_lockÚacquireÚ
node_classÚNod3ÚcPickleÚloadÚSAVED_ATTRSÚsetattrÚ	Exceptionr   ÚdebugÚreleaseÚEOFErrorÚcloser|   )r8   ro   Útrp   ÚdbfnÚdatarm   Úes           r;   r~   zBuildContext.restorew   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ðøøøð 	€!ðÝ
Œ�Š�TÔ%¥g¤nÑ5Ô5€4ð'Ý
ˆ4��o„o€Að'Ý„[Ô×$Ò$Ñ&Ô&Ð&Ø”o…V„[ÔðÝŒ<˜‰?Œ?€dõ ð ð ˆ!Ýˆt�A�d˜1”gÑÔÐÐðøõ ð Lð Lð LÝ
„j€jÀ4À4À4ÈÈÐJÑKÔKÐKÐKÐKÐKÐKÐKøøøøðLøøøõ „[Ô×$Ò$Ñ&Ô&Ð&Ð&ø…V„[Ô×$Ò$Ñ&Ô&Ð&Ð&øøøøõ •(Ð	ð Jð Jð JÝ„JÐCÀDÑHÑIÔIÐIÐIÐIðJøøøð  ð Ø‡G‚G�I„I€Iøøð ð Ø‡G‚G�I„I€I€Iðøøøà‡.‚.ÑÔÐÐÐs}   ‚7A< Á<BÂBÂ/H	 ÃG Ã9F ÄE Ä%"F Å
E5ÅE0Å+F Å0E5Å5F Å8$H	 Æ%GÇH	 Ç(G/Ç,H	 Ç.G/Ç/H	 È	H"c                 ó|  — i }t           D ]}t          | |¦  «        ||<   Œt          j                             | j        t          j        ¦  «        }	 t          j	        j
                             ¦   «          | j        t          j	        _        d }	 t          |dz   d¦  «        }t          j        ||d¦  «         |r|                     ¦   «          n# |r|                     ¦   «          w w xY wt          j	        j
                             ¦   «          n(# t          j	        j
                             ¦   «          w xY w	 t          j        |¦  «        }t          j        |¦  «         t*          j        s#t          j        |dz   |j        |j        ¦  «         n# t4          t6          f$ r Y nw xY wt          j        |dz   |¦  «         d S )Nz.tmpÚwbéÿÿÿÿ)rª   Úgetattrr    r@   rA   ry   r
   r    r¢   r£   r¤   r¥   r¦   r§   r¡   r¨   Údumpr°   r®   ÚstatÚunlinkr   Úis_win32ÚchownÚst_uidÚst_gidrg   rŸ   Úrename)r8   r³   rm   Údbrp   Ústs         r;   ÚstorezBuildContext.store™   s”  € Ø	€$Ýð ð €aÝ�4˜‰?Œ?€4ˆ�7€7Ý„W‡\‚\�$Ô"¥7¤>Ñ2Ô2€"ð%Ý	„;Ô×"Ò"Ñ$Ô$Ð$Ø”O…6„;ÔØ	€1ðÝ
ˆ2ˆf‰9�TÑÔ€AÝ„L��a˜ÑÔÐàð Ø‡W‚W�Y„Y€Yøøð 	ð Ø‡W‚W�Y„Y€Y€Yðøøøõ 
„;Ô×"Ò"Ñ$Ô$Ð$Ð$ø…6„;Ô×"Ò"Ñ$Ô$Ð$Ð$øøøðÝ„gˆb�k„k€2Ý„9ˆR�=„=€=Ý
Œ.ð ,Ý„HˆR�‰Y�r”y ¤Ñ+Ô+Ð+øøÝ	�Ð ð ð ð Ø€4ðøøøå„)ˆBˆv‰I�bÑÔÐÐÐs7   Á;D Â)C Â5D ÃC%Ã%D Ä%D1Ä5AF ÆF!Æ F!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Ã   ÚKeyboardInterruptrh   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@   ru   r\   rd   r2   r3   ÚidÚextendÚappend)r8   r@   Úvaluerk   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_lnrg   r\   rv   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Úaro   s     €r;   ú
<listcomp>z.BuildContext.hash_env_vars.<locals>.<listcomp>ñ   s   ø€ ÐÐÐ�€sˆ1„vÐÐÐr<   zenvhash: %s %r)ÚtableÚparentr   ri   Ústrrß   Ú	cache_envrØ   rg   Úh_listr   r­   Úto_hex)r8   ro   Úvars_lstÚidxÚcacherl   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   rn   rg   rØ   r   rM   )r8   rn   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_chainrP   s      r;   r  zBuildContext.declare_chain  s   € Ý	Ô	 Ð	' BÐ	'Ð	'Ð'r<   c                 óD   — t          | dg ¦  «        D ]} || ¦  «         Œd S )NÚpre_funs©r¸   ©r8   Úms     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á   rg   ©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á   rg   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   rm   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÷   rm   s      r;   Úget_group_namezBuildContext.get_group_name0  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_idx7  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   rh   r5   rá   r�   r4   )r8   rn   Ú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   r-  r�   r5   rß   r4   )r8   ró   r÷   rÔ   s       r;   Ú	set_groupzBuildContext.set_groupF  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�   Útasksrg   )r8   r  rF   rø   s       r;   r  zBuildContext.totalN  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   rM   r/  rá   )r8   Úto_postÚmin_grprn   rø   r  s         r;   Úget_targetszBuildContext.get_targetsW  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   rl   r÷   s      r;   Úget_all_task_genzBuildContext.get_all_task_gene  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Úpostrg   Ú_min_grpÚ	_exact_tgræ   Úis_child_ofrz   r   Úwarnrw   rb   r@   )r8   rø   rp   Úlns       r;   Ú
post_groupzBuildContext.post_groupj  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à   r5  rg   rá   )r8   ró   r5  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   r?  r   )r@  r,   r;  rB  rC  r   Ú	POST_LAZYr�   r5   rG  r   rI  r   Úset_file_constraintsÚset_precedence_constraintsÚ	cur_tasks)r8   r5  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)1Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úcmdr?   r   rC   Úpropertyry   rK   rN   rQ   rT   rV   rs   r|   r€   r   r~   rÃ   rŒ   rž   rÙ   rÜ   ro   rã   ræ   rõ   rù   r�   r  r„   r—   r   r#  r&  rH   r+  r/  r%  r3  r  r;  r=  rG  rI  rÇ   Ú__classcell__©r:   s   @r;   r   r      s½  ø€ € € € € ØÐØ€Ø	€ðð ð ð ð ð61ð 1ð 1ð ˆX�o dÑ+Ô+€ðð ð ðHð Hð Hðð ð ðð ð ðð ð ðð ð ð&ð ð ðð ð ð
ð ð ð$!ð !ð !ðDð ð ð2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   rl   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@   rd   r   ÚverboserE  Ú	generatorrE   r/  r5   rX  rß   rA  r   rM   rá   Úinputs)r8   Úbufrm   Úyró   rø   s         r;   rA  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   rX  Úrunnable_statusr   ÚSKIP_MEÚRUN_ME)r8   rJ   r:   s     €r;   rf  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>   )ra  Ú	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[  ro   ra   r    r!   r	   r*   Údestdirr@   rA   Ú
splitdriveÚlstrip)r8   rp  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                 óF  — |                       ¦   «         }|st          j        d| j        z  ¦  «        ‚t	          | j        | j        ¦  «        D ]Ó\  }}| j        rjt          j	         
                    ||                     | j	        ¦  «        ¦  «        }t          j        t          j	                             |¦  «        ¦  «         n%t          j	         
                    ||j        ¦  «        }| j        j                             |                     ¦   «         || j        ¦  «         ŒÔd S )Nzunknown installation path %r)rs  r   rM   ra  Úzipr\  rb  Úrelative_trickr    r@   rA   r`   r   Ú	check_dirÚdirnamern   rE   Ú
do_installrb   Úchmod)r8   Údestpathrm   rd  Ú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Ý	„O•B”G—O’O HÑ-Ô-Ñ.Ô.Ð.Ð.åŒW�\Š\˜( 1¤6Ñ*Ô*€HØ„>Ô× Ò  §¢¡¤¨X°d´jÑAÔAÐAÐAðBð Br<   c                 ó´   — |                       ¦   «         }| j        j                             | j        d                              ¦   «         || j        ¦  «         d S )Nr   )rs  ra  rE   ry  rb  rb   rz  ©r8   r|  s     r;   Úexec_install_aszinst.exec_install_asâ  sJ   € Ø× Ò Ñ"Ô"€(Ø„.Ô×Ò ¤¨A¤× 6Ò 6Ñ 8Ô 8¸À$Ä*ÑMÔMÐMÐMÐMr<   c                 óx   — |                       ¦   «         }| j        j                             | j        |¦  «         d S r>   )rs  ra  rE   Údo_linkÚlinkr  s     r;   Úexec_symlink_aszinst.exec_symlink_aså  s6   € Ø× Ò Ñ"Ô"€(Ø„.Ô×Ò˜TœY xÑ0Ô0Ð0Ð0Ð0r<   )T)rO  rP  rQ  Úcolorr^  rA  rf  rj  rm  rs  r}  r€  r„  rU  rV  s   @r;   rX  rX  ®  sÀ   ø€ € € € € Ø€ð!ð !ð !ðð ð ð*ð ð ð ð ð
ð ð ð$ð $ð $ðð ð ð ð
Bð 
Bð 
BðNð Nð Nð1ð 1ð 1ð 1ð 1ð 1ð 1r<   rX  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@   r8  r   rM   r   rw  ra   rw   rb   r!   r	   r*   Úforcerº   Úst_mtimeÚst_sizer0   r   r‚   rŸ   ÚremoveÚshutilÚcopy2rz  rf   rh   )	r8   ÚsrcÚtgtrz  ÚdÚ_ÚsrclblÚst1Úst2s	            r;   ry  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@   r8  r   rw  Ú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)rA  rf  r   Ú	ASK_LATERrM   rm  )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)ro   )rX  ro   rE   r@   rz  rÎ   r¢   r£   r\  r   Úto_listr[  r}  rl  rv  rH   r¤  )
r8   r[  Úfilesro   rz  rv  ÚcwdÚaddr£  r¢  s
             r;   rQ   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¦  )rX  ro   rE   r@   rz  r\  r[  r€  rl  rH   r¤  )	r8   r[  Úsrcfilero   rz  r©  rª  r£  r¢  s	            r;   rT   zInstallContext.install_as5  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¼   rX  ro   rE   r[  r@   r\  rƒ  r„  rl  rH   r¤  )r8   r[  r•  ro   r©  rª  r£  r¢  s           r;   rV   zInstallContext.symlink_as@  s�   € Ý
„^ð 
Ø	€6Ý
ˆsˆ�d”hÐÑÔ€#Ø
€#„'Ø€#„(ØÐ�$”)€#„(Ø€#„*Ø€#„(ØÔ#€#„-ØÐˆ×	Ò	˜3Ñ	Ô	Ð	Ø×Ò�C˜Ñ!Ô!Ð!Ø	€*r<   )NNTT)rO  rP  rQ  rR  rS  r   r   ÚO644ry  r‚  r¤  rQ   rT   rV   rU  rV  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__P  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 )	Nz- 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´  rE  r`  Úfilenamer@   rx  Úrmdir)r8   r•  r–  rz  r´   s        r;   ry  zUninstallContext.do_installS  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 )Nz- unlink %s)	r0   r   r‚   r    r’  rŸ   r@   rx  r¸  )r8   r•  r–  s      r;   r‚  zUninstallContext.do_linkf  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   rg  rB   s    r;   rf  z1UninstallContext.execute.<locals>.runnable_statusu  s
   € ÝŒ<Ðr<   Úrunnable_status_backrf  )r«   r   rf  r   r°  r€   r¼  )r8   rf  r:   s     €r;   r€   zUninstallContext.executes  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
)rO  rP  rQ  rR  rS  r   r   r®  ry  r‚  r€   rU  rV  s   @r;   r°  r°  M  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#   rs   rƒ   r   r¿  rÃ   rB   s    r;   r€   zCleanContext.execute  st   € Ø‡,‚,�.„.€.Ø	Œð Ø‡>‚>ÑÔÐØ‡,‚,�”ˆ~ÑÔÐðØ‡:‚:�<„<€<à‡:‚:�<„<€<€<€<ø€4‡:‚:�<„<€<€<øøøs   ÁA6 Á6Bc                 óf  ‡ — t          j        d¦  «         ‰ j        ‰ j        k    rWˆ fd„‰ j        t
                   D ¦   «         }‰ j                             ddd¬¦  «        D ]}||v rŒ|                     ¦   «          Œi ‰ j        _	        d 
                    ¦   «         D ]}t          ‰ |i ¦  «         Œd S )Nzbuild: clean calledc                 óD   •— g | ]}‰j                              |¦  «        ‘ŒS r   )r\   Úfind_or_declare)ré   rp   r8   s     €r;   rë   z&CleanContext.clean.<locals>.<listcomp>‹  s)   ø€ ÐAÐAÐA¨ˆŒ	×!Ò! !Ñ$Ô$ÐAÐAÐAr<   z**/*z*.lock* *conf_check_*/** config.log c4che/*T)ÚexclrY   znode_deps task_sigs raw_deps)r   r­   rz   rw   ro   rc   r^   Údeleter\   Úchildrenr8  r«   )r8   rl   r	  Úvs   `   r;   r¿  zCleanContext.cleanˆ  sÊ   ø€ Ý„*Ð"Ñ#Ô#Ð#Ø	„\�4”<ÒÐØAÐAÐAÐA¨T¬XµiÔ-@ÐAÑAÔA€3ØŒL×!Ò! &Ð.ZÐaeÐ!ÑfÔfð ð €qØˆC€x€xØØ‡H‚H�J„J€J€JØ€$„)ÔØ
(×
.Ò
.Ñ
0Ô
0ð ð €aÝ
ˆ4��"ÑÔÐÐðð r<   N)rO  rP  rQ  rR  rS  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#   rs   rƒ   r   r„   r   r…   r†   r5   rA  rg   rù   r¬   r2   r(   ÚkeysÚsortr   Úpprint)r8   r÷   rø   rp   rl   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)rO  rP  rQ  rR  rS  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"r?  r7  Frb  )ÚoutputTÚoutputsz	 -> exit )r¨  r   rE  r   rŒ   r,   r8  r5   rn   rA  rg   Úget_matcherrÎ   r   r(  r5  r¸   rm  r‚   rî   )r8   r,   r÷   rø   rp   ÚpatÚmatcherrl   r¢  Údo_execrk   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)Úmatchrb   )rk   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<   )Ú
startswithra   r\   r]   Ú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<   )	rO  rP  rQ  rR  rS  r   rŒ   rÖ  rU  rV  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"   r_   rŒ  r²  r8  rª   rc   r   rK  Ú	POST_BOTHr   rX  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€Ø
€	Ø€Ø
€	Ø
€	ðXð Xð Xð Xð X�7”?ñ Xô Xð Xðr91ð 91ð 91ð 91ð 91ˆ4Œ9ñ 91ô 91ð 91ðtdð dð dð dð d�\ñ dô dð dðJ.Gð .Gð .Gð .Gð .G�~ñ .Gô .Gð .Gð^ð ð ð ð �<ñ ô ð ð.ð ð ð ð �,ñ ô ð ð4Fð Fð Fð Fð F�,ñ Fô Fð FðN �5”:˜lÔ0Ñ1Ô1€Ô Ø�U”Z Ô 4Ñ5Ô5€Ô Ð Ð s   – ›	'¦'