§
    Ö)ög0?  ã                   óD  — d Z ddlmZ ddlZddlZddlZddlZddlZddlZddl	Z	ddl
mZmZmZmZmZmZmZmZmZ dZdgZdZd„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Z G d„ dej        ¦  «        Zd„ Z G d„ de¦  «        Z d„ Z!d„ Z" e"ej#        j$        ¦  «        ej#        _$        dS )z?Module called for configuring, compiling and installing targetsé    )Úwith_statementN)	ÚUtilsÚ	ConfigureÚLogsÚOptionsÚ	ConfigSetÚContextÚErrorsÚBuildÚNodeÚ	configureÚbuildc                 óL  — t          j        ¦   «          t          j        |k    r5t          j        d|t          j        |¦  «         t          j        d¦  «         |t          _        | xt          _        t          _	        | }t          j                             d¦  «        }t          t
          j        ¦  «        dk    røt          j                             | t
          j        d         ¦  «        }t          j                             |¦  «        t          j        k    r›t          j                             |¦  «        r|t          j                             t          j                             |¦  «        ¦  «        }t          j                             |¦  «        }d}t
          j                             d¦  «         t          j        d¦  «        }|                     d¬¦  «        \  }}	}
|j        r!|j        x}xt          _        t          _        d}|j        r|j        t          _        |s(t<          D ] }|	D ]}|                     |¦  «        rd} nŒŒ!|}|�rã	 t          j         |¦  «        }n'# tB          $ r g }t          j        d|¦  «         Y nw xY wtD          j#        |v �rCtI          j$        ¦   «         }
	 |
 %                    t          j                             |tD          j#        ¦  «        ¦  «         t          j&        |¦  «        tL          j'                 }|
j        |
j        |
j        fD ][}|sŒtP          j)        r||k    rd} nXŒ	 t          j&        |¦  «        tL          j'                 }||k    rd} n(ŒL# tB          $ r Y ŒXw xY wt          j*        d|¦  «         d	}|r4|
j        t          _        |
j        t          _        |
j        t          _        nen# tV          $ r Y nw xY wt          j        st          j        |v r|t          _        t          j                             |¦  «        }||k    rn|}|rn|�°ãt          j                             t          j                             t          j        t          j        ¦  «        ¦  «        }t          j         ,                    |¦  «        s{|j-        rAt          j*        d
¦  «         |j.         /                    ¦   «          t          j        d¦  «         t          j        dt          j        ¦  «         t          j        d¦  «         	 t          j0        t          j        ¦  «         nC# tB          $ r6 t          j        dt          j        ¦  «         t          j        d¦  «         Y nw xY w	 tc          |¦  «         nÏ# td          j3        $ rY}t          j4        d|j5        ¦  «         t          j        tm          |¦  «        ¦  «         t          j        d¦  «         Y d}~nld}~wtn          $ r\}t          j        dt          j        ¦  «         tq          j9        t
          j:        ¬¦  «         t          j        d¦  «         Y d}~nd}~ww xY w|j;        r_ddl<}ddl=}| >                    di i d¦  «         | ?                    d¦  «        }| @                    d¦  «         A                    d¦  «         dS 	 	 t…          ¦   «          dS #  |jC        rDddlC}t          jD        ¦   «         \  }}}tq          j9        ¦   «          | E                    |¦  «         n‚ Y dS xY w# td          j3        $ rb}t           jF        dk    rt          j4        d|j5        ¦  «         t          j        |jG        ¦  «         t          j        d¦  «         Y d}~dS d}~wt�          $ r ‚ tn          $ r>}tq          j9        t
          j:        ¬¦  «         t          j        d¦  «         Y d}~dS d}~wt’          $ r- t          j4        dd¦  «         t          j        d¦  «         Y dS w xY w)aG  
	This is the main entry point, all Waf execution starts here.

	:param current_directory: absolute path representing the current directory
	:type current_directory: string
	:param version: version number
	:type version: string
	:param wafdir: absolute path representing the directory of the waf library
	:type wafdir: string
	z8Waf script %r and library %r do not match (directory %r)é   ÚNOCLIMBTÚoptions)Úallow_unknownzDirectory %r is unreadable!zinvalid lock file in %sFz8These are the generic options (no wscript/project found)r   zOWaf: Run from a folder containing a %r file (or try -h for the generic options)z Waf: The folder %r is unreadableÚREDNz$Waf: The wscript in %r is unreadable)Úfileé   z6from waflib import Scripting; Scripting.run_commands()z	profi.txtÚtimeéK   ÚInterruptedéD   )Jr   Úinit_logr	   Ú
WAFVERSIONÚerrorÚsysÚexitÚwaf_dirÚrun_dirÚ
launch_dirÚosÚenvironÚgetÚlenÚargvÚpathÚjoinÚbasenameÚWSCRIPT_FILEÚisfileÚnormpathÚdirnameÚabspathÚpopÚcreate_contextÚparse_cmd_argsÚtopÚtop_dirÚoutÚout_dirÚno_climb_commandsÚ
startswithÚlistdirÚOSErrorr   Úlockfiler   ÚloadÚstatÚST_INOr   Úis_win32ÚwarnÚEnvironmentErrorÚexistsÚwhelpÚparserÚ
print_helpÚchdirÚset_main_moduler
   ÚWafErrorÚpprintÚverbose_msgÚstrÚ	ExceptionÚ	tracebackÚ	print_excÚstdoutÚprofileÚcProfileÚpstatsÚrunctxÚStatsÚ
sort_statsÚprint_statsÚrun_commandsÚpdbÚexc_infoÚpost_mortemÚverboseÚmsgÚ
SystemExitÚKeyboardInterrupt)Úcurrent_directoryÚversionÚwafdirÚ	start_dirÚno_climbÚpotential_wscriptr(   Úctxr   ÚcommandsÚenvÚkÚyÚcurÚlstÚinoÚxr<   Úino2ÚnextÚwscriptÚerQ   rR   ÚprX   ÚtypeÚvalueÚtbs                                ú*/git_repos/midimsg-lv2/waflib/Scripting.pyÚwaf_entry_pointrw      sª  € õ „�„€åÔ˜'Ò!Ð!Ý„*ÐGÈÕRYÔRdÐflÑmÔmÐmÝ„(ˆ1�+„+€+ð …„Ø(9Ð9…„•7Ô%Ø€ÝŒJ�NŠN˜9Ñ%Ô%€å�Œ�M„M�AÒÐõ ”g—l’lÐ#4µc´h¸q´kÑBÔBÐÝ„W×ÒÐ'Ñ(Ô(­GÔ,@Ò@Ð@ÅRÄWÇ^Â^ÐTeÑEfÔEfÐ@å
Œ'×
Ò
�2œ7Ÿ?š?Ð+<Ñ=Ô=Ñ
>Ô
>€4ÝŒw�Š˜tÑ$Ô$€9Ø€8Ý„8‡<‚<��?„?€?åÔ˜iÑ(Ô(€Ø×.Ò.¸TÐ.ÑBÔBÑ€'ˆ8�SØ„Kð Ø29´+Ð=€)Ð=�gŒo¥¤Ø€(Ø„Kð  Ø”K…'„/ð 	ð Ýð ð €aØð ð €qØ‡|‚|�A�„ð Ø€XØ
€Uðøð €Ø
ñ 4	ð2Ý	Œ�C‰Œ€3€3øÝ	ð 2ð 2ð 2Ø	€3Ý„:Ð+¨SÑ1Ô1Ð1Ð1Ð1ð2øøøõ Ô˜ÐÑÝ	Ô	Ñ	Ô	€3ð Ø‡H‚H�RŒW�\Š\˜#�wÔ/Ñ0Ô0Ñ1Ô1Ð1Ý
Œ'�#‰,Œ,•t”{Ô
#€Cð
 Œk˜3œ;¨¬Ð4ð ð ˆØð ØÝŒð Ø	�ŠˆØ€tØ€uð 
ð
ÝŒg�a‰jŒj�œÔ%€tð �Š+ˆ+ØˆØˆð øõ ð ð ð Ø€tðøøøõ 
„YÐ(¨#Ñ.Ô.Ð.Ø€Tàð Ø”{…W„_Ø”{…W„_Ø”{…W„_Ø
ð	øõ3 ð 	ð 	ð 	Ø€Dð	øøøõ> 
Œð ÝÔ˜cÐ!Ð!Ø…G„Oå	Œ�Š˜Ñ	Ô	€$Ø	ˆS‚[€[ØØ€#àð 	Øði ñ 4	õl Œ7×Ò�BœGŸLšL­¬½'Ô:NÑOÔOÑPÔP€Ý
Œ�Š�wÑÔð Ø„]ð Ý„9ÐGÑHÔHÐHØ„:×ÒÑÔÐÝ„8ˆA�;„;€;Ý„*Ð^Õ`gÔ`tÑuÔuÐuÝ„(ˆ1�+„+€+ðÝ„(�7Œ?ÑÔÐÐøÝð ð ð Ý„*Ð/µ´ÑAÔAÐAÝ„(ˆ1�+„+€+€+€+ðøøøð	Ý�'ÑÔÐÐøÝŒð ð ð Ý„+ˆe�Q”]Ñ#Ô#Ð#Ý„*�S�‰VŒVÑÔÐÝ„(ˆ1�+„+€+€+€+€+€+€+øøøøÝð ð ð Ý„*Ð3µW´_ÑEÔEÐEÝÔ�3œ:Ð&Ñ&Ô&Ð&Ý„(ˆ1�+„+€+€+€+€+€+€+øøøøðøøøð
 „Oð ØÐÐÐÐÐÐÐØ
‡/‚/ÐJÈBÐPRÐT_Ñ`Ô`Ð`Ø‡l‚l�;ÑÔ€!Ø‡,‚,ˆvÑÔ×"Ò" 2Ñ&Ô&Ð&Ð&Ð&ðð	Ý�N„N€N€N€NøðØ„{ð Ø€Z€Z€ZÝ”|‘~”~�_€Tˆ5�"ÝÔÑÔÐØ‡_‚_�RÑÔÐÐà
ð ÐÐøøøøõ 
Œð ð ð Ý
„l�QÒÐÝ„K��q”}Ñ%Ô%Ð%Ý„:ˆaŒeÑÔÐÝ„8ˆA�;„;€;€;€;€;€;€;€;øøøøÝ	ð 	ð 	ð 	ØÝ	ð ð ð ÝÔ�CœJÐ'Ñ'Ô'Ð'Ý„8ˆA�;„;€;€;€;€;€;€;€;øøøøÝ	ð ð ð Ý„;ˆu�mÑ$Ô$Ð$Ý„8ˆB�<„<€<€<€<€<ðøøøs­   ÉI& É&!J
Ê	J
Ê0A!O Í$M1Í1
M>Í=M>Ï
OÏOÔT> Ô>=U>Õ=U>ÖV ÖYÖ!AW5×5YØAYÙYÛ	[ ÛA\*Ü'\- Ü*\- Ü-`#Ü<A^Þ`#Þ03_)ß)6`#à"`#c                 óÆ  — t          j        | ¦  «        t           _        | t           j        _        d„ }t          t
          t          fD ]} ||¦  «         Œdt           j        j        vrt          j	        t           j        _
        dt           j        j        vrt          j	        t           j        _        dt           j        j        vrt          j	        t           j        _        dS dS )aZ  
	Read the main wscript file into :py:const:`waflib.Context.Context.g_module` and
	bind default functions such as ``init``, ``dist``, ``distclean`` if not defined.
	Called by :py:func:`waflib.Scripting.waf_entry_point` during the initialization.

	:param file_path: absolute path representing the top-level wscript file
	:type file_path: string
	c                 ót   — | j         }|t          j        j        vrt	          t          j        || ¦  «         d S d S )N)Ú__name__r	   Úg_moduleÚ__dict__Úsetattr)ÚobjÚnames     rv   Úset_defz set_main_module.<locals>.set_defÅ   s=   € Ø	Œ€$Ø	•Ô!Ô*Ð	*Ð	*Ý
�7Ô˜T 3Ñ'Ô'Ð'Ð'Ð'ð 
+Ð	*ó    ÚinitÚshutdownr   N)r	   Úload_moduler{   Ú	root_pathÚdistÚ	distcleanÚ	distcheckr|   r   Únadar‚   rƒ   r   )Ú	file_pathr€   rh   s      rv   rG   rG   ¶   sÀ   € õ Ô'¨	Ñ2Ô2…ÔØ'…ÔÔð
(ð (ð (õ •�IÐ
&ð ð €QØ	€'ˆ!�*„*€*€*à•'Ô"Ô+Ð+Ð+Ýœ*…'ÔÔØ•gÔ&Ô/Ð/Ð/Ý#œj…'ÔÔØ•WÔ%Ô.Ð.Ð.Ý"œZ…'ÔÔÐÐð 	/Ð.r�   c                  ó6  — t          j        d¦  «        } |                      ¦   «          t          j        s$t          j                             t          ¦  «         t          j        j        r/| j	         
                    ¦   «          t          j        d¦  «         dS dS )z˜
	Parses the command-line options and initialize the logging system.
	Called by :py:func:`waflib.Scripting.waf_entry_point` during the initialization.
	r   r   N)r	   r1   Úexecuter   rf   ÚappendÚdefault_cmdr   rC   rD   rE   r   r   ©re   s    rv   Úparse_optionsr�   Ó   s   € õ
 Ô˜iÑ(Ô(€Ø‡‚�„€ÝÔð 'Ý	Ô×Ò�+Ñ&Ô&Ð&Ý„OÔð Ø„*×ÒÑÔÐÝ„(ˆ1�+„+€+€+€+ðð r�   c                 ó  — t          j        | ¦  «        }t          j        ¦   «         |_        t
          j        |_        | |_        	 |                     ¦   «          | 	                    ¦   «          n# | 	                    ¦   «          w xY w|S )z¤
	Executes a single Waf command. Called by :py:func:`waflib.Scripting.run_commands`.

	:param cmd_name: command to execute, like ``build``
	:type cmd_name: string
	)
r	   r1   r   ÚTimerÚ	log_timerr   r   ÚcmdrŒ   Úfinalize©Úcmd_namere   s     rv   Úrun_commandr˜   à   sk   € õ Ô˜hÑ'Ô'€Ý”‘”€„ÝŒ€„Ø€„ðØ‡+‚+�-„-€-ð ‡,‚,�.„.€.€.ø€#‡,‚,�.„.€.€.øøøØ€s   ÁA/ Á/Bc                  ó   — t          ¦   «          t          d¦  «         t          j        rUt          j                             d¦  «        } t          | ¦  «        }t          j        d| |j        ¦  «         t          j        °Ut          d¦  «         dS )zè
	Execute the Waf commands that were given on the command-line, and the other options
	Called by :py:func:`waflib.Scripting.waf_entry_point` during the initialization, and executed
	after :py:func:`waflib.Scripting.parse_options`.
	r‚   r   z%r finished successfully (%s)rƒ   N)r�   r˜   r   rf   r0   r   Úinfor“   r–   s     rv   rW   rW   ò   s…   € õ �„€ÝˆVÑÔÐÝÔð FÝÔ×!Ò! !Ñ$Ô$€(Ý�HÑÔ€#Ý„)Ð+¨X°s´}ÑEÔEÐEõ Ôð Fõ ˆZÑÔÐÐÐr�   c                 óÞ  — t          j        | ¦  «        D ]{\  }}}|D ]r}|                     d¦  «        r[t           j                             ||¦  «        }	 t          j        |¦  «         ŒM# t          $ r t          j        d|¦  «         Y Œnw xY wŒsŒ|t          j
        dfD ]'}	 t          j        |¦  «         Œ# t          $ r Y Œ$w xY w	 t          j        d¦  «         dS # t          $ r Y dS w xY w)z—
	Distclean function called in the particular case when::

		top == out

	:param dirname: absolute path of the folder to clean
	:type dirname: string
	)z.oz.mocz.exeúCould not remove %rz
config.logÚc4cheN)r#   ÚwalkÚendswithr(   r)   Úremover:   r   r@   r	   ÚDBFILEÚshutilÚrmtree)r.   ÚrootÚdirsÚfilesÚfÚfnamerm   s          rv   Údistclean_dirr©     s<  € õ œG GÑ,Ô,ð -ð -Ñ€dˆD�%Øð -ð -€aØ‡j‚jÐ'Ñ(Ô(ð -ÝŒG�LŠL˜˜qÑ!Ô!€Eð-Ý„YˆuÑÔÐÐøÝð -ð -ð -Ý	„YÐ$ eÑ,Ô,Ð,Ð,Ð,ð-øøøð	-ð-õ Œ>˜<Ð
(ð ð €QðÝ„9ˆQ�<„<€<€<øÝ	ð ð ð Ø€4ðøøøðÝ„-�ÑÔÐÐÐøÝð ð ð Ø€$€$ðøøøs6   ÁA*Á*BÂBÂ"B7Â7
CÃCÃC Ã
C,Ã+C,c                 óè  — d„ }t           j        sYt          j        d¦  «        D ]D}d                     ¦   «         D ]-}|                     |¦  «        r ||t          j        ¦  «         Œ.ŒEd}| j        j	        r| j        j
        }	 t          j        |¦  «        }n&# t          $ r t          j        d|¦  «         Y dS w xY wt           j        |v �r"t          j                             |t           j        ¦  «        }	 t#          j        |¦  «        }n&# t$          $ r t          j        d|¦  «         Y dS w xY w|j        r|j        st          j        d|¦  «         dS |j        |j        k    rt+          |j        ¦  «         n ||j        t          j        ¦  «         |j        |j        |j        fD ]D}t          j                             |t           j        ¦  «        } ||t          j        ¦  «         ŒCdS dS )zremoves build folders and datac                 ó®   — 	  || ¦  «         d S # t           $ r;}|j        t          j        k    rt          j        d| ¦  «         Y d }~d S Y d }~d S d }~ww xY w)Nrœ   )rA   ÚerrnoÚENOENTr   r@   )rh   Úfunrq   s      rv   Úremove_and_logz!distclean.<locals>.remove_and_log"  s   € ð(Ø€3€q�6„6€6€6€6øÝ	ð (ð (ð (Ø„g•”ÒÐÝ„IÐ# QÑ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'Ð'ð ÐÐÐÐÐøøøøð(øøøs   ‚ �
A™*AÁAú.z.waf-2 waf-2 .waf3-2 waf3-2zCould not read %rNzInvalid lock file %r)r   rf   r#   r9   Úsplitr8   r¢   r£   r   Úno_lock_in_topr5   r:   r   r@   r;   r(   r)   r   rA   r6   r4   r©   r!   r    )	re   r¯   rh   rm   rj   rk   r§   rg   rr   s	            rv   r‡   r‡     s  € ð(ð (ð (õ 	Ôð &ÝŒ:�c‰?Œ?ð &ð &€aØ)×/Ò/Ñ1Ô1ð &ð &€qØ‡|‚|�A�„ð &Ø€^�A•v”}Ñ%Ô%Ð%øð&ð
 €Ø„KÔð ØŒŒ€#ð	Ý
Œ
�3‰Œ€#€#øÝð 	ð 	ð 	Ý„)Ð Ñ%Ô%Ð%Ø€&€&ð	øøøõ Ô˜ÐÑÝ„g‡l‚l�3�Ô(Ñ)Ô)€!ð
Ý	Ô	˜QÑ	Ô	€3€3øÝ	ð 
ð 
ð 
Ý„9Ð  !Ñ$Ô$Ð$Ø	€6€6ð
øøøð 
Œð 
˜CœKð 
Ý„9Ð# QÑ'Ô'Ð'Ø	€6à„[�C”KÒÐÝ�”ÑÔÐÐà€>�#”+�vœ}Ñ-Ô-Ð-àŒK˜œ c¤kÐ2ð  ð  €aÝ	„w‡|‚|�A•wÔ'Ñ(Ô(€1Ø€>�!•R”YÑÔÐÐð' Ðð" ð  s$   ÂB ÂB<Â;B<Ã9D ÄD1Ä0D1c                   óX   — e Zd ZdZdZdZdZi Zd„ Zd„ Z	d„ Z
d„ Zd„ Zd	„ Zd
„ Zd„ Zd„ ZdS )ÚDistz5creates an archive containing the project source coder†   ztar.bz2c                 ó²   — |                       t          j                             t          j        j        ¦  «        g¦  «         |                      ¦   «          dS ©z3
		See :py:func:`waflib.Context.Context.execute`
		N)Úrecurser#   r(   r.   r	   r{   r…   Úarchive©Úselfs    rv   rŒ   zDist.executeW  s>   € ð ‡,‚,•”—’¥Ô 0Ô :Ñ;Ô;Ð<Ñ=Ô=Ð=Ø‡,‚,�.„.€.€.€.r�   c                 ó°  — ddl }|                      ¦   «         }	 | j         n# t          $ r | j        | _        Y nw xY w| j                             |¦  «        }	 |                     ¦   «          n# t          $ r Y nw xY w|                      ¦   «         }| j	         
                    d¦  «        rt|                     |                     ¦   «         d| j	                             dd¦  «        z   ¦  «        }|D ]}|                      ||¦  «         Œ|                     ¦   «          nÍ| j	        dk    r­ddl}|                     |                     ¦   «         d|j        ¬¦  «        }|D ]b}|                      ¦   «         d	z   |                     | j        ¦  «        z   }	|                     |                     ¦   «         |	|j        ¦  «         Œc|                     ¦   «          n|                      d
¦  «         	 ddlm}
 d |
|                     d¬¦  «        ¦  «                             ¦   «         z  }n# t6          $ r d}Y nw xY wt9          j        d| j        |¦  «         dS )z!
		Creates the source archive.
		r   Nztar.zw:Ú ÚzipÚw)Úcompressionú/z3Valid algo types are tar.bz2, tar.gz, tar.xz or zip)Úsha256z (sha256=%r)Úrb)ÚflagszNew archive created: %s%s)ÚtarfileÚget_arch_nameÚ	base_pathÚAttributeErrorr(   Ú	make_nodeÚdeleter:   Ú	get_filesÚalgor8   Úopenr/   ÚreplaceÚadd_tar_fileÚcloseÚzipfileÚZipFileÚZIP_DEFLATEDÚget_base_nameÚ	path_fromÚwriteÚfatalÚhashlibrÁ   ÚreadÚ	hexdigestÚImportErrorr   rš   Ú	arch_name)rº   rÄ   rÛ   Únoder¦   Útarrm   rÐ   r½   Úarchive_namerÁ   Údigests               rv   r¸   zDist.archive^  sw  € ð €.€.€.à× Ò Ñ"Ô"€)ðØ„>€>€>øÝ	ð ð ð Ø”I€4„>€>€>ðøøøð 
Œ×	!Ò	! )Ñ	,Ô	,€$ðØ‡;‚;�=„=€=€=øÝ	ð ð ð Ø€4ðøøøð �.Š.Ñ
Ô
€%à	„Y×Ò˜&Ñ!Ô!ð EØ	�Š�d—l’l‘n”n d¨T¬Y×->Ò->¸vÀrÑ-JÔ-JÑ&JÑ	KÔ	K€3àð ð €qØ×Ò�a˜ÑÔÐÐØ‡9‚9�;„;€;€;Ø„y�EÒÐØ€>€>€>Ø	�Š˜Ÿš™œ¨¸'Ô:NˆÑ	OÔ	O€3àð ?ð ?€qØ×%Ò%Ñ'Ô'¨#Ñ-°·²¸D¼NÑ0KÔ0KÑK€LØ‡I‚Iˆa�iŠi‰kŒk˜<¨Ô)=Ñ>Ô>Ð>Ð>Ø‡9‚9�;„;€;€;à‡:‚:ÐCÑDÔDÐDðGØÐÐÐÐÐð ˜V˜V D§I¢I°D IÑ$9Ô$9Ñ:Ô:×DÒDÑFÔFÑF€6€6øõ 
ð ð ð Ø€6€6€6ðøøøõ
 „)Ð'¨¬¸Ñ@Ô@Ð@Ð@Ð@s0   š" ¢;º;ÁA. Á.
A;Á:A;Ç.H) È)H8È7H8c                 ó*   — |                      ¦   «         S )z¿
		Return the path to use for a node in the tar archive, the purpose of this
		is to let subclases resolve symbolic links or to change file names

		:return: absolute path
		:rtype: string
		)r/   )rº   rÜ   s     rv   Úget_tar_pathzDist.get_tar_path�  s   € ð 
�Š‰ŒÐr�   c                 óâ  — |                       |¦  «        }|                     ||                      ¦   «         dz   |                     | j        ¦  «        z   ¬¦  «        }d|_        d|_        d|_        d|_        t          j
                             |¦  «        rBt          |d¦  «        5 }|                     ||¬¦  «         ddd¦  «         dS # 1 swxY w Y   dS |                     |¦  «         dS )zu
		Adds a file to the tar archive. Symlinks are not verified.

		:param x: file path
		:param tar: tar file object
		rÀ   )r   Úarcnamer   r¤   rÂ   )ÚfileobjN)rá   Ú
gettarinfoÚget_tar_prefixrÔ   rÆ   ÚuidÚgidÚunameÚgnamer#   r(   r,   rÌ   Úaddfile)rº   rm   rÝ   rr   Útinfor§   s         rv   rÎ   zDist.add_tar_file—  s#  € ð ×Ò˜ÑÔ€!Ø
�.Š.˜a¨×)<Ò)<Ñ)>Ô)>ÀÑ)DÀqÇ{Â{ÐSWÔSaÑGbÔGbÑ)bˆ.Ñ
cÔ
c€%Ø€%„)Ø€%„)Ø€%„+Ø€%„+å„W‡^‚^�AÑÔð ÝˆQ�‰Œð "˜Ø‡K‚K�˜q€KÑ!Ô!Ð!ð"ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "ð "ð "ð ‡;‚;ˆuÑÔÐÐÐs   Â(CÃCÃCc                 óZ   — 	 | j         S # t          $ r |                      ¦   «         cY S w xY w)zW
		Returns the base path for files added into the archive tar file

		:rtype: string
		)Ú
tar_prefixrÇ   rÓ   r¹   s    rv   ræ   zDist.get_tar_prefix«  sB   € ðØ
Œ/ÐøÝ	ð ð ð Ø
×
Ò
Ñ
Ô
ÐÐÐðøøøs   ‚	 ‰*©*c                 óÆ   — 	 | j          nR# t          $ rE |                      ¦   «         dz   | j                             | j        | j        ¦  «        z   | _         Y nw xY w| j         S )z©
		Returns the archive file name.
		Set the attribute *arch_name* to change the default value::

			def dist(ctx):
				ctx.arch_name = 'ctx.tar.bz2'

		:rtype: string
		r°   )rÛ   rÇ   rÓ   Úext_algor%   rË   r¹   s    rv   rÅ   zDist.get_arch_name¶  so   € ðYØ„>€>€>øÝ	ð Yð Yð YØ×&Ò&Ñ(Ô(¨3Ñ.°´×1BÒ1BÀ4Ä9ÈdÌiÑ1XÔ1XÑX€4„>€>€>ðYøøøà	ŒÐs   ‚
 ŠAAÁAc                 óð   — 	 | j          ng# t          $ rZ t          t          j        t          j        d¦  «        }t          t          j        t          j        d¦  «        }|dz   |z   | _         Y nw xY w| j         S )zæ
		Returns the default name of the main directory in the archive, which is set to *appname-version*.
		Set the attribute *base_name* to change the default value::

			def dist(ctx):
				ctx.base_name = 'files'

		:rtype: string
		Únonamez1.0ú-)Ú	base_namerÇ   Úgetattrr	   r{   ÚAPPNAMEÚVERSION)rº   Úappnamer`   s      rv   rÓ   zDist.get_base_nameÆ  su   € ð,Ø„>€>€>øÝ	ð ,ð ,ð ,Ý•WÔ%¥w¤¸ÑAÔA€7Ý•WÔ%¥w¤¸Ñ>Ô>€7Ø˜c‘M GÑ+€4„>€>€>ð,øøøð 
ŒÐs   ‚
 ŠA!A.Á-A.c                 ó"  — 	 | j         S # t          $ r{ t          j        dz   | _         t          j        rQ| j                             t          j        ¦  «        }|r+| xj         d|                     | j	        ¦  «        z   z  c_         | j         cY S w xY w)zÞ
		Returns the patterns to exclude for finding the files in the top-level directory.
		Set the attribute *excl* to change the default value::

			def dist(ctx):
				ctx.excl = 'build **/*.o **/*.class'

		:rtype: string
		zy **/waf-2.* **/.waf-2.* **/waf3-2.* **/.waf3-2.* **/*~ **/*.rej **/*.orig **/*.pyc **/*.pyo **/*.bak **/*.swp **/.lock-w*ú )
ÚexclrÇ   r   Úexclude_regsr	   r6   r¤   Ú	find_noderÔ   rÆ   )rº   Únds     rv   Úget_exclzDist.get_exclØ  sš   € ðØ
Œ)ÐøÝ	ð ð ð ÝÔ ð  $_ñ  _€4„9Ý„oð 5Ø	Œ×	Ò	�Wœ_Ñ	-Ô	-€BØ	ð 5Ø	€Y„Y�#˜Ÿš T¤^Ñ4Ô4Ñ4Ñ4€Y„YØ
Œ)ÐÐÐðøøøs   ‚	 ‰BBÂBc                 ó”   — 	 | j         }n># t          $ r1 | j                             d|                      ¦   «         ¬¦  «        }Y nw xY w|S )ap  
		Files to package are searched automatically by :py:func:`waflib.Node.Node.ant_glob`.
		Set *files* to prevent this behaviour::

			def dist(ctx):
				ctx.files = ctx.path.find_node('wscript')

		Files are also searched from the directory 'base_path', to change it, set::

			def dist(ctx):
				ctx.base_path = path

		:rtype: list of :py:class:`waflib.Node.Node`
		z**/*)rû   )r¦   rÇ   rÆ   Úant_globrÿ   )rº   r¦   s     rv   rÊ   zDist.get_filesì  s[   € ðAØŒ:€5€5øÝ	ð Að Að AØŒ>×"Ò" 6°·²±´Ð"Ñ@Ô@€5€5€5ðAøøøà	€,s   ‚
 Š8AÁAN)rz   Ú
__module__Ú__qualname__Ú__doc__r”   r®   rË   rð   rŒ   r¸   rá   rÎ   ræ   rÅ   rÓ   rÿ   rÊ   © r�   rv   r´   r´   P  s¹   € € € € € Ø<Ð<Ø€Ø€Ø€Ø€ðð ð ð-Að -Að -Að^ð ð ðð ð ð(	ð 	ð 	ðð ð ð ð ð ð$ð ð ð(ð ð ð ð r�   r´   c                 ó   — dS )z.makes a tarball for redistributing the sourcesNr  r�   s    rv   r†   r†     ó   € à€r�   c                   ó,   — e Zd ZdZdZdZd„ Zd„ Zd„ ZdS )Ú	DistCheckz4creates an archive with dist, then tries to build itrˆ   c                 óÚ   — |                       t          j                             t          j        j        ¦  «        g¦  «         |                      ¦   «          |                      ¦   «          dS r¶   )	r·   r#   r(   r.   r	   r{   r…   r¸   Úcheckr¹   s    rv   rŒ   zDistCheck.execute
  sK   € ð ‡,‚,•”—’¥Ô 0Ô :Ñ;Ô;Ð<Ñ=Ô=Ð=Ø‡,‚,�.„.€.Ø‡*‚*�,„,€,€,€,r�   c                 óò   — g }t           j        j        r$t          j        t           j        j        ¦  «        }nd„ t
          j        D ¦   «         }t
          j        t
          j        d         ddddd|z   g|z   }|S )Nc                 ó<   — g | ]}|                      d ¦  «        ¯|‘ŒS )ró   )r8   )Ú.0rm   s     rv   ú
<listcomp>z0DistCheck.make_distcheck_cmd.<locals>.<listcomp>  s)   € Ð	3Ð	3Ð	3� §¢¨cÑ!2Ô!2Ð	3ˆ!Ð	3Ð	3Ð	3r�   r   r   r   ÚinstallÚ	uninstallz
--destdir=)r   r   Údistcheck_argsÚshlexr±   r   r'   Ú
executable)rº   ÚtmpdirÚcfgr”   s       rv   Úmake_distcheck_cmdzDistCheck.make_distcheck_cmd  sm   € Ø
€#Ý„_Ô#ð 4Ý	Œ•W”_Ô3Ñ	4Ô	4€3€3à	3Ð	3•S”XÐ	3Ñ	3Ô	3€3Ý	Œ�œ !œ k°7¸IÀ{ÐT`ÐciÑTiÐjÐmpÑp€#Ø	€*r�   c                 ó¸  — ddl }ddl}|                     |                      ¦   «         ¦  «        5 }|D ]}|                     |¦  «         Œ	 ddd¦  «         n# 1 swxY w Y   |                     d|                      ¦   «         ¦  «        }|                      |¦  «        }t          j	         
                    ||                      ¦   «         ¬¦  «                             ¦   «         }|rt          j        d|z  ¦  «        ‚t          j                             |¦  «        rt          j        d|z  ¦  «        ‚t#          j        |                      ¦   «         ¦  «         dS )zI
		Creates the archive, uncompresses it and tries to build the project
		r   Nz.inst)Úcwdzdistcheck failed with code %rz.distcheck succeeded, but files were left in %s)ÚtempfilerÄ   rÌ   rÅ   ÚextractÚmkdtemprÓ   r  r   Ú
subprocessÚPopenÚwaitr
   rH   r#   r(   rB   r¢   r£   )rº   r  rÄ   Útrm   Úinstdirr”   Úrets           rv   r  zDistCheck.check  sˆ  € ð ÐÐÐÐÐÐÐà‡|‚|�D×&Ò&Ñ(Ô(Ñ)Ô)ð ¨QØð ð €qØ‡I‚Iˆa�L„L€L€Lððð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ×Ò˜W d×&8Ò&8Ñ&:Ô&:Ñ;Ô;€'Ø×Ò Ñ(Ô(€#ÝÔ×Ò˜s¨×(:Ò(:Ñ(<Ô(<ÐÑ=Ô=×BÒBÑDÔD€#Øð @Ý	ŒÐ8¸3Ñ>Ñ	?Ô	?Ð?å„W‡^‚^�GÑÔð UÝ	ŒÐIÈGÑSÑ	TÔ	TÐTå„-�×"Ò"Ñ$Ô$Ñ%Ô%Ð%Ð%Ð%s   °AÁAÁAN)	rz   r  r  r  r®   r”   rŒ   r  r  r  r�   rv   r	  r	    sQ   € € € € € Ø;Ð;Ø€Ø€ðð ð ðð ð ð&ð &ð &ð &ð &r�   r	  c                 ó   — dS )z4checks if the project compiles (tarball from 'dist')Nr  r�   s    rv   rˆ   rˆ   1  r  r�   c                 ó   ‡ — ˆ fd„}|S )zI
	Decorator that enables context commands to run *configure* as needed.
	c                 ót  •— t           j        s ‰| ¦  «        S t          j        ¦   «         }d}	 |                     t          j                             t          j        t          j
        ¦  «        ¦  «         |j        t          j        k    rd}n{d}|j        D ]?}	 t          j        |t          j        |d¦  «        f¦  «        }Œ-# t           $ r d}Y  nw xY w||j        k    }n&# t           $ r t%          j        d¦  «         d}Y nw xY w|r¤|j        pd}t           j        dk    rft          j        j        }|j        r|j        t          j        _        	 t/          |¦  «         |t          j        _        n%# |t          j        _        w xY wt/          |¦  «         t/          | j        ¦  «         dS  ‰| ¦  «        S )	zJ
		Wraps :py:func:`waflib.Context.Context.execute` on the context class
		FTr   rÂ   zConfiguring the projectr   ÚclobberN)r   Ú
autoconfigr   r<   r#   r(   r)   r	   r4   r   r;   r!   r¦   r   Úh_listÚreadfrA   Úhashr   r@   Ú
config_cmdr   r|   r˜   r”   )rº   rg   Ú	do_configÚhr§   r”   ÚtmpÚexecute_methods          €rv   rŒ   zautoconfigure.<locals>.execute9  sÎ  ø€ õ 
Ô	ð Ø
ˆ.˜Ñ
Ô
ÐåÔÑÔ€#Ø€)ðØ‡8‚8�BŒG�LŠL�œ­'Ô*:Ñ;Ô;Ñ<Ô<Ð<ð
 
„k•W”_Ò$Ð$Ø€I€Ià	€AØŒYð ð ˆðÝ
Œ,˜�5œ; q¨$Ñ/Ô/Ð0Ñ
1Ô
1€a€aøÝð ð ð Ø€iØ€e€eðøøøð �c”h’€Yøøõ 
ð ð ð Ý„9Ð&Ñ'Ô'Ð'Ø€9€9€9ðøøøð" ð Ø	ŒÐ	&˜;€3ÝÔ˜iÒ'Ð'Ý
Œ/Ô
"€CØ
„{ð ,Ø #¤…W„_Ôð$Ý�ÑÔÐà #…W„_ÔÐø …W„_ÔÐ#Ð#Ð#Ð#å�ÑÔÐÝˆtŒxÑÔÐÐÐà
ˆ.˜Ñ
Ô
Ðs0   ¯AC# Â)CÃCÃCÃ# DÄDÅE4 Å4Fr  )r/  rŒ   s   ` rv   Úautoconfigurer0  5  s$   ø€ ð*ð *ð *ð *ð *ðV 	€r�   )%r  Ú
__future__r   r#   r  r¢   rM   r¬   r   r=   Úwaflibr   r   r   r   r   r	   r
   r   r   Úbuild_dir_overrider7   rŽ   rw   rG   r�   r˜   rW   r©   r‡   r´   r†   r	  rˆ   r0  ÚBuildContextrŒ   r  r�   rv   ú<module>r5     sè  ðð
 BÐ Aà %Ð %Ð %Ð %Ð %Ð %à 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø [Ð [Ð [Ð [Ð [Ð [Ð [Ð [Ð [Ð [Ð [Ð [Ð [Ð [Ð [Ð [Ð [Ð [Ð [Ð [Ð [Ð [àÐ à �MÐ à€ðbð bð bðH(ð (ð (ð:ð ð ðð ð ð$ð ð ð ð ð ð:/ ð / ð / ðboð oð oð oð oˆ7Œ?ñ oô oð oðbð ð ð)&ð )&ð )&ð )&ð )&�ñ )&ô )&ð )&ðXð ð ð/ð /ð /ð` +˜]¨5Ô+=Ô+EÑFÔF€Ô Ô Ð Ð r�   