Ë
    Ï"KbM  ã                   ó:   — d Z ddlZddlZd„ Z G d„ de«      Zd„ Zy)zÁPython module for generating .ninja files.

Note that this is emphatically not a required piece of Ninja; it's
just a helpful utility for build-file-generation systems that already
use Python.
é    Nc                 óf   — | j                  dd«      j                  dd«      j                  dd«      S )Nz$ z$$ ú ú:z$:©Úreplace)Úwords    ú2/usr/lib/python3/dist-packages/gyp/ninja_syntax.pyÚescape_pathr
      s-   € Ø�<‰<˜˜UÓ#×+Ñ+¨C°Ó5×=Ñ=¸cÀ4ÓHÐHó    c                   ón   — e Zd Zdd„Zd„ Zd„ Zdd„Zd„ Z	 	 	 dd„Z	 	 dd„Z	d	„ Z
d
„ Zd„ Zd„ Zdd„Zd„ Zy)ÚWriterc                 ó    — || _         || _        y ©N)ÚoutputÚwidth)Úselfr   r   s      r	   Ú__init__zWriter.__init__   s   € ØˆŒØˆ�
r   c                 ó:   — | j                   j                  d«       y )Nú
)r   Úwrite)r   s    r	   ÚnewlinezWriter.newline   s   € Ø�‰×Ñ˜$Õr   c                 ó–   — t        j                  || j                  dz
  «      D ]#  }| j                  j	                  d|z   dz   «       Œ% y )Né   z# r   )ÚtextwrapÚwrapr   r   r   )r   ÚtextÚlines      r	   ÚcommentzWriter.comment   s?   € Ü—M‘M $¨¯
©
°Q©Ó7ò 	2ˆDØ�K‰K×Ñ˜d T™k¨DÑ0Õ1ñ	2r   c                 óŽ   — |€y t        |t        «      rdj                  t        d |«      «      }| j	                  |›d|›�|«       y )Nr   z = )Ú
isinstanceÚlistÚjoinÚfilterÚ_line)r   ÚkeyÚvalueÚindents       r	   ÚvariablezWriter.variable   s<   € Øˆ=ØÜ�eœTÔ"Ø—H‘HœV D¨%Ó0Ó1ˆEØ�
‰
¢¡UÐ+¨VÕ4r   c                 óT   — | j                  d|z  «       | j                  d|d¬«       y )Nzpool %sÚdepthé   ©r'   ©r$   r(   )r   Únamer*   s      r	   ÚpoolzWriter.pool%   s%   € Ø�
‰
�9˜tÑ#Ô$Ø�‰�g˜u¨QˆÕ/r   Nc                 ó¶  — | j                  d|z  «       | j                  d|d¬«       |r| j                  d|d¬«       |r| j                  d|d¬«       |r| j                  ddd¬«       |r| j                  d	|d¬«       |r| j                  d
dd¬«       |r| j                  d|d¬«       |	r| j                  d|	d¬«       |
r| j                  d|
d¬«       y y )Nzrule %sÚcommandr+   r,   ÚdescriptionÚdepfileÚ	generatorÚ1r/   ÚrestatÚrspfileÚrspfile_contentÚdepsr-   )r   r.   r1   r2   r3   r4   r/   r6   r7   r8   r9   s              r	   ÚrulezWriter.rule)   sÕ   € ð 	�
‰
�9˜tÑ#Ô$Ø�‰�i °ˆÔ3ÙØ�M‰M˜-¨¸QˆMÔ?ÙØ�M‰M˜) W°QˆMÔ7ÙØ�M‰M˜+ s°1ˆMÔ5ÙØ�M‰M˜& $¨qˆMÔ1ÙØ�M‰M˜( C°ˆMÔ2ÙØ�M‰M˜) W°QˆMÔ7ÙØ�M‰MÐ+¨_ÀQˆMÔGÙØ�M‰M˜& $¨qˆMÕ1ð r   c           	      óÜ  — | j                  |«      }| j                  |«      d d  }t        t        t        |«      «      }t        t        t        |«      «      }|rAt        t        | j                  |«      «      }|j	                  d«       |j                  |«       |rAt        t        | j                  |«      «      }|j	                  d«       |j                  |«       | j                  ddj                  |«      ›ddj                  |g|z   «      ›�«       |rSt        |t        «      rt        |j                  «       «      }	nt        |«      }	|	D ]  \  }
}| j                  |
|d¬«       Œ |S )Nú|z||zbuild r   z: r+   r,   )Ú_as_listr!   Úmapr
   ÚappendÚextendr$   r"   r    ÚdictÚiterÚitemsr(   )r   Úoutputsr:   ÚinputsÚimplicitÚ
order_onlyÚ	variablesÚ
all_inputsÚout_outputsÚiteratorr%   Úvals               r	   ÚbuildzWriter.build?   s3  € à—-‘- Ó(ˆØ—]‘] 6Ó*©1Ð-ˆ
Üœ3œ{¨GÓ4Ó5ˆÜœ#œk¨:Ó6Ó7ˆ
áÜœ;¨¯©°hÓ(?Ó@ˆHØ×Ñ˜cÔ"Ø×Ñ˜hÔ'ÙÜœ[¨$¯-©-¸
Ó*CÓDˆJØ×Ñ˜dÔ#Ø×Ñ˜jÔ)à�
Š
 S§X¡X¨kÕ%:Ø(+¯©°$°¸*Ñ1DÔ(EðGô 	Hñ Ü˜)¤TÔ*Ü 	§¡Ó 1Ó2‘ä 	›?�à$ò 2‘��SØ—‘˜c 3¨q�Õ1ð2ð ˆr   c                 ó,   — | j                  d|z  «       y )Nz
include %s©r$   ©r   Úpaths     r	   ÚincludezWriter.include]   s   € Ø�
‰
�< $Ñ&Õ'r   c                 ó,   — | j                  d|z  «       y )Nzsubninja %srO   rP   s     r	   ÚsubninjazWriter.subninja`   s   € Ø�
‰
�= 4Ñ'Õ(r   c                 óh   — | j                  ddj                  | j                  |«      «      z  «       y )Nz
default %sr   )r$   r"   r=   )r   Úpathss     r	   ÚdefaultzWriter.defaultc   s%   € Ø�
‰
�< #§(¡(¨4¯=©=¸Ó+?Ó"@Ñ@ÕAr   c                 ó^   — d}|dz
  }|dkD  r ||   dk(  r|dz  }|dz  }|dkD  r	||   dk(  rŒ|S )z<Returns the number of '$' characters right in front of s[i].r   r+   ú$© )r   ÚsÚiÚdollar_countÚdollar_indexs        r	   Ú_count_dollars_before_indexz"Writer._count_dollars_before_indexf   sT   € à€lØ˜‘U€lØ˜1Ò  <¡°CÒ!7Ø˜ÑˆØ˜Ñˆð ˜1Ò  <¡°CÓ!7ð Ðr   c                 ó†  — d|z  }t        |«      t        |«      z   | j                  kD  r÷| j                  t        |«      z
  t        d«      z
  }|}	 |j                  dd|«      }|dk  s| j                  ||«      dz  dk(  rnŒ2|dk  r:|dz
  }	 |j	                  d|dz   «      }|dk  s| j                  ||«      dz  dk(  rnŒ4|dk  rnY| j
                  j                  ||d| z   dz   «       ||dz   d }d|dz   z  }t        |«      t        |«      z   | j                  kD  rŒ÷| j
                  j                  ||z   d	z   «       y)
z3Write 'text' word-wrapped at self.width characters.z  z $r   r   r   r+   z $
Nr   )Úlenr   Úrfindr_   Úfindr   r   )r   r   r'   Úleading_spaceÚavailable_spaceÚspaces         r	   r$   zWriter._lineo   s`  € à˜v™ˆÜ�-Ó ¤3 t£9Ñ,¨t¯z©zÒ9ð
 #Ÿj™j¬3¨}Ó+=Ñ=ÄÀDÃ	ÑIˆOØ#ˆEØØ—j‘j  a¨Ó/ˆeØ˜’Ø×1Ñ1°$¸Ó>ÀÑBÀaÒGØð	 ð �qŠyà'¨!Ñ+�ØØŸ)™) C¨°©Ó3�%Ø˜Q’YØ×5Ñ5°d¸EÓBÀQÑFÈ!ÒKØð	 ð
 �qŠyàà�K‰K×Ñ˜m¨d°1°U¨mÑ;¸fÑDÔEØ˜˜a™˜�>ˆDð ! F¨1¡HÑ-ˆMô; �-Ó ¤3 t£9Ñ,¨t¯z©zÓ9ð> 	�‰×Ñ˜-¨$Ñ.°Ñ5Õ6r   c                 ó�   — |€g S t        |t        «      r|S 	 t        |t        «      rt        |«      S 	 |gS # t        $ r Y |gS w xY wr   )r    r!   r>   Ú	TypeError)r   Úinputs     r	   r=   zWriter._as_list“   s]   € Øˆ=ØˆIÜ�eœTÔ"ØˆLð	Ü˜%¤Ô%Ü˜E“{Ð"ð &ð
 ˆwˆøô ò 	Øàˆwˆð	ús   ˜7 ·	AÁA)éN   )r   )NNFNFNNN)NNNN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r(   r/   r:   rM   rR   rT   rW   r_   r$   r=   rZ   r   r	   r   r      s[   „ óò ò2ó5ò0ð =AØ?CØ(,ó2ð, KOØóò<(ò)òBòó"7óHr   r   c                 ó<   — d| vsJ d«       ‚| j                  dd«      S )zbEscape a string such that it can be embedded into a Ninja file without
    further interpretation.r   z$Ninja syntax does not allow newlinesrY   z$$r   )Ústrings    r	   Úescaperp   £   s)   € ð �vÑÐEÐEÓEÐà�>‰>˜#˜tÓ$Ð$r   )Ú__doc__r   Úrer
   Úobjectr   rp   rZ   r   r	   ú<module>rt      s,   ðñ
ó Û 	òIôNˆVô Nób%r   