ó
gÊù]c           @   s»  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	 e j
 e ƒ Z d e f d „  ƒ  YZ d d d d g  g  g  g  d d d e d „ Z d „  Z d	 „  Z d
 „  Z e Z d „  Z e Z d „  Z e d d „ ƒ Z e d ƒ d „  ƒ Z e d ƒ e d ƒ d „  ƒ ƒ Z e d ƒ d „  ƒ Z e j d e j ƒ Z d e j f d „  ƒ  YZ  e d ƒ d „  ƒ Z! d e  f d „  ƒ  YZ" e d ƒ e d d ƒ d „  ƒ ƒ Z# d S(   iÿÿÿÿN(   t   Taskt   Utilst   Logst   Errorst	   ConfigSett   Nodet   task_genc           B   sŒ   e  Z i  Z e j e ƒ Z d  „  Z d „  Z d „  Z	 d „  Z
 d „  Z e e
 e ƒ Z d „  Z d „  Z d „  Z d
 d
 d „ Z d	 „  Z RS(   c         O   s]  d |  _  d |  _ g  |  _ t j t ƒ |  _ i  |  _ g  |  _ g  |  _	 d | k rx t
 j
 ƒ  |  _ d |  _ d  |  _ n´ | d |  _ |  j j j ƒ  |  _ |  j j |  _ yC |  j j j t |  j ƒ d ƒ d |  _ |  j j t |  j ƒ <Wn= t k
 r+i  |  j _ d |  _ |  j j t |  j ƒ <n Xx* | j ƒ  D] \ } } t |  | | ƒ q9Wd  S(   Nt    t   bldi    i   (   t   sourcet   targett   methsR   t   defaultdictt   listt   prect   mappingst   featurest   tasksR   t   envt   idxt   Nonet   pathR   t   derivet   gett   idt   AttributeErrort   itemst   setattr(   t   selft   kt   kwt   keyt   val(    (    sP   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/TaskGen.pyt   __init__   s*    							C$c         C   s   d |  j  |  j j ƒ  f S(   Ns   <task_gen %r declared in %s>(   t   nameR   t   abspath(   R   (    (    sP   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/TaskGen.pyt   __str__"   s    c         C   su   g  } xL |  j  j ƒ  D]; } | d k r | j d | t t |  | ƒ ƒ f ƒ q q Wd d j | ƒ |  j j ƒ  f S(	   NR   R   t   compiled_tasksR   s   %s=%ss   bld(%s) in %ss   , (   R   R   R%   R   (   t   __dict__t   keyst   appendt   reprt   getattrt   joinR   R#   (   R   t   lstt   x(    (    sP   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/TaskGen.pyt   __repr__$   s
    -c         C   s‡   y |  j  SWnu t k
 r‚ t |  j t ƒ rh g  |  j D] } t | ƒ ^ q7 } d j | ƒ } |  _  n t |  j ƒ } |  _  | SXd  S(   Nt   ,(   t   _nameR   t
   isinstanceR
   R   t   strR+   (   R   R-   R,   R"   (    (    sP   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/TaskGen.pyt   get_name*   s    "c         C   s   | |  _  d  S(   N(   R0   (   R   R"   (    (    sP   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/TaskGen.pyt   set_name4   s    c         C   s!   t  | t ƒ r | j ƒ  S| Sd  S(   N(   R1   R2   t   split(   R   R    (    (    sP   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/TaskGen.pyt   to_list7   s     
c         C   s¼  t  |  d d  ƒ r t St |  _ t |  j ƒ } t j |  j	 ƒ |  _	 xa |  j	 d g D]O } t
 | } | s� | t j k r� t j d | ƒ q� n  | j t | ƒ ƒ qT Wi  } |  j p¼ t j } x+ | D]# } | | k rÆ | | | | <qÆ qÆ Wg  } xB | D]: } x1 | j ƒ  D] } | | k rPqqW| j | ƒ qú W| j ƒ  g  } xž | rè| j ƒ  }	 |	 | k ry| j |	 ƒ n  y | |	 }
 Wn t k
 ršqKX| |	 =x@ |
 D]8 } x/ | D] } | | | k r¶Pq¶q¶W| j | ƒ q©WqKW| rt j d | ƒ ‚ n  | j ƒ  | |  _ t j d |  t |  ƒ f ƒ xl | D]d } y t  |  | ƒ } Wn$ t k
 r{t j d | ƒ ‚ n Xt j d | t |  ƒ f ƒ | ƒ  q<Wt j d |  j ƒ t S(	   Nt   postedt   *s:   feature %r does not exist - bind at least one method to its)   Cycle detected in the method execution %rs   task_gen: posting %s %ds'   %r is not a valid task generator methods   task_gen: -> %s (%d)s   task_gen: posted %s(   R*   R   t   Falset   TrueR7   t   setR   R   R6   R   t   featsR    t   classesR   t   warnt   updateR   R   R   t   valuesR(   t   sortt   popt   KeyErrorR   t   WafErrort   reverset   debugR   R   R"   (   R   R'   R-   t   stR   t   prec_tblt   tmpt   at   outt   et   nlstt   yt   v(    (    sP   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/TaskGen.pyt   post:   sh    	
 
	 
	c         C   s‹   | j  } x+ |  j D]  } | j | ƒ r |  j | Sq Wx+ t j D]  } | j | ƒ rA t j | SqA Wt j d | t j j ƒ  f ƒ ‚ d  S(   NsA   File %r has no mapping in %r (did you forget to load a waf tool?)(   R"   R   t   endswithR   R   RD   R'   (   R   t   nodeR"   R   (    (    sP   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/TaskGen.pyt   get_hookp   s    	c         C   se   t  j | d |  j j ƒ  d |  ƒ } | r; | j | ƒ n  | rQ | j | ƒ n  |  j j | ƒ | S(   NR   t	   generator(   R    R=   R   R   t
   set_inputst   set_outputsR   R(   (   R   R"   t   srct   tgtt   task(    (    sP   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/TaskGen.pyt   create_tasky   s    %c         C   sÃ   |  j  ƒ  } xm |  j D]b } | d k r. q q | d k rV t | | t |  | ƒ ƒ q t | | t j t |  | ƒ ƒ ƒ q Wt | _ t | t ƒ r° |  j  j	 | j
 ƒ  | _ n | j
 ƒ  | _ | S(   NR   R   R   R   (   R   R   (   R   R   (   R   R&   R   R*   t   copyR9   R7   R1   R2   t   all_envsR   R   (   R   R   t   newobjR-   (    (    sP   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/TaskGen.pyt   clone�   s    &	N(   t   __name__t
   __module__R   R   R   R   R   R!   R$   R.   R3   R4   t   propertyR"   R6   RP   RS   R   RZ   R^   (    (    (    sP   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/TaskGen.pyR      s   				
			6		R   t   BLUEc            s¬   t  j ˆ ƒ ‰ t  j | ƒ } ˆ s- | ‰ n  t j ˆ | d | d ˆ d | d | d | d |	 d | ƒ‰  ‡  ‡ ‡ ‡ ‡ ‡ f d †  } x ˆ  j D] } | t j | <q‘ W| S(	   Nt   colort   ext_int   ext_outt   beforet   aftert   scant   shellc   
         sB  ˆ r ˆ |  | ƒ p ˆ  j  } ˆ r1 ˆ d } n  |  j ˆ | ƒ } d } t |  j j ƒ  ƒ t |  j j j ƒ  ƒ } x¨ | D]  } | j | d | ƒ} | j j | ƒ ˆ d  k rÚ | t
 ˆ ƒ k  r|  j j | ƒ qn7 x4 | D], }	 | j j |	 ƒ rá |  j j | ƒ Pqá qá W| d 7} q{ Wˆ r>|  j j ˆ | j ƒ n  | S(   Ni    Rd   i   (   Re   RZ   R   R   R'   t	   __class__t
   change_extt   outputsR(   R   t   intR	   R"   RQ   R   t   install_files(
   R   RR   t   extt   _ext_int   tskt   cntR'   R-   R   RN   (   t   clst   deciderRd   t   install_pathR"   t	   reentrant(    sP   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/TaskGen.pyt   x_file–   s(    +(   R   R6   R    t   task_factoryRd   R   R   (   R"   t   ruleRv   Rc   Rd   Re   Rf   Rg   Rt   Rh   Ru   Ri   Rw   R-   (    (   Rs   Rt   Rd   Ru   R"   Rv   sP   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/TaskGen.pyt   declare_chain�   s    	<c         C   s   t  t |  j |  ƒ |  S(   N(   R   R   R_   (   t   func(    (    sP   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/TaskGen.pyt   taskgen_method¯   s    c             s   ‡  f d †  } | S(   Nc            s?   t  t |  j |  ƒ x% ˆ  D] } t | j |  j g ƒ q W|  S(   N(   R   R   R_   R<   R?   (   R{   R"   (   R   (    sP   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/TaskGen.pyt   deco³   s    (    (   R   R}   (    (   R   sP   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/TaskGen.pyt   feature²   s    c             s   ‡  f d †  } | S(   Nc            sX   t  t |  j |  ƒ x> ˆ  D]6 } |  j t j | k r t j | j |  j ƒ q q W|  S(   N(   R   R   R_   R   R(   (   R{   t   fun_name(   R   (    sP   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/TaskGen.pyR}   º   s
    (    (   R   R}   (    (   R   sP   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/TaskGen.pyt   before_method¹   s    c             s   ‡  f d †  } | S(   Nc            sX   t  t |  j |  ƒ x> ˆ  D]6 } | t j |  j k r t j |  j j | ƒ q q W|  S(   N(   R   R   R_   R   R(   (   R{   R   (   R   (    sP   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/TaskGen.pyR}   Ã   s
    (    (   R   R}   (    (   R   sP   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/TaskGen.pyt   after_methodÂ   s    c             s   ‡  f d †  } | S(   Nc            s5   t  t |  j |  ƒ x ˆ  D] } |  t j | <q W|  S(   N(   R   R   R_   R   (   R{   R-   (   R   (    sP   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/TaskGen.pyR}   Ì   s    (    (   R   R}   (    (   R   sP   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/TaskGen.pyt	   extensionË   s    c         C   s°   g  } | p |  j  } | j } t | |  j  j ƒ r? | g } n  xj t j | ƒ D]Y } t | t ƒ rs | | ƒ } n | } | s› t j d | |  f ƒ ‚ n  | j	 | ƒ qO W| S(   Ns   source not found: %r in %r(
   R   t   find_resourceR1   Rj   R   R6   R2   R   RD   R(   (   R   R,   R   RI   t   findR-   RR   (    (    sP   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/TaskGen.pyt   to_nodesÒ   s    	R8   c         C   sL   |  j  t |  d g  ƒ ƒ |  _ x' |  j D] } |  j | ƒ |  | ƒ q( Wd  S(   NR	   (   R…   R*   R	   RS   (   R   RR   (    (    sP   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/TaskGen.pyt   process_sourceâ   s    R†   c         C   sm  t  |  d d  ƒ s d  St t  |  d d  ƒ pI |  j pI t  |  j d |  j ƒ ƒ } y |  j j } Wn! t k
 r‚ i  } |  j _ n Xd  } t  |  d d ƒ rÉ y | | |  j f } WqÉ t k
 rÅ qÉ Xn  | st	 j
 | |  j t  |  d g  ƒ d t  |  d t ƒ d t  |  d d	 ƒ d
 t  |  d
 d  ƒ ƒ} t  |  d
 d  ƒ rJ|  j | _ n' t  |  d d  ƒ rqd „  } | | _ n  t  |  d d  ƒ r“t	 j | ƒ n  t  |  d d  ƒ rµt	 j | ƒ n  x6 d d d d g D]" } t | | t  |  | g  ƒ ƒ qÈWt  |  d d ƒ r| | | |  j f <qn  |  j | ƒ } t  |  d d  ƒ rt |  j t ƒ ra|  j j ƒ  |  _ n  t |  j t ƒ s…|  j g |  _ n  x\ |  j D]Q } t | t ƒ rÃ| j j |  j j | ƒ ƒ q�| j j ƒ  | j j | ƒ q�Wt  |  d d  ƒ r|  j j |  j | j ƒ qn  t  |  d d  ƒ rH|  j |  j ƒ | _ g  |  _ n  t  |  d d  ƒ ri|  j | _ n  d  S(   NRy   R"   R_   t
   cache_ruleR:   t   varsRi   Rc   Rb   Rh   t   depsc         S   s~   g  } xk |  j  j t |  j  d d  ƒ ƒ D]H } |  j  j j | ƒ } | sc |  j  j j d | ƒ n  | j | ƒ q( W| g  g S(   NR‰   s$   Could not find %r (was it declared?)(	   RT   R6   R*   R   R   Rƒ   R   t   fatalR(   (   R   t   nodesR-   RR   (    (    sP   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/TaskGen.pyRh   ü   s    (t   update_outputst   alwaysRg   Rf   Rd   Re   R
   Ru   R	   t   cwd(    R*   R   R2   R
   Ry   R   t   cache_rule_attrR   RC   R    Rx   R:   Rh   RŒ   t
   always_runR   RZ   R1   R5   R   Rl   R(   R   t   find_or_declaret   parentt   mkdirRn   Ru   R…   R	   t   inputsRŽ   (   R   R"   t   cacheRs   Rh   R-   Rq   (    (    sP   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/TaskGen.pyt   process_ruleç   s\    9Z	 t   seqc         C   s¹   |  j  r0 |  j  d d k r0 |  j  j d ƒ d  St |  d d  ƒ rF d  St |  j d d  ƒ r© |  j j j ƒ  x; |  j j j D]' } x |  j D] } | j | ƒ q‹ Wq{ Wn  |  |  j _ d  S(   Niÿÿÿÿt   sequence_ordert	   seq_startt   prev(	   R   R(   R*   R   R   Rš   RP   R   t   set_run_after(   R   R-   RN   (    (    sP   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/TaskGen.pyR˜      s    s   @(\w+)@t   subst_pcc           B   s   e  Z d  „  Z d „  Z RS(   c            s¥  t  |  j d d  ƒ r{ |  j d j |  j d j d ƒ d ƒ t  |  j d d  ƒ rw t j |  j d j	 ƒ  |  j j ƒ n  d  St  |  j d d  ƒ r£ |  j j
 |  ƒ n  |  j d j d t  |  j d d ƒ ƒ } t  |  j d	 d  ƒ r+|  j j |  | ƒ } | r'|  j d j | d t  |  j d d ƒ ƒn  d  S| j d
 d ƒ } g  ‰  ‡  f d †  } t j | | ƒ } y |  j j } Wnw t k
 ríi  } xa ˆ  D]U } t  |  j | d ƒ pÓ|  j j | ƒ pÓ|  j j | j ƒ  ƒ } t | ƒ | | <q‘Wn X| | } |  j d j | d t  |  j d d ƒ ƒˆ  |  j j j |  j ƒ  <|  _ y t |  d ƒ Wn t k
 ren Xt  |  j d d  ƒ r¡t j |  j d j	 ƒ  |  j j ƒ n  d  S(   Nt   is_copyi    t   rbt   wbt   chmodt   funt   encodings	   ISO8859-1t	   subst_funt   %s   %%c            s:   |  j  } | d ƒ r6 ˆ  j | d ƒ ƒ d | d ƒ Sd S(   Ni   s   %%(%s)sR   (   t   groupR(   (   t   matcht   g(   R,   (    sP   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/TaskGen.pyt   repl?  s
    	R   t	   cache_sig(   R*   RT   R   Rl   t   writeR”   t   readt   osR    R#   R¡   R£   t   replacet   re_m4t   subt   dctR   R   t   get_flatt   upperR2   R   t   raw_depst   uidt   dep_varst   delattr(   R   t   codeR¨   t   dR-   RI   (    (   R,   sP   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/TaskGen.pyt   run/  sB    '&(,?
)   c         C   s  |  j  j } |  j } |  j j } t |  j  d d  ƒ rR | t j |  j  j	 ƒ ƒ n  t |  j  d d  ƒ rƒ | t j |  j  j
 ƒ ƒ n  |  j  j j j |  j ƒ  g  ƒ } | j | | ƒ } | | ƒ g  | D] } t |  j  | d ƒ ^ qÇ } | t j | ƒ ƒ |  j j ƒ  S(   NR¡   R£   R   (   RT   R   R   t   mR?   R*   R   R   t   h_funR¡   R£   R³   R   R´   t   hash_env_varst   h_listt   digest(   R   R   R   t   updRˆ   t   act_sigR-   R,   (    (    sP   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/TaskGen.pyt   sig_varsT  s    	!
((   R_   R`   R¹   RÁ   (    (    (    sP   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/TaskGen.pyRœ   .  s   	%s   .pc.inc         C   sG   |  j  d | | j d d ƒ ƒ } |  j j t |  d d ƒ | j ƒ d  S(   NRœ   s   .pcs   .pc.inRu   s   ${LIBDIR}/pkgconfig/(   RZ   Rk   R   Rn   R*   Rl   (   R   RR   Rq   (    (    sP   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/TaskGen.pyt
   add_pcfileb  s    !t   substc           B   s   e  Z RS(    (   R_   R`   (    (    (    sP   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/TaskGen.pyRÃ   f  s   R–   c      	   C   s  t  j t |  d g  ƒ ƒ } t | t j ƒ r9 | g } n  t  j t |  d g  ƒ ƒ } t | t j ƒ rr | g } n  t | ƒ t | ƒ k r  t j d |  ƒ ‚ n  x\t | | ƒ D]K\ } } | sÊ | rà t j d |  ƒ ‚ n  d \ } } t | t
 ƒ rtt | t
 ƒ rt| | k rt|  j j | ƒ } |  j j ƒ  j | ƒ } t j j | j ƒ  ƒ sòd  | _ | j j ƒ  qòn~ t | t
 ƒ r˜|  j j | ƒ } n t | t j ƒ r³| } n  t | t
 ƒ r×|  j j | ƒ } n t | t j ƒ rò| } n  | st j d | |  f ƒ ‚ n  t } |  j d | | ƒ } x? d D]7 }	 t |  |	 d  ƒ }
 |
 r6t } t | |	 |
 ƒ q6q6W| r¸| j j d ƒ r¸g  d D] }	 |	 t j k r‘|	 ^ q‘| _ n  t |  d d  ƒ } | r° |  j  j! | | d t |  d t  j" ƒ ƒq° q° Wg  |  _# d  S(   NR	   R
   s&   invalid number of source/target for %rs   null source or target for %rs   cound not find %r for %rRÃ   Rg   Rf   Rd   Re   s   .ht   ct   cxxRu   R    (   NN(   Rg   Rf   Rd   Re   (   RÄ   RÅ   ($   R   R6   R*   R1   R   t   lenR   RD   t   zipR   R2   R   t	   find_nodet   get_bldt	   make_nodeR¬   t   isfileR#   t   sigR’   R“   Rƒ   R‘   R9   RZ   R:   R   R"   RQ   R    R=   Rf   R   Rn   t   O644R	   (   R   RW   RX   R-   RN   RJ   t   bt   has_constraintsRq   R   R    t   inst_to(    (    sP   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/TaskGen.pyt   process_substh  sR    *			./($   R[   t   reR¬   t   waflibR    R   R   R   R   R   R   R;   R<   t   objectR   R   R9   Rz   R|   R~   R€   Rf   R�   Rg   R‚   R…   R†   R–   R˜   t   compilet   MR®   Rœ   RÂ   RÃ   RÑ   (    (    (    sP   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/TaskGen.pyt   <module>   s.   $.ˆ-						84	