
    <h                        S SK Jr  S SKrS SKrS SKrS SKr\R                  (       a  SSKJ	r	   " S S\R                  S9r " S S	\5      r " S
 S\5      r " S S\5      rg)    )annotationsN   )	Argumentsc                     \ rS rSrSS jr\R                  SS j5       r\R                  SS j5       r\	\R                  SS j5       5       r
\	\R                  SS j5       5       r\	\R                  SS j5       5       r\	\R                  SS j5       5       r\	\R                  SS	 j5       5       r\	\R                  SS
 j5       5       rSS jrSrg)
SampleImpl   c                   UR                   U l         UR                  U l        [        R                  " SSU R                   R	                  5       5      U l        U R
                  R                  5       U l        U R
                  R                  5       U l	        SU l
        UR                  U l        UR                  (       a!  UR                  R                  S5      U l        g / U l        g )Nz	[^a-z0-9]_z1.0.0,)nameversionresublowerlowercase_tokenupperuppercase_token
capitalizecapitalized_tokenmeson_versionforcedepssplitdependencies)selfargss     ڀ/mnt/mint/home/seanl/mnt/public/Repos/ladybird/Build/vcpkg/downloads/tools/meson-1.9.0-d1fcc2/mesonbuild/templates/sampleimpl.py__init__SampleImpl.__init__   s    II	||!vvlC9JK#3399;!%!5!5!@!@!B$ZZ
48IIDIIOOC02    c                    g N r   s    r   create_executableSampleImpl.create_executable       r    c                    g r"   r#   r$   s    r   create_librarySampleImpl.create_library    r'   r    c                    g r"   r#   r$   s    r   exe_templateSampleImpl.exe_template$        	r    c                    g r"   r#   r$   s    r   exe_meson_templateSampleImpl.exe_meson_template)   r.   r    c                    g r"   r#   r$   s    r   lib_templateSampleImpl.lib_template.   r.   r    c                    g r"   r#   r$   s    r   lib_test_templateSampleImpl.lib_test_template3   r.   r    c                    g r"   r#   r$   s    r   lib_meson_templateSampleImpl.lib_meson_template8   r.   r    c                    g r"   r#   r$   s    r   
source_extSampleImpl.source_ext=   r.   r    c                F    SR                  S U R                   5       5      $ )N c              3  .   #    U  H  nS U S3v   M     g7f)z
  dependency('z'),Nr#   ).0ds     r   	<genexpr>2SampleImpl._format_dependencies.<locals>.<genexpr>C   s     L:KQ)!C0:Ks   )joinr   r$   s    r   _format_dependenciesSampleImpl._format_dependenciesB   s    wwL$:K:KLLLr    )r   r   r   r   r   r   r   r   N)r   r   returnNonerI   str)rI   zT.Optional[str])__name__
__module____qualname____firstlineno__r   abcabstractmethodr%   r)   propertyr,   r0   r3   r6   r9   r<   rF   __static_attributes__r#   r    r   r   r      s   F 	  	                   Mr    r   )	metaclassc                  ,    \ rS rSrSrSS jrSS jrSrg)	ClassImplF   z+For Class based languages, like Java and C#c                   U R                    SU R                   3n[        R                  R	                  U5      (       dQ  [        USSS9 nUR                  U R                  R                  U R                  U R                   S95        S S S 5        U R                  (       d$  [        R                  R	                  S5      (       dx  [        SSSS9 nUR                  U R                  R                  U R                  U R                  UU R                  U R                  U R                  5       S95        S S S 5        g g ! , (       d  f       N= f! , (       d  f       g = f)N.wutf-8encoding)project_name
class_namemeson.buildr_   exe_namesource_namer   r   r   )r   r<   ospathexistsopenwriter,   formatr   r   r0   r   r   rF   r   rd   fs      r   r%   ClassImpl.create_executableJ   s   //0$//1BCww~~k**k39Q))00dii<@<R<R 1 T U : ::RWW^^M::mS7;q//66DII@D		CN?C||EIEWEWDHD]D]D_ 7 a b <; ; :9 <;s   >D?A$E?
E
Ec                ~   U R                    SU R                   3nU R                    SU R                   3nU R                  U R                  U R                    S3U R                   UUU R                   S3U R                  U R                  U R                  U R
                  U R                  U R                  5       S.n[        R                  R                  U5      (       d?  [        USSS9 nUR                  U R                  R                  " S	0 UD65        S S S 5        U R                  (       ac  [        R                  R                  U5      (       d?  [        USSS9 nUR                  U R                  R                  " S	0 UD65        S S S 5        U R                   (       d$  [        R                  R                  S5      (       d@  [        SSSS9 nUR                  U R"                  R                  " S	0 UD65        S S S 5        g g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)
NrZ   _test._test)utokenltoken
class_testr`   source_filetest_source_filetest_exe_namer_   lib_name	test_namer   r   r   r[   r\   r]   ra   r#   )r   r<   r   r   r   r   r   rF   re   rf   rg   rh   ri   r3   rj   r6   r   r9   r   rw   rx   kwargsrl   s        r   r)   ClassImpl.create_libraryY   s   ,,-Qt.?@--.fT__4EF	 00 00#'#9#9":% @ $ 6 6!)&/&*&:&:%;5#A"&))"22#33!\\#'#5#5"&";";"= ww~~h''hg6!))00:6:; 7!!"''..*C*Ciw71..55??@ 8::RWW^^M::mS7;q//66@@A <; ; 76 87 <;s$   .,H",H,H.
H
H+.
H<r#   NrH   )rM   rN   rO   rP   __doc__r%   r)   rT   r#   r    r   rW   rW   F   s    5bBr    rW   c                  6    \ rS rSrSrSS jrS	S jrSS jrSrg)
FileImplu   z$File based languages without headersc                   U R                    SU R                   3n[        R                  R	                  U5      (       dF  [        USSS9 nUR                  U R                  R                  U R                  S95        S S S 5        U R                  (       d$  [        R                  R	                  S5      (       dx  [        SSSS9 nUR                  U R                  R                  U R                  U R                  UU R                  U R                  U R                  5       S95        S S S 5        g g ! , (       d  f       N= f! , (       d  f       g = f)NrZ   r[   r\   r]   )r_   ra   rb   )r   r<   re   rf   rg   rh   ri   r,   rj   r   r   r0   r   r   rF   rk   s      r   r%   FileImpl.create_executabley   s    --.a/@Aww~~k**k39Q))00dii0HI :::RWW^^M::mS7;q//66DII@D		CN?C||EIEWEWDHD]D]D_ 7 a b <; ; :9 <;s   3D4A$E4
E
Ec                   U R                   U R                  U R                  U R                  U R                  SS  S3U R                  U R                   SU R                   3U R                   SU R                   3U R                   S3U R                  U R                  U R                  U R
                  U R                  U R                  5       S.$ )zgGet Language specific keyword arguments

:return: A dictionary of key: values to fill in the templates
r      _funcrZ   ro   rp   )rq   rr   
header_dirr`   function_name	namespacert   ru   rv   r_   rw   rx   r   r   r   )r   r   r   r<   r   r   r   rF   r$   s    r   
lib_kwargsFileImpl.lib_kwargs   s     ****..00 $ 4 4Qq 9:%@--"2231T__4EF#'#7#7"8t>O P $ 4 45U; II,,--||!// 557
 	
r    c                   U R                    SU R                   3nU R                    SU R                   3nU R                  5       n[        R                  R                  U5      (       d?  [        USSS9 nUR                  U R                  R                  " S0 UD65        S S S 5        U R                  (       ac  [        R                  R                  U5      (       d?  [        USSS9 nUR                  U R                  R                  " S0 UD65        S S S 5        U R                  (       d$  [        R                  R                  S5      (       d@  [        SSSS9 nUR                  U R                  R                  " S0 UD65        S S S 5        g g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)NrZ   ro   r[   r\   r]   ra   r#   )r   r<   r   re   rf   rg   rh   ri   r3   rj   r6   r   r9   ry   s        r   r)   FileImpl.create_library   sI   **+1T__,=>++,F4??2CD	"ww~~h''hg6!))00:6:; 7!!"''..*C*Ciw71..55??@ 8::RWW^^M::mS7;q//66@@A <; ; 76 87 <;s$   6,F*,F%,F6
F"%
F36
Gr#   NrH   rI   zT.Dict[str, str])	rM   rN   rO   rP   r|   r%   r   r)   rT   r#   r    r   r~   r~   u   s    .b
.Br    r~   c                     ^  \ rS rSr\\R                  SS j5       5       r\\R                  SS j5       5       rSU 4S jjr	S	U 4S jjr
SrU =r$ )
FileHeaderImpl   c                    g r"   r#   r$   s    r   
header_extFileHeaderImpl.header_ext   r.   r    c                    g r"   r#   r$   s    r   lib_header_template"FileHeaderImpl.lib_header_template   r.   r    c                `   > [         TU ]  5       nU R                   SU R                   3US'   U$ )NrZ   header_file)superr   r   r   )r   rz   	__class__s     r   r   FileHeaderImpl.lib_kwargs   s6    #%#'#7#7"8$//9J K}r    c                6  > [         TU ]  5         U R                  5       n[        R                  R                  US   5      (       dB  [        US   SSS9 nUR                  U R                  R                  U5      5        S S S 5        g g ! , (       d  f       g = f)Nr   r[   r\   r]   )
r   r)   r   re   rf   rg   rh   ri   r   
format_map)r   rz   rl   r   s      r   r)   FileHeaderImpl.create_library   sw     "ww~~f]344f]+S7Cq00;;FCD DC 5CCs   +B


Br#   rK   r   rH   )rM   rN   rO   rP   rS   rQ   rR   r   r   r   r)   rT   __classcell__)r   s   @r   r   r      sV         
E Er    r   )
__future__r   rQ   re   r   typingTTYPE_CHECKINGminitr   ABCMetar   rW   r~   r   r#   r    r   <module>r      s_   
 # 
 	 	 ??!3M3;; 3Ml,B
 ,B^5Bz 5BpEX Er    