
    <hKX                       % S SK Jr  S SKJr  S SKJr  S SKrS SKrSSK	J
r
JrJr  SSK	Jr  SS	K	Jr  SS
KJr  SSK	Jr  SSKJrJrJrJrJrJrJrJr  SSKJr  SSKJr  SSKJ r J!r!J"r"J#r#J$r$  SSK%J&r&  SSK'J(r(  \RR                  (       a  S SK*J+r+J,r,  SSK	J-r-  SSKJ.r.  SSK/J0r0  SSKJ1r1   " S S\,5      r2 " S S\,5      r3 " S S\,5      r4 " S S\,5      r5\Rl                  \7\Rp                  \Rr                  \Rt                  \Rv                  4   r<\!" S\ " \=\75      / S S!9r>S"\?S#'   \!" S$\ " \=\75      / S S!9r@S"\?S%'   S&/ S'Q0rA " S( S)5      rB " S* S+\
5      rCS-S, jrDg).    )annotations)path)PathN   )ExtensionModuleModuleReturnValue
ModuleInfo   )build)mesonlib)	OptionKey)mlog)CT_BUILD_BY_DEFAULTCT_INPUT_KWINSTALL_TAG_KW	OUTPUT_KWINSTALL_DIR_KW
INSTALL_KWNoneTypein_set_validator)
FeatureNew)InvalidArguments)ContainerTypeInfo	KwargInfo	noPosargstyped_kwargstyped_pos_args)ExternalProgram)read_linguas)Literal	TypedDict)ModuleState)Target)Interpreter)TYPE_varc                  z    \ rS rSr% S\S'   S\S'   S\S'   S\S'   S	\S
'   S	\S'   S\S'   S\S'   S\S'   S\S'   Srg)	MergeFile   T.List[T.Union[str, build.BuildTarget, build.CustomTarget, build.CustomTargetIndex, build.ExtractedObjects, build.GeneratedList, ExternalProgram, mesonlib.File]]inputstroutputboolbuild_by_defaultinstallT.Optional[str]install_dirinstall_tagT.List[str]args	data_dirspo_dirzLiteral['xml', 'desktop']type N__name__
__module____qualname____firstlineno____annotations____static_attributes__r8       x/mnt/mint/home/seanl/mnt/public/Repos/ladybird/Build/vcpkg/downloads/tools/meson-1.9.0-d1fcc2/mesonbuild/modules/i18n.pyr'   r'      sA     	 $$$$''r@   r'   c                  R    \ rS rSr% S\S'   S\S'   S\S'   S\S'   S\S	'   S\S
'   Srg)Gettext/   r3   r4   r5   r-   r/   r0   r1   	languagespresetr8   Nr9   r8   r@   rA   rC   rC   /   s%    $$r@   rC   c                  f    \ rS rSr% S\S'   S\S'   S\S'   S\S'   S	\S
'   S	\S'   S\S'   S\S'   Srg)ItsJoinFile8   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   	its_fileszOT.List[T.Union[build.BuildTarget, build.CustomTarget, build.CustomTargetIndex]]
mo_targetsr8   Nr9   r8   r@   rA   rH   rH   8   s6     	 $$$$ccr@   rH   c                  H    \ rS rSr% S\S'   S\S'   S\S'   S\S'   S\S	'   S
rg)XgettextProgramTF   r3   r4   r-   	recursiver/   r0   r1   r2   r8   Nr9   r8   r@   rA   rM   rM   F   s    $$$$r@   rM   r4   TdefaultlistifyzKwargInfo[T.List[str]]_ARGSr5   
_DATA_DIRSglib)z--from-code=UTF-8z--add-commentsz--keyword=_z--keyword=N_z--keyword=C_:1c,2z--keyword=NC_:1c,2z--keyword=g_dcgettext:2z--keyword=g_dngettext:2,3z--keyword=g_dpgettext2:2c,3z--flag=N_:1:pass-c-formatz--flag=C_:2:pass-c-formatz--flag=NC_:2:pass-c-formatz"--flag=g_dngettext:2:pass-c-formatz!--flag=g_strdup_printf:1:c-formatz!--flag=g_string_printf:2:c-formatz(--flag=g_string_append_printf:2:c-formatz--flag=g_error_new:3:c-formatz--flag=g_set_error:4:c-formatz)--flag=g_markup_printf_escaped:1:c-formatz--flag=g_log:3:c-formatz--flag=g_print:1:c-formatz--flag=g_printerr:1:c-formatz--flag=g_printf:1:c-formatz--flag=g_fprintf:2:c-formatz--flag=g_sprintf:2:c-formatz--flag=g_snprintf:3:c-formatc                      \ rS rSr% 0 rS\S'   SS jr                SS jrSS jrSS jr	          SS jr
\SS	 j5       rS
rg)XgettextProgram   zT.Dict[str, build.CustomTarget]	pot_filesc                    Xl         X l        g N)xgettextinterpreter)selfr\   r]   s      rA   __init__XgettextProgram.__init__   s     &r@   c                :   UR                  S5      (       d  US-  nU R                  U5      nU R                  R                  U-   n	U	R	                  SU R
                  R                  R                  5        35        U	R	                  SU R
                  R                  R                  5        35        U	R	                  S5        U(       a  [        U R                  U5      5      O/ n
U R                  XX5      nU(       a   U/n[        U5      nU	R	                  S5        O#[        U5      U
-   nS n
S nU	R	                  S5        [        R                  " SU R
                  R                  U R
                  R                  U R
                  R                  U	UU/UU
UU(       a  U/OS U(       a  U/OS SS9nU R!                  U5       H  nXR"                  U'   M     XR"                  UR%                  5       '   U R
                  R'                  UR(                  U5        U$ )	Nz.potz--directory=z--output=@OUTPUT@z--files-from=@INPUT@@INPUT@ zExtracting translations to {})depend_filesextra_dependsr/   r1   r2   description)endswith_get_source_filesr\   commandappendr]   environmentget_source_dirget_build_dirlist_get_depends_get_rsp_filer   CustomTargetsubdir
subproject_get_source_idrY   get_id
add_targetname)r^   rw   sourcesr4   rO   r/   r1   r2   source_filesri   dependsrsp_fileinputsrd   ct	source_ids                   rA   extractXgettextProgram.extract   s    }}V$$FND--g6--''$.d&6&6&B&B&Q&Q&S%TUVd&6&6&B&B&P&P&R%STU*+6?$t((12R%%d'KZF-LNN12,''1FGLNN9%##''((F'#+6;-D+6;-D9
  ,,W5I(*NN9% 6&(ryy{###BGGR0	r@   c                   [        5       nU GHK  n[        U[        R                  5      (       a  UR	                  U5        M6  [        U[
        5      (       ap  [        R                  " U5        UR	                  [        R                  R                  U R                  R                  U R                  R                  U5      5        M  [        U[        R                  5      (       a!  UR                  UR                  5       5        M  [        U[        R                  5      (       d  GM  UR                  UR!                  S5      R                  5       5        GMN     U$ )Nshared)set
isinstancer   Fileaddr+   check_direntry_issuesfrom_source_filer]   source_rootrr   r   BuildTargetupdateget_sourcesBothLibrariesget)r^   rx   ry   sources       rA   rh   !XgettextProgram._get_source_files   s    uF&(--00  (FC((..v6  !?!?@P@P@\@\^b^n^n^u^uw}!~FE$5$566##F$6$6$89FE$7$788##FJJx$8$D$D$FG  r@   c                   [        5       nU H  n[        U[        R                  5      (       aW  U R	                  UR                  5       5       H2  nX@R                  ;   d  M  UR                  U R                  U   5        M4     My  [        U[        R                  5      (       d  M  UR                  5       nX@R                  ;   d  M  UR                  U R                  U   5        M     U$ r[   )
r   r   r   r   rt   get_dependenciesrY   r   rq   ru   )r^   rx   rz   r   r~   s        rA   ro   XgettextProgram._get_depends   s    %F&%"3"344!%!4!4V5L5L5N!OI NN2DNN9$=> "P FE$6$677"MMO	.KKy 9:  r@   c                D   SR                  S U 5       5      nU H8  nUS[        R                   " UR                  UR                  5       5      -   -  nM:     [	        U5      [        S U 5       5      -   S-   nU[        R                  " 5       :  a  g [        U R                  R                  R                  U R                  R                  US-   5      nUR                  USS9  [        R                  R                  U R                  R                  UR                  5      $ )N
c              3  @   #    U  H  oR                  5       v   M     g 7fr[   )relative_name).0r   s     rA   	<genexpr>0XgettextProgram._get_rsp_file.<locals>.<genexpr>   s     R\6 4 4 6 6\s   c              3  >   #    U  H  n[        U5      S -   v   M     g7f)r   N)len)r   args     rA   r   r      s     9\R[3#c(Q,R[s   r   z.rspzutf-8)encoding)joinr   rr   get_filenamer   sumr   get_rsp_thresholdr   r]   rk   	build_dir
write_textr   from_built_filerw   )	r^   rw   ry   rz   	argumentssource_listdepestimated_cmdline_lengthr{   s	            rA   rp   XgettextProgram._get_rsp_file   s    
 iiR\RRC4$))CJJ8H8H8J"KKKK  $'{#3c9\R[9\6\#\_`#` #h&@&@&BB((44>>@P@P@W@WY]^dYdeK':}},,T-=-=-D-DhmmTTr@   c              #  J  #    U  H  n[        U[        R                  5      (       a  UR                  5       v   M6  [        U[        R                  5      (       d  MW  UR                  S5      R                  5       v   UR                  S5      R                  5       v   M     g 7f)Nstaticr   )r   r   r#   ru   r   r   )rx   r   s     rA   rt   XgettextProgram._get_source_id   so     F&%,,//mmo%FE$7$788jj*1133jj*1133 s   AB#AB#)r]   r\   N)r\   r   r]   r$   )rw   r+   rx   zT.List[SourcesType]r4   r3   rO   r-   r/   r-   r1   r0   r2   r0   returnbuild.CustomTarget)rx   T.Iterable[SourcesType]r   zT.Set[mesonlib.File])rx   r   r   zT.Set[build.CustomTarget])
rw   r+   ry   zT.Iterable[mesonlib.File]rz   zT.Iterable[build.CustomTarget]r   r3   r   zT.Optional[mesonlib.File])rx   z9T.Iterable[T.Union[SourcesType, build.CustomTargetIndex]]r   T.Iterable[str])r:   r;   r<   r=   rY   r>   r_   r   rh   ro   rp   staticmethodrt   r?   r8   r@   rA   rW   rW      s    13I.3'55,5 "5  	5
 5 -5 -5 2D5nUU$=U  >U "-	U 2K	U$ 4 4r@   rW   c                  ~  ^  \ rS rSr\" S5      rS)U 4S jjr\S*S j5       r\	" SS5      \
\" S\\\" S\\45      \\\\R+                  SS	9\R+                  S
S	9\" S\SS9\" S\S\" SS15      S95      S+S j5       5       5       r\" S\5      \" S\\R+                  SS	9\R*                  " SS9\R*                  " SS	9\" S\" \\5      / SS9\" S\\4\" \" \5      5      SS95      S,S j5       5       r\	" SS5      \
\" S\\\" S\\45      \\\\R+                  5       \" S\" \\5      5      \" S\" \\ RB                  5      SS95
      S-S  j5       5       5       r"\	" S!S"5      \" S!\\\#RH                  \ RJ                  \ RL                  \ RB                  4S#S$9\" S!\\" S%\'S&S9\\\5      S.S' j5       5       5       r(S(r)U =r*$ )/
I18nModule   i18nc                   > [         TU ]  U5        U R                  R                  U R                  U R
                  U R                  U R                  S.5        S S S S S S.U l        g )N)
merge_filegettextitstool_joinr\   )itstoolmsgfmtmsginitmsgmerger\   )	superr_   methodsr   r   r   r   r\   tools)r^   r]   	__class__s     rA   r_   I18nModule.__init__   s`    %//|| --	
 	 [

r@   c                    [         R                  " U R                  R                  5       U R                  5      nU Vs/ s H  n[         R                  " X#5      PM     sn$ s  snf )z,Returns source directories of relative paths)r   r   rk   rl   rr   )statedirssrc_dirds       rA   _get_data_dirsI18nModule._get_data_dirs  sH     ))E--<<>M/34t!		'%t444s    A!zi18n.merge_filez0.37.0r1   z0.51.0)sincez0.41.0r6   T)requiredr7   xmldesktop)rQ   	validatorc                   US   (       a  US   (       d  [        S5      eU R                  S   b"  U R                  S   R                  5       (       d5  UR                  S[        R
                  R                  S9U R                  S'   [        U R                  S   [        5      (       ao   U R                  S   R                  5       nUS   S:X  a  S	OS
n[        R                  " XF5      (       d)  SU S3US   -   SU S3-   n[        R                  " U5      e[        R                  " UR                  UR                  US   5      nU R!                  XS   5      n	U	(       a  SSR                  U	5      -   OS n
/ nUR#                  UR$                  R'                  5       5        UR#                  SSSU R                  S   R)                  5       -   /5        U
(       a  UR+                  U
5        UR#                  SSUS   U/5        US   (       a%  UR+                  S5        UR#                  US   5        US   nUc  US   nUS   b  US   /OS n[,        R.                  " SUR                  UR0                  UR$                  UUS   US   /UUS   US   b  US   /OS USS 9n[3        X/5      $ ! [        R                   a  n[        R                  " S5      UeS nAff = f)!Nr/   r1   zSi18n.merge_file: "install_dir" keyword argument must be set when "install" is true.r   for_machinez#i18n.merge_file requires GNU msgfmtr7   r   z>=0.19z>=0.19.7z$i18n.merge_file requires GNU msgfmt z to produce files of type: z (got: )r6   r5   --datadirs=:
--internalmsgfmthelperz	--msgfmt=rb   @OUTPUT@r4   --r.   r2   rc   r*   r,   Merging translations for {})r.   r/   r1   r2   rf   )r   r   foundfind_programr   MachineChoiceBUILDr   r   get_versionMesonExceptionversion_comparer   r   build_to_srcrr   r   extendrk   get_build_commandget_pathrj   r   rq   rs   r   )r^   r   r4   kwargshave_versionewant_versionmsgpodirddirsdatadirsri   r.   r2   r}   s                  rA   r   I18nModule.merge_file  s     )VM%:"#xyy::h'tzz(/C/I/I/K/K#(#5#5hHLbLbLhLh#5#iDJJx djj*O<<\#zz(3??A (.f~'B8
L++LGG<\NJefiopviww  }D  EQ  DR  RS  {T  T--c22		%,,ellF8<LM##E++>?6;=388E?2 _a 	u((::<=.$**X.7799
 	 NN8$	:vf~uEF&>NN4 NN6&>*!"45#%i0171F1Rvm,-X\LL7OH-9%39-3H3T./Z^#5
 !T**] ** \--.STZ[[\s   *J. .KKKzi18n.gettextz0.36.0)rQ   z0.50.0rE   rP   rF   )r   r   c                   S H  u  pEU R                   U   c6  UR                  US[        R                  R                  S9U R                   U'   U R                   U   R                  5       (       a  Mo  U(       a.  [        R                  " SSUR                  S9  [        S / 5      s  $ [        R                  " U< S3SSUR                  S9  M     US	   nS
U 3nUS   nU(       a  SSR                  U5      -   OS n	SR                  U R                  XS   5      5      n
U
(       a  SU
 3OS nUS   n/ n/ nUS   nU(       a+  [        U   n[        [        R                  " UU-   5      5      nU(       a  SSR                  U5      -   OS n[        R                  " UR                   UR"                  5      nUR$                  (       a)  [        R&                  " UR$                  UR"                  S9OS nUR(                  R+                  5       SSSU/-   nUR-                  SU 35        U(       a  UR-                  SU 35        U(       a  UR-                  U5        U(       a  UR-                  U5        U R                   S   R                  5       (       a/  UR-                  SU R                   S   R/                  5       -   5        [0        R2                  " US-   U/ UR$                  UR4                  UR(                  SS9nUR-                  U5        US   nUS   =(       d8    UR(                  R6                  R8                  R;                  [=        S 5      5      n[?        U[@        5      (       d   S!5       eU(       d>  [C        [        R                  " UR(                  RD                  UR$                  5      5      nU H  n[        RF                  RI                  UR(                  RD                  UR$                  US"-   5      n[0        RJ                  " U S#U S$3[        R                  " UR$                  US%5      UR4                  UR(                  U R                   S&   S'S(S)/U/U S$3/U[        R                  " UUS%5      /S*/S+S,9nUR-                  U5        UR-                  U5        M     [0        RL                  " US--   XR$                  UR4                  UR(                  5      nUR-                  U5        UR(                  R+                  5       SSS.U/-   nUR-                  SU 35        U(       a  UR-                  SU 35        U	(       a  UR-                  U	5        U(       a  UR-                  U5        U(       a  UR-                  U5        S/ HZ  nU R                   U   R                  5       (       d  M'  UR-                  S0U S13U R                   U   R/                  5       -   5        M\     [0        R2                  " US2-   U/ UR$                  UR4                  UR(                  SS9nUR-                  U5        [        UUU/U5      $ )3N))r   T)r   F)r   F)r\   FFr   r   z@Gettext not found, all translation (po) targets will be ignored.T)oncelocationz, not found, maintainer targets will not work)r   fatalr   r   z
--pkgname=rE   z--langs=z@@r   r5   r   r4   rF   z--extra-args=)startr   r   potz--source-root=z	--subdir=r\   z--xgettext=z-pot)default_envr/   r1   	localedirzfor mypyz.po-z.moLC_MESSAGESr   -or   rb   r   zBuilding translation {})r/   r1   r2   rf   z-gmo	update_po)r   r   r   =z
-update-po)'r   r   r   r   r   r   r   warningcurrent_noder   r   r   PRESET_ARGSrn   
OrderedSetr   r   root_subdirrr   relpathrk   r   rj   r   r   	RunTargetrs   coredataoptstoreget_value_forr   r   r+   r   
source_dirr   r   rq   AliasTarget)r^   r   r4   r   toolstrictpackagenamepkg_argrE   lang_arg	_datadirsr   
extra_argstargets
gmotargetsrF   preset_args	extra_argr   rr   potargs	pottargetr/   r1   lpo_file	gmotargetallgmotargetupdatepoargsupdatepotargets                                 rA   r   I18nModule.gettext[  se     mLDzz$'#(#5#5dUX`XnXnXtXt#5#u

4 ::d#))++LL!c&*U5G5GI,T266LLD8+W!X&*%%BTBTV m 1g{m,;'	8A:		) 44tHHT00{8KLM	09[,tF^
$&35
!%f-Kh11+
2JKLJ?IOdii
&;;t	ii 1 153D3DEHMell%2C2CDZ^##557<TY[b:cc}56NNYvh/0NN8$NN9%::j!''))NN=4::j+A+J+J+LLMOOK&$8'2u||UZUeUe$)$5$55J	y!#]+xu/@/@/I/I/R/R/`/`ajkvaw/x+s++7Z7+$TYYu/@/@/K/KU\\%Z[IAmm44U5F5F5Q5Q5:\\1U7LG**-q3'		%,,=9  !!H%tZC	=$%
 "YY{A}EF#H5I" NN9%i(+ . ((v)=z<<Y^YiYi).):):<|$((::<iYdfm?nnn[M:;)F8 45))	*+Dzz$%%''##baL4::d3C3L3L3N$NO , |)C\SUW\WcWcejeueu).):):O~& *i!H'RRr@   zi18n.itstool_joinz0.62.0rJ   rK   c                   US   (       a  US   (       d  [        S5      eU R                  S   c5  UR                  S[        R                  R
                  S9U R                  S'   US   nUR                  S/ 5      n/ nU HH  nUR                  [        R                  " UR                  5       UR                  5       S   5      5        MJ     / nUR                  UR                  R                  5       5        U R                  S   R                  5       n	UR                  S	SS
SSSSSSR                  S U	 5       5      -   /5        U(       am  U Hg  n
[        R                   " U
5      (       d6  [        R                  " UR                  R"                  UR$                  U
5      n
UR                  SU
/5        Mi     UR                  U5        US   nUc  US   nUS   b  US   /OS n[&        R(                  " SUR$                  UR*                  UR                  UUS   US   /UUUS   US   b  US   /OS USS9n[-        X/5      $ )Nr/   r1   zUi18n.itstool_join: "install_dir" keyword argument must be set when "install" is true.r   r   rK   rJ   r   r   r   z-irb   r   r   z
--itstool= c              3  N   #    U  H  n[         R                  " U5      v   M     g 7fr[   )shlexquote)r   cs     rA   r   *I18nModule.itstool_join.<locals>.<genexpr>  s     #HKqEKKNNKs   #%z--itsr.   r2   rc   r*   r,   r   )r.   re   r/   r1   r2   rf   )r   r   r   r   r   r   r   rj   r   r   
get_subdirget_outputsr   rk   r   get_commandisabsr  rr   r   rq   rs   r   )r^   r   r4   r   rK   rJ   	mo_fnamestargetri   itstool_cmdfnamer.   r2   r}   s                 rA   r   I18nModule.itstool_join  s<    )VM%:"#z{{::i ($)$6$6yhNdNdNjNj$6$kDJJy!L)
JJ{B/		 FTYYv'8'8':F<N<N<PQR<STU ! _a 	u((::<=jj+779)V)*388#HK#HHH	
 	 "zz%(( IIe&7&7&B&BELLRWXE/0 # 	y!!"45#%i0171F1Rvm,-X\LL7OH-$9%39-3H3T./Z^#5
  !T**r@   zi18n.xgettextz1.8.0r   )varargsmin_varargsrO   Fc                   SnU R                   U   b"  U R                   U   R                  5       (       d6  UR                  US[        R                  R
                  S9U R                   U'   US   (       a  US   (       d  [        S5      e[        [        R                  " SU R                   U   5      U R                  5      nUR                  " U0 UD6$ )Nr\   Tr   r/   r1   zQi18n.xgettext: "install_dir" keyword argument must be set when "install" is true.r   )r   r   r   r   r   r   r   rW   Tcastr]   r   )r^   r   r4   r   toolnamexgettext_programs         rA   r\   I18nModule.xgettext  s     ::h'tzz(/C/I/I/K/K#(#5#5h[c[q[q[w[w#5#xDJJx )VM%:"#vww*1662CTZZPXEY+Z\`\l\lm''888r@   )r   )r]   'Interpreter')r   'ModuleState'r   r   r   r3   )r   r6  r4   T.List['TYPE_var']r   z'MergeFile'r   r   )r   r6  r4   zT.Tuple[str]r   z	'Gettext'r   r   )r   r6  r4   r7  r   z'ItsJoinFile'r   r   )r   r"   r4   z!T.Tuple[str, T.List[SourcesType]]r   rM   r   r   )+r:   r;   r<   r=   r	   INFOr_   r   r   r   r   r   r   r   r   r+   r   r   r   r   rS   evolverT   r   r   r   r   r   rn   r   r   r   r   rq   r   r   r   r   r   r-   r\   r?   __classcell__)r   s   @rA   r   r      sk   fD
  5 5
 !8,-#x18$)(C$/&#u8H%QZI[8\]7+  -7+r NC()$'H-+0s;RQUV(O&s;'78		
cS )cSJ #X.-#x1+0s;<, 1$8J8J KVZ[6+  /6+p )OS3uGXGXZ_ZmZmot  pB  pB  3C  QR  S+tU3	9 S *	9r@   r   c                    [        U 5      $ r[   )r   )interps    rA   
initializer=  +  s    fr@   )r<  r5  r   r   )E
__future__r   osr   pathlibr   r   typingr0  rc   r   r   r	   r   r   optionsr   r   interpreter.type_checkingr   r   r   r   r   r   r   r   interpreterbaser   interpreterbase.exceptionsr   interpreterbase.decoratorsr   r   r   r   r   programsr   scripts.gettextr   TYPE_CHECKINGtyping_extensionsr    r!   r"   r#   r]   r$   r%   r'   rC   rH   rM   Unionr+   r   r   r   rq   SourcesTypern   rS   r>   rT   r   rW   r   r=  r8   r@   rA   <module>rM     sG   #     < <     \  \  \ ( 9 n n & *??4)*(I (  )  di d%9 % ''#x}}e.?.?ATATV[VhVhhiK !*
dC 	!  &/dC 	&
"    Ft4 t4no9 o9d	r@   