ó
gÊù]c           @   s`  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 d „  Z d e j f d „  ƒ  YZ d „  Z d e f d „  ƒ  YZ d „  Z  d „  Z! d „  Z" e" e j# j$ ƒ e j# _$ d S(   iÿÿÿÿN(	   t   Utilst	   Configuret   Logst   Optionst	   ConfigSett   Contextt   Errorst   Buildt   Nodet	   configuret   buildc         C   s
  t  j ƒ  t j | k rF t  j d | t j | f ƒ t j d ƒ n  d t j k r� |  t _ t j	 d ƒ } |  | _
 | j ƒ  t j d ƒ n  | t _ |  t _ t j j d d  ƒ } | sê x* t D] } | t j k rÄ t } PqÄ qÄ Wn  |  } x«| r�t j | ƒ } t j | k rAt j ƒ  } y9 | j t j j | t j ƒ ƒ t j | ƒ t j }	 Wn t k
 roqAXx� | j | j | j g D]l }
 t  j! r±| |
 k rõt } Pqõq‰y t j |
 ƒ t j } Wn t" k
 rÞq‰X|	 | k r‰t } Pq‰q‰Wt  j# d | ƒ t$ } | rA| j t _ | j t _ | j t _ PqAn  t j sht j% | k rh| t _ qhn  t j j& | ƒ } | | k rŠPn  | } | ró Pqó qó Wt j s1d t j k sÅd	 t j k rt  j# d
 ƒ |  t _ t j	 d ƒ } |  | _
 | j ƒ  t j d ƒ n  t  j d t j% ƒ t j d ƒ n  y t j' t j ƒ Wn2 t" k
 ryt  j d t j ƒ t j d ƒ n Xy t( t j t j) t j% ƒ Wn’ t* j+ k
 rä} t  j, d | j- ƒ t  j t. | ƒ ƒ t j d ƒ nJ t k
 r-} t  j d t j | ƒ t/ j0 d t j1 ƒ t j d ƒ n Xy t2 ƒ  WnÊ t* j+ k
 r“} t  j3 d k rst  j, d | j- ƒ n  t  j | j4 ƒ t j d ƒ ns t5 k
 r¦‚  n` t k
 rØ} t/ j0 d t j1 ƒ t j d ƒ n. t6 k
 rt  j, d d ƒ t j d ƒ n Xd  S(   Ns8   Waf script %r and library %r do not match (directory %r)i   s	   --versiont   optionsi    t   NOCLIMBs   invalid lock file in %ss   -hs   --helps9   No wscript file found: the help message may be incompletes4   Waf: Run from a directory containing a file named %rs    Waf: The folder %r is unreadablet   REDs$   Waf: The wscript in %r is unreadablet   filei   t   InterruptediD   (7   R   t   init_logR   t
   WAFVERSIONt   errort   syst   exitt   argvt   run_dirt   create_contextt   curdirt
   parse_argst   waf_dirt
   launch_dirt   ost   environt   gett   Nonet   no_climb_commandst   Truet   listdirR   t   lockfileR   t   loadt   patht   joint   statt   ST_INOt	   Exceptiont   top_dirt   out_dirR    t   is_win32t   OSErrort   warnt   Falset   WSCRIPT_FILEt   dirnamet   chdirt   set_main_modulet   sepR   t   WafErrort   pprintt   verbose_msgt   strt	   tracebackt	   print_exct   stdoutt   run_commandst   verboset   msgt
   SystemExitt   KeyboardInterrupt(   t   current_directoryt   versiont   wafdirt   ctxt   no_climbt   kt   curt   lstt   envt   inot   xR$   t   ino2t   nextt   e(    (    sR   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Scripting.pyt   waf_entry_point
   sÀ    
		
								
c         C   sÁ   t  j |  ƒ t  _ |  t  j _ d „  } x' t t t t t g D] } | | ƒ q= Wd t  j j k ru t	 j
 t  j _ n  d t  j j k r™ t	 j
 t  j _ n  d t  j j k r½ t	 j
 t  j _ n  d  S(   Nc         S   s5   |  j  } | t j j k r1 t t j | |  ƒ n  d  S(   N(   t   __name__R   t   g_modulet   __dict__t   setattr(   t   objt   name(    (    sR   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Scripting.pyt   set_defr   s    	t   initt   shutdownR   (   R   t   load_moduleRQ   t	   root_patht   updatet   distt	   distcleant	   distcheckRR   R    t   nadaRW   RX   R   (   t	   file_pathRV   RF   (    (    sR   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Scripting.pyR3   o   s    	c          C   së   t  j d ƒ j ƒ  t j s+ t g t _ n  g  t j D] }  |  d k r5 |  ^ q5 t _ t j j t _ t j	 ƒ  t j j
 r« t j j
 j d ƒ t _
 t j sÉ d t _ qÉ n t j d k rÉ d g t _
 n  t j d k rç d g t _
 n  d  S(   NR   t   ,i   i    t   runneri   t   *(   R   R   t   executeR   t   commandst   default_cmdR   R=   R   R   t   zonest   split(   RK   (    (    sR   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Scripting.pyt   parse_options~   s    	+
	c         C   sA   t  j |  ƒ } t j ƒ  | _ t j | _ |  | _ | j ƒ  | S(   N(	   R   R   R    t   Timert	   log_timerR   R   t   cmdRd   (   t   cmd_nameRD   (    (    sR   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Scripting.pyt   run_command�   s    	
c          C   sm   t  ƒ  t d ƒ xK t j r^ t j j d ƒ }  t |  ƒ } t j d |  t | j ƒ f ƒ q Wt d ƒ d  S(   NRW   i    s   %r finished successfully (%s)RX   (	   Ri   Rn   R   Re   t   popR   t   infoR8   Rk   (   Rm   RD   (    (    sR   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Scripting.pyR<   ”   s    
$c         C   s.   x' d j  ƒ  D] } |  j | ƒ r t Sq Wt S(   Ns   .o .moc .exe(   Rh   t   endswithR!   R/   (   RU   RF   (    (    sR   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Scripting.pyt   _can_distcleanœ   s    c         C   sò   x‡ t  j |  ƒ D]v \ } } } xd | D]\ } t | ƒ r& | t  j | } y t  j | ƒ Wq‚ t k
 r~ t j d | ƒ q‚ Xq& q& Wq Wx< t j	 d g D]+ } y t  j | ƒ Wqš t k
 rÄ qš Xqš Wy t
 j d ƒ Wn t k
 rí n Xd  S(   Ns   Could not remove %rs
   config.logt   c4che(   R   t   walkRr   R4   t   removeR-   R   R.   R   t   DBFILEt   shutilt   rmtree(   R1   t   roott   dirst   filest   ft   fnameRK   (    (    sR   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Scripting.pyt   distclean_dir¡   s"     c         C   s²  t  j d ƒ } xœ| D]”} | t j k r{y t j | ƒ } Wn% t k
 re t j d | ƒ q n X| d | d k rå y t j	 | d ƒ Wqó t k
 r¢ qó t
 k
 rá } | j t j k râ t j d | t j ƒ qâ qó Xn t | d ƒ x… | d | d | d f D]e } y# t  j t  j j | t j ƒ ƒ Wqt
 k
 rs} | j t j k rtt j d | ƒ qtqXqWn  | j d ƒ r t j r t j	 | d	 t ƒq q Wd
 S(   s   removes the build directoryt   .s   Could not read %rR+   R*   s   project %r cannot be removedR   s   file %r cannot be removeds   .waft   ignore_errorsN(   R   R"   R   R#   R   t   IOErrorR   R.   Rw   Rx   R-   t   errnot   ENOENTR   t   OUTR~   Ru   R%   R&   t
   startswithRe   R!   (   RD   RH   R|   t   projRN   RF   (    (    sR   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Scripting.pyR]   ³   s2    ""#t   Distc           B   sw   e  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 RS(   s5   creates an archive containing the project source codeR\   s   tar.bz2c         C   s0   |  j  t j j t j j ƒ g ƒ |  j ƒ  d  S(   N(   t   recurseR   R%   R1   R   RQ   RZ   t   archive(   t   self(    (    sR   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Scripting.pyRd   Õ   s    "c         C   s  d d  l  } |  j ƒ  } y |  j Wn t k
 rB |  j |  _ n X|  j j | ƒ } y | j ƒ  Wn t k
 rv n X|  j ƒ  } |  j	 j
 d ƒ rè | j | d |  j	 j d d ƒ ƒ } x | D] } |  j | | ƒ qÁ W| j ƒ  n� |  j	 d k rxd d  l } | j | d d | j ƒ} xJ | D]B } |  j ƒ  d | j |  j ƒ }	 | j | j ƒ  |	 | j ƒ q%W| j ƒ  n |  j d	 ƒ y d d
 l m }
 Wn! t k
 r¼d d l m }
 n Xy  d |
 | j ƒ  ƒ j ƒ  } Wn t k
 röd } n Xt j d |  j | f ƒ d  S(   Niÿÿÿÿs   tar.s   w:t    t   zipt   wt   compressiont   /s+   Valid algo types are tar.bz2, tar.gz or zip(   t   sha1(   t   shas	    (sha=%r)s   New archive created: %s%s(    t   tarfilet   get_arch_namet	   base_patht   AttributeErrorR%   t	   make_nodet   deleteR)   t	   get_filest   algoR…   t   opent   replacet   add_tar_filet   closet   zipfilet   ZipFilet   ZIP_DEFLATEDt   get_base_namet	   path_fromt   writet   abspatht   fatalt   hashlibR�   t   ImportErrorR‘   t   readt	   hexdigestR   Rp   t	   arch_name(   RŠ   R’   Rª   t   nodeR{   t   tarRK   Rž   RŒ   t   archive_nameR‘   t   digest(    (    sR   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Scripting.pyR‰   Ø   sD    %   
c         C   s
   | j  ƒ  S(   N(   R¤   (   RŠ   R«   (    (    sR   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Scripting.pyt   get_tar_pathü   s    c         C   s¬   |  j  | ƒ } | j d | d |  j ƒ  d | j |  j ƒ ƒ } d | _ d | _ d | _ d | _ d  } z& t
 | d ƒ } | j | d | ƒWd  | r§ | j ƒ  n  Xd  S(   NRU   t   arcnameR�   i    Ry   t   rbt   fileobj(   R¯   t
   gettarinfot   get_tar_prefixR¢   R”   t   uidt   gidt   unamet   gnameR   Rš   t   addfileR�   (   RŠ   RK   R¬   t   pt   tinfot   fu(    (    sR   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Scripting.pyRœ   þ   s    2				c         C   s*   y |  j  SWn t k
 r% |  j ƒ  SXd  S(   N(   t
   tar_prefixR•   R¡   (   RŠ   (    (    sR   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Scripting.pyR´     s    c         C   sR   y |  j  Wn= t k
 rJ |  j ƒ  d |  j j |  j |  j ƒ |  _  n X|  j  S(   NR   (   Rª   R•   R¡   t   ext_algoR   R™   (   RŠ   (    (    sR   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Scripting.pyR“     s
    0c         C   sg   y |  j  WnR t k
 r_ t t j t j d ƒ } t t j t j d ƒ } | d | |  _  n X|  j  S(   Nt   nonames   1.0t   -(   t	   base_nameR•   t   getattrR   RQ   t   APPNAMEt   VERSION(   RŠ   t   appnameRB   (    (    sR   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Scripting.pyR¡     s    c         C   st   y |  j  SWnb t k
 ro t j d |  _  |  j j t j ƒ } | rh |  j  d | j |  j	 ƒ 7_  n  |  j  SXd  S(   Ns    **/waf-1.7.* **/.waf-1.7* **/waf3-1.7.* **/.waf3-1.7* **/*~ **/*.rej **/*.orig **/*.pyc **/*.pyo **/*.bak **/*.swp **/.lock-w*t    (
   t   exclR•   R   t   exclude_regsRy   t	   find_nodeR   R+   R¢   R”   (   RŠ   t   nd(    (    sR   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Scripting.pyt   get_excl  s    "c         C   sC   y |  j  } Wn/ t k
 r> |  j j d d |  j ƒ  ƒ} n X| S(   Ns   **/*RÇ   (   R{   R•   R”   t   ant_globRË   (   RŠ   R{   (    (    sR   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Scripting.pyR˜   (  s
    "(   RP   t
   __module__t   __doc__Rl   t   funR™   R¾   Rd   R‰   R¯   Rœ   R´   R“   R¡   RË   R˜   (    (    (    sR   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Scripting.pyR‡   Ï   s   		$							c         C   s   d S(   s.   makes a tarball for redistributing the sourcesN(    (   RD   (    (    sR   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Scripting.pyR\   .  s    t	   DistCheckc           B   s&   e  Z d  Z d  Z d „  Z d „  Z RS(   R^   c         C   s:   |  j  t j j t j j ƒ g ƒ |  j ƒ  |  j ƒ  d  S(   N(	   Rˆ   R   R%   R1   R   RQ   RZ   R‰   t   check(   RŠ   (    (    sR   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Scripting.pyRd   4  s    "
c         C   s|  d d  l  } d d  l } d  } z7 | j |  j ƒ  ƒ } x | D] } | j | ƒ q= WWd  | rk | j ƒ  n  Xg  } t j j	 r– t
 j t j j	 ƒ } n+ g  t j D] } | j d ƒ r  | ^ q  } | j d |  j ƒ  ƒ } t j j t j t j d d d d d | g | d	 |  j ƒ  ƒj ƒ  } | r=t j d
 | ƒ ‚ n  t j j | ƒ ret j d | ƒ ‚ n  t j |  j ƒ  ƒ d  S(   NiÿÿÿÿRÀ   s   .insti    R	   t   installt	   uninstalls
   --destdir=t   cwds   distcheck failed with code %is.   distcheck succeeded, but files were left in %s(   t   tempfileR’   R   Rš   R“   t   extractR�   R   R   t   distcheck_argst   shlexRh   R   R   R…   t   mkdtempR¡   R    t
   subprocesst   Popent
   executablet   waitR   R5   R   R%   t   existsRw   Rx   (   RŠ   RÕ   R’   t   tRK   t   cfgt   instdirt   ret(    (    sR   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Scripting.pyRÑ   8  s&    +H(   RP   RÍ   RÏ   Rl   Rd   RÑ   (    (    (    sR   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Scripting.pyRÐ   1  s   	c         C   s   d S(   s4   checks if the project compiles (tarball from 'dist')N(    (   RD   (    (    sR   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Scripting.pyR^   N  s    c         C   sÂ   t  j j j d ƒ } | sV g  t j t j d ƒ D] } | j d ƒ r2 | ^ q2 } n  xe | D]] } | j	 d d ƒ } y t
 j | d t d |  ƒWq] t j k
 r¹ t j d | ƒ q] Xq] Wd S(	   s6   updates the plugins from the *waflib/extras* directoryRa   s   /waflib/extrass   .pyR‹   t   forceRD   s3   Could not find the tool %s in the remote repositoryN(   R   R   R{   Rh   R    R"   R   R   Rq   R›   R   t   download_toolR!   R   R5   R   R   (   RD   RH   RK   t   tool(    (    sR   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Scripting.pyR[   Q  s    ;c            s   ‡  f d †  } | S(   Nc            s  t  j s ˆ  |  ƒ St j ƒ  } t } y& | j t j j t j	 t
 j ƒ ƒ Wn$ t k
 rq t j d ƒ t } nd X| j t j k r� t } nH d } x0 | d D]$ } t | t j | d ƒ f ƒ } qž W| | j k } | rt
 j j d |  j ƒ t
 j j d d ƒ d  Sˆ  |  ƒ S(   Ns   Configuring the projecti    R{   R±   R	   (   R   t
   autoconfigR   R/   R$   R   R%   R&   R   R*   R   R#   R)   R   R.   R!   R   t   hashR    t   readfRe   t   insertRl   (   RŠ   RI   t	   do_configt   hR|   (   t   execute_method(    sR   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Scripting.pyRd   ]  s(    	
&
	"(    (   Rì   Rd   (    (   Rì   sR   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Scripting.pyt   autoconfigure\  s    (%   R   RØ   Rw   R9   R‚   R   R'   t   waflibR    R   R   R   R   R   R   R   R   R   t   build_dir_overrideR    Rf   RO   R3   Ri   Rn   R<   Rr   R~   R]   R‡   R\   RÐ   R^   R[   Rí   t   BuildContextRd   (    (    (    sR   /git_repos/avwlv2/.waf-1.7.11-715590adb2974ef17ddee0c7e2df2d1d/waflib/Scripting.pyt   <module>   s&   T@		e							_				