
    <h                      % S r SSKJr  SSKrSSKrSSKrSSKrSSKrSSKrSSK	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  SS
KJr  SSKJrJrJrJrJr  SSKJrJr  SSK J!r!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-J.r.J/r/J0r0  SSK,J1r1J2r2J3r3  SSK4J5r5  SSKJ6r6J7r7J8r8J9r9J:r:J;r;  SSK<J=r=  SSK>J?r?  SSK@JArA  \
R                  (       a  SSKCJDrDJErEJFrF  SSKJGrG  SSKJHrH  SSKIJJrJ  SSKJKrK  SSK,JLrLJMrM  SSKJNrN  SSK>JOrO   " S S\F5      rP " S  S!\F5      rQ " S" S#\F5      rR " S$ S%\F5      rS " S& S'\F5      rT " S( S)\F5      rU " S* S+\F5      rV " S, S-\F5      rW " S. S/\F5      rX " S0 S1\F5      rY " S2 S3\Y5      rZ " S4 S5\Y5      r[\
R                  \\O\?4   r]S6\^S7'   \2" S8\_S9S:9r`S;\^S<'   \2" S=\3" \a\b5      / S9S>9rcS?\^S@'   \(R                  " SASB9\'\2" SC\b\)45      \2" SD\b\)45      /reSE\^SF'   SLSG jrfSHrg " SI SJ\5      rhSMSK jrig)NzThis module provides helper functions for Gnome/GLib related
functionality such as gobject-introspection, gresources and gtk-doc    )annotationsN   )ExtensionModule	GirTargetGResourceHeaderTargetGResourceTarget
ModuleInfoModuleReturnValueTypelibTarget
VapiTarget   )build)interpreter)mesonlib)mlog)CustomTargetCustomTargetIndex
ExecutableGeneratedListInvalidArguments)
DependencyInternalDependency)PkgConfigDependencyPkgConfigInterface)
DEPENDS_KWDEPEND_FILES_KWENV_KWINSTALL_DIR_KW
INSTALL_KWNoneTypeDEPENDENCY_SOURCES_KWin_set_validator)	noPosargsnoKwargs
FeatureNewFeatureDeprecated)typed_kwargs	KwargInfoContainerTypeInfo)typed_pos_args)MachineChoiceMesonException
OrderedSet
Popen_safe	join_args	quote_arg)	OptionKey)OverrideProgram)read_linguas)Literal	TypeAlias	TypedDict)ModuleState)BuildTarget)Compiler)Interpreter)TYPE_varTYPE_kwargs)FileOrString)ExternalProgramc                  H    \ rS rSr% S\S'   S\S'   S\S'   S\S'   S\S'   S	rg
)PostInstall2   boolglib_compile_schemasT.List[str]gio_querymodulesgtk_update_icon_cacheupdate_desktop_databaseupdate_mime_database N__name__
__module____qualname____firstlineno____annotations____static_attributes__rI       u/mnt/mint/home/seanl/public/Repos/ladybird/Build/vcpkg/downloads/tools/meson-1.9.0-b14116/mesonbuild/modules/gnome.pyr@   r@   2   s     ""%%##!%%""rQ   r@   c                  *    \ rS rSr% S\S'   S\S'   Srg)CompileSchemas9   rB   build_by_defaultT.List[FileOrString]depend_filesrI   NrJ   rI   rQ   rR   rT   rT   9   s    **rQ   rT   c                  >    \ rS rSr% S\S'   S\S'   S\S'   S\S'   Srg	)
Yelp>   rD   	languagesmediasourcesrB   symlink_mediarI   NrJ   rI   rQ   rR   rZ   rZ   >   s    rQ   rZ   c                  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)CompileResourcesE   rB   rV   T.Optional[str]c_namez?T.List[T.Union[mesonlib.File, CustomTarget, CustomTargetIndex]]dependenciesexportrD   
extra_argsgresource_bundleinstallinstall_dirinstall_header
source_dirrI   NrJ   rI   rQ   rR   ra   ra   E   s<    UU$$rQ   ra   c                      \ 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\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   Srg)GenerateGirR   rB   rV   zT.List[Dependency]re   rc   
doc_formatrD   export_packagesrg   fatal_warningsheaderidentifier_prefixz'T.List[T.Union[build.IncludeDirs, str]]include_directoriesT.List[T.Union[str, GirTarget]]includesri   install_dir_girinstall_dir_typelibz9T.List[T.Union[build.SharedLibrary, build.StaticLibrary]]	link_withstr	namespace	nsversion3T.List[T.Union[FileOrString, build.GeneratedTypes]]r^   symbol_prefixrI   NrJ   rI   rQ   rR   rn   rn   R   sk    ((##$$&&DD11((,,LLDD""rQ   rn   c                      \ 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\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S rg!)"GtkDocg   'T.List[T.Union[str, build.IncludeDirs]]src_dirr{   	main_sgmlmain_xmlmodule_versionr|   z&Literal['xml', 'smgl', 'auto', 'none']moderD   	html_args	scan_argsscanobjs_argsfixxref_args	mkdb_argsz3T.List[T.Union[build.GeneratedTypes, FileOrString]]content_filesignore_headersrj   rB   checkri   rW   gobject_typesfilehtml_assetsexpand_content_filesc_argsru   ET.List[T.Union[Dependency, build.SharedLibrary, build.StaticLibrary]]re   rI   NrJ   rI   rQ   rR   r   r   g   s    8844""!!JJ##  //))22DD[[rQ   r   c                      \ 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\S'   S\S'   S\S'   Srg)GdbusCodegen   rW   r^   rD   rg   rc   interface_prefixr|   rB   object_managerrV   zT.List[T.List[str]]r   rk   rj   docbookrstmarkdownz,Literal['all', 'none', 'objects', 'default']autocleanuprI   NrJ   rI   rQ   rR   r   r      sP    %%))""(($$  !!AArQ   r   c                      \ 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\S'   S\S'   S\S'   S\S'   Srg)
GenMarshal   rc   build_alwayszT.Optional[bool]build_always_stalerV   zT.List[mesonlib.File]rX   rD   rg   rj   rB   rk   internalnostdincprefixskip_sourcerW   r^   stdincvalist_marshallersrI   NrJ   rI   rQ   rR   r   r      sS    %%,,**++$$%%  rQ   r   c                  \    \ rS rSr% S\S'   S\S'   S\S'   S\S	'   S\S
'   S\S'   S\S'   Srg)GenerateVapi   rv   r^   rc   rj   rB   ri   rD   	vapi_dirsmetadata_dirsgir_dirsz(T.List[T.Union[str, InternalDependency]]packagesrI   NrJ   rI   rQ   rR   r   r      s+    00$$""::rQ   r   c                  >    \ rS rSr% S\S'   S\S'   S\S'   S\S'   Srg	)
_MkEnumsCommon   rB   rk   rc   rj   rt   r   rI   NrJ   rI   rQ   rR   r   r      s    $$**&&rQ   r   c                  H    \ rS rSr% S\S'   S\S'   S\S'   S\S'   S\S'   S	rg
)MkEnumsSimple   rW   r^   r{   header_prefix	decoratorfunction_prefixbody_prefixrI   NrJ   rI   rQ   rR   r   r      s    %%rQ   r   c                      \ 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\S'   S\S'   Srg)MkEnums   r~   r^   zT.Optional[FileOrString]
c_template
h_templaterc   commentseprodfheadfprodftailvheadvprodvtailz=T.List[T.Union[BuildTarget, CustomTarget, CustomTargetIndex]]dependsrI   NrJ   rI   rQ   rR   r   r      sJ    DD,,,,!!NNrQ   r   r5   ToolTyperV   TdefaultzKwargInfo[bool]_BUILD_BY_DEFAULTrg   r   listifyzKwargInfo[T.List[str]]_EXTRA_ARGS_KWrk   namert   r   zT.List[KwargInfo]_MK_ENUMS_COMMON_KWSc                   SnU (       d  g[        S U  5       5      (       a  [        U 5      S:X  a  gU$ [        S U  5       5      (       d5  [        U 5       H%  u  p#[        U[        5      (       a  M  SUS-    S3s  $    g[        U 5       H8  u  p#[        U5      S:w  d  [        S	 U 5       5      (       a  M-  SUS-    S
U 3s  $    g)z+Validate gdbus-codegen annotations argumentz8must be made up of 3 strings for ELEMENT, KEY, and VALUENc              3  B   #    U  H  n[        U[        5      v   M     g 7fN
isinstancer{   .0annots     rR   	<genexpr>(annotations_validator.<locals>.<genexpr>   s     =Zs##      c              3  B   #    U  H  n[        U[        5      v   M     g 7fr   )r   listr   s     rR   r   r      s     BkUE4((kr   zelement r   z must be a listc              3  B   #    U  H  n[        U[        5      v   M     g 7fr   r   )r   is     rR   r   r      s     )Le*Q*<*<er    )alllen	enumerater   r   )r   badlistcr   s       rR   annotations_validatorr      s     IG	==	=	={q NBkBBB!+.HAeT**!!A#o66 /  "+.HA5zQc)Le)L&L&L!!A#ay11 / rQ   z	>= 2.51.1c            "      2  ^  \ rS rSr\" S5      rSU 4S jjrSS jr\R                  SS j5       r
\SS j5       r\SS j5       r\" S\" S	\S
S9\" S\" \\5      / SS9\" S\S
S9\" S\S
SS9\" S\S
SS95      \\" SS5      SS j5       5       5       r\" S\\\R0                  \\\45      \" S\\\\R>                  " SSS9\ \" S\\!45      \" S\" \\R0                  \\45      / SS9\" S\S
SS9\" S\S
SS9\" S\" \\5      / SS95          SS  j5       5       r"\          SS! j5       r#  S         SS" jjr$            SS# jr%  S           SS$ jjr&  SS% jr'SS& jr(SS' jr)SS( jr*SS) jr+\,RZ                  " S*S+9SS, j5       r.\  SS. j5       r/\SS/ j5       r0\SS0 j5       r1\SS1 j5       r2\  SS2 j5       r3\SS3 j5       r4\  SS4 j5       r5\        SS6 j5       r6                SS7 jr7\        SS8 j5       r8\        SS9 j5       r9\SS: j5       r:\SS; j5       r;\SS< j5       r<\" S=\=\>R~                  \>R                  4S>S?9\" S=\\R?                  S@SA9\\AR>                  " SBSA9\" S\" \\B5      / SS9\" SC\\!4SDSA9\" SE\" \\5      / SS9\" SF\S
SGS9\" SH\" \\5      / SS9\" SI\" \\5      / SS9\" SJ\" \\\>R                  45      / SS9\" S-\" \\\D45      / SS9\" SK\\!4SLSA9\" SM\\\!4S
SN0SO SP9\" SQ\\!4SLSA9\" SR\\\!4S
SS0ST SP9\" SU\" \\>R~                  \>R                  45      / SS9\" SV\SSW9\" S5\SSW9\" SX\" \\\R0                  \\\45      / SS9\" SY\" \\5      / SS95          SSZ j5       5       rE\\" S[\R?                  S@SA9\F5      SS\ j5       5       rG\" S]\\S^9\" S]\" S_\" \\5      S/ S`SaSb9\" Sc\" \\5      S/ Sd9\" SX\" \\5      S/ Sd9\" Se\SS95      SSf j5       5       rH\" Sg\5      \" Sg\" Sh\" \\5      Si/ SSj9\" Sk\S
SlS9\" Sm\" \\\R0                  \\\45      / SS9\" S\" \\B\>R~                  \>R                  45      S/ Sd9\" Sn\" \\\R0                  45      / SS9\" So\" \\5      / SS9\" Sp\" \\\R0                  45      / SS9\" Sq\" \\5      / SS9\" Sr\" \\\R0                  45      / SS9\" Ss\" \\5      / SS9\" SJ\" \\\>R                  45      S/ Sd9\" St\SS9\" Su\" \\5      / SS9\" Sv\\!45      \" Sw\\!45      \" Sx\" \\5      / SS9\" Sy\SzS\I" 1 S{k5      S|9\" S}\S~SiS9\" SV\S~SS9\" S\" \\5      / SS9\" S\" \\5      / SS9\" S\" \\\>R                  45      SSS95      SS j5       5       rJ        SS jrK\L\" S\5      SS j5       5       rM\" S\\\R0                  \\\4/S9\" S\R?                  S@SA9\NR>                  " SSA9\" S\" \\5      S/ SSj9\" S\\!45      \" SV\\!45      \" S\S
S9\" S\" \\\45      / \OS S9\" S\S
SS9\" S\\!45      \" S\\!4SSA9\" S\\!4SSA9\" S\SS\I" 1 Sk5      S|9\ R>                  " SSA95          SS j5       5       rP\" S\5      \" S/\QQ\RP\" SX\" \\\R0                  \\\45      SSS9P\" S\\R0                  \!45      P\" S\\R0                  \!45      P\" S\\!45      P\" S\\!45      P\" S\\!45      P\" S\\!45      P\" S\\!45      P\" S\\!45      P\" S\\!45      P\" S\\!45      P76 SS j5       5       rS\" SS5      \" S\5      \" S/\QQ\" SX\" \\\R0                  45      SSS9P\" S\S~S9P\" S\S~S9P\" S\S~S9P\" S\S~S9P76 SS j5       5       5       rTS
S*S*S.               SS jjrU\" S\5      \" S\FR>                  " SLSA9\RR>                  " SLSA9\R>                  " SS9\ \" S\" \\5      S/ Sd9\" S\S
S9\" S\S
S9\" S\\!45      \" S\S
S9\" SX\" \\\R0                  4S
S9SSS9\" S\S
S9\" S\S
S95      SS j5       5       rV  SS jrWSS jrXSS jrY\" S\5      \" S\\ \" SX\" \\\D4S
S9SSS9\" S\" \\5      S/ Sd9\" S\" \\5      S/ Sd9\" S\" \\5      S/ Sd9\" S\" \\\Z45      S/ Sd95      SS j5       5       r[Sr\U =r]$ )GnomeModule   gnomec                  > [         TU ]  U5        S U l        S U l        S U l        SU l        / U l        SU l        SU l        SU l	        S U l
        S U l        U R                  R                  U R                  U R                  U R                   U R"                  U R$                  U R&                  U R(                  U R*                  U R,                  U R.                  U R0                  U R2                  S.5        g )NF)post_installcompile_resourcesgenerate_gircompile_schemasyelpgtkdocgtkdoc_html_dirgdbus_codegenmkenumsmkenums_simple
genmarshalgenerate_vapi)super__init__gir_dep	giscanner
gicompilerinstall_glib_compile_schemasinstall_gio_querymodulesinstall_gtk_update_icon_cacheinstall_update_desktop_databaseinstall_update_mime_databasedevenvnative_glib_versionmethodsupdater   r   r   r   r   r   r   r   r   r   r   r   )selfr   	__class__s     rR   r   GnomeModule.__init__   s    %/3/304,1)57%-2*/4,,1)AE48  --!%!7!7 --#33IIkk#33!//||"11//!//
 	rQ   c                   U R                   cm  [        SUR                  SSS.5      nUR                  5       (       a!  UR	                  5       U l         U R                   $ [
        R                  " S5        SU l         U R                   $ )Nglib-2.0TF)nativerequiredz]Could not detect glib version, assuming 2.54. You may get build errors if your glib is older.z2.54)r  r   environmentfoundget_versionr   warning)r	  stateglib_deps      rR   _get_native_glib_version$GnomeModule._get_native_glib_version  s    ##+*:u7H7H6:+NPH~~+3+?+?+A(
 '''  O P+1('''rQ   c                    [         R                  " U R                  U5      [        5      (       d,  [        R
                  " S[        R                  " S5      SSS9  g g )NztGLib compiled dependencies do not work reliably with 
the current version of GLib. See the following upstream issue:z1https://bugzilla.gnome.org/show_bug.cgi?id=774368TFoncefatal)r   version_comparer  gresource_dep_needed_versionr   r  boldr	  r  s     rR   __print_gresources_warning&GnomeModule.__print_gresources_warning'  sQ    ''(E(Ee(L(DF FLL Z#VW"%1FrQ   c                 Z    [         R                  " S[         R                  " S5      SSS9  g )NzCode generated with gdbus_codegen() requires the root directory be added to
  include_directories of targets with GLib < 2.51.3:z/https://github.com/mesonbuild/meson/issues/1387TFr  )r   r  r  rI   rQ   rR   _print_gdbus_warning GnomeModule._print_gdbus_warning0  s&     LYYPQe	-rQ   c           	     h    SSSSSSSSS.nX!   nUR                  SS5      nU R                  XU5      $ )Nzgio-2.0r  gobject-introspection-1.0)gio-querymodulesglib-compile-schemasglib-compile-resourcesgdbus-codegenglib-genmarshalglib-mkenumsg-ir-scannerg-ir-compiler-_)replace	find_tool)r  tooltool_mapdepnamevarnames        rR   
_find_toolGnomeModule._find_tool7  sM     !*$-&/&)&78	
 .,,sC(tg66rQ   zgnome.post_installrC   Fr   rE   Tr   rF   rG   z0.59.0)r   sincerH   z0.64.0z0.57.0c                   / n[         R                  R                  UR                  R	                  5       UR                  R                  5       5      nUS   (       a  U R                  (       dn  SU l        U R                  US5      n[         R                  R                  USS5      nUR                  R                  Xg/5      nSUl
        UR                  U5        US    H  n	XR                  ;  d  M  U R                  R                  U	5        U R                  US5      n[         R                  R                  UR                  R	                  5       U	5      n
UR                  R                  Xj/5      nSUl
        UR                  U5        M     US   (       a  U R                  (       d  SU l        UR                  S	S
S9n[        U[         5      =(       d    UR#                  5       nU(       d  UR                  S5      n[         R                  R                  USS5      nUR                  R                  USSSU/5      nSUl
        UR                  U5        US   (       a  U R$                  (       dn  SU l        UR                  S5      n[         R                  R                  US5      nUR                  R                  USU/5      nSUl
        UR                  U5        US   (       a}  U R&                  (       dl  SU l        UR                  S5      n[         R                  R                  US5      nUR                  R                  Xm/5      nSUl
        UR                  U5        [)        S U5      $ )NrC   Tr(  r  schemasrE   r'  rF   zgtk4-update-icon-cacheFr  zgtk-update-icon-cacheiconshicolor-qz-tz-frG   zupdate-desktop-databaseapplicationsrH   zupdate-mime-databasemime)ospathjoinr  
get_prefixget_datadirr   r7  backendget_executable_serialisationskip_if_destdirappendr  r  find_programr   r   r  r  r  r
   )r	  r  argskwargsrvdatadir_absprog
schemasdirscriptd	moduledirr  icondirappdirs                 rR   r   GnomeModule.post_installG  s    :<ggll5#4#4#?#?#A5CTCTC`C`Cbc()$2S2S04D-??5*@ADk:yIJ]]??@RSF%)F"IIf*+A555--44Q7u.@AGGLL):):)E)E)GK	CCTDUV)-&		&! , )*43U3U15D.%%&>%ODtZ0@DJJLE))*ABggll;CG]]??tTSWY`@abF%)F"IIf+,T5Y5Y37D0%%&?@DWW\\+~>F]]??tV@TUF%)F"IIf()$2S2S04D-%%&<=DWW\\+v6F]]??OF%)F"IIf r**rQ   zgnome.compile_resourcesrk   z0.37.0)r   r9  rd   re   rf   rh   rl   c                
   U R                  U5        U R                  U5      nU R                  US5      nUS/nUS   nUS   nUu  p/ n/ nU H  n[        U[        R
                  5      (       a  UR                  UR                  5        M?  UR                  U5        UR                  UR                  5       5        [        R                  " U[        5      (       a  M  Sn[        U5      e   [        R                  " U[        5      (       Gd  [        U
[        R
                  5      (       a  U
R                  (       aN  [        R                  R                  UR                   R#                  5       U
R                  U
R$                  5      nO[        R                  R                  U
R                  U
R$                  5      nOU[        U
[&        [(        [*        45      (       a  [        S5      e[        R                  R                  UR                  U
5      nU R-                  XXx5      u  npO/ nU Vs/ s H8  n[        R                  R                  UR.                  UR                  U5      PM:     nnX{-  nUR                  [        R                  R                  UR.                  UR                  5      5        [1        [3        S U 5       5      5      nU H
  nUSU/-  nM     US	   (       a
  US
US	   /-  nUS   (       d  US/-  nU/ SQ-  nXcS   -  nUS   nU(       a  U	 S3nU	 S3nO}SUR                   R4                  R6                  R8                  ;   a  U	 S3nU	 S3nODSUR                   R4                  R6                  R8                  ;   a  U	 S3nU	 S3nO[        S5      eUS   (       a'  U(       d  [        S5      eUS   (       d  [        S5      eUS   nU(       a  U(       a  [        S5      eU(       a  US   (       d  [        S5      eS n[        R                  " U[        5      (       d  UnO U S 3n[:        R:                  " U5      S!S"/-   n[=        UUR                  UR>                  UR                   UU
/U/US#   UUUUS   US   (       a  US   /O/ S$/S%9nUUl         U(       a  [C        UU/5      $ US   =(       d8    UR                   R4                  RD                  RG                  [I        S&5      5      n[        U[J        5      (       d   S'5       e[M        U	 S(3UR                  UR>                  UR                   UU
/U	 S)3/US#   UUU/S*/S+9nUU/n[C        UU5      $ s  snf ),Nr)  @INPUT@rl   re   zThe "dependencies" argument of gnome.compile_resources() cannot
be used with the current version of glib-compile-resources due to
<https://bugzilla.gnome.org/show_bug.cgi?id=774368>a4  Resource xml files generated at build-time cannot be used with gnome.compile_resources() in the current version of glib-compile-resources because we need to scan the xml for dependencies due to <https://bugzilla.gnome.org/show_bug.cgi?id=774368>
Use configure_file() instead to generate it at configure-time.c              3  `   #    U  H$  n[         R                  R                  U5      v   M&     g 7fr   )rB  rC  normpath)r   dirs     rR   r   0GnomeModule.compile_resources.<locals>.<genexpr>  s"     %S{bgg&6&6s&;&;{s   ,.--sourcedirrd   z--c-namerf   
--internal)z
--generatez--target@OUTPUT@rg   rh   z
.gresource
_gresourcer   .c_ccppz.cpp_cppzFCompiling GResources into code is only supported in C and C++ projectsri   zGThe install kwarg only applies to gresource bundles, see install_headerrj   z[gnome.compile_resources: "install_dir" keyword argument must be set when "install" is true.rk   z<The install_header kwarg does not apply to gresource bundlesz7GResource header is installed yet export is not enabledz.dz--dependency-filez	@DEPFILE@rV   runtime)rV   depfilerX   extra_dependsri   rj   install_tag
includedirfor mypy_h.hdevel)rV   rh  ri   rj   ri  )'&_GnomeModule__print_gresources_warningr  r7  r   r   FilerJ  subdir
get_subdirr  r  r,   is_builtrB  rC  rD  r  get_build_dirfnamer   r   r   _get_gresource_dependenciesbuild_to_srcr   r-   coredata	compilershostcopyr   
subprojectsource_dirsr
   optstoreget_value_forr1   r{   r   )r	  r  rL  rM  glib_versionglib_compile_resourcescmdr}  re   target_name
input_filesubdirsr   depmifilerX   rS  rl   	gresourceoutputr   rk   rg  
target_cmdtarget_crj   target_hrN  s                                rR   r   GnomeModule.compile_resources}  s5     	''.44U;!%8P!Q1G0S\*n-"&  "DFC#x}}--szz*s#s~~/0//>Z[[NA )++   ''6RSS
 *hmm44 &&GGLL):):)H)H)JJL]L]_i_o_opEGGLL):):J<L<LMEJ7H-(XYY$ &b c c U\\:>-1-M-Mk.9*L'7 L S^^R]Qrww||E$6$6aHR]^277<<(:(:ELLIJ :%S{%SST%JM:..C & (Jx 011ChL>!C55l##-.	#}J/F!]*-De''00::???'=+%b)%++44>>CCC'=-%d+$%mnn)$%nooM*$  &C  D  D 01i !_``&"2 !Z[[#'''6RSSJmG3+>*LLJ"LLLH#$67%!9%39-3H./b"
   +$Xz::]+yu/@/@/I/I/R/R/`/`ajkwax/y+s++7Z7+(m2LLL}B #$67!"$ 	
 ! R((y _s   2?U2c           	        SUS/nUSU R                   /-  nU H2  nUS[        R                  R                  U R                   U5      /-  nM4      [	        X@R
                  R                  5       S9u  pgnUR                  S:w  aB  SUS    S	U 3n	[        R                  " U	5        [        R                  " UR                  U5      eUR                  S
5      S S n
/ n/ n/ nU
R!                  5        GH  n[        R                  R#                  U5      nU GH0  n[%        U[&        R(                  5      (       aR  UR*                  U:w  a  M5  U
R-                  U5        UR/                  U5        UR/                  UR                   5          M  [%        U[0        [2        45      (       d  M  S nUR5                  5        Vs1 s H$  nU[        R                  R#                  U5      4iM&     nnU H  u  nnUU:X  d  M  Un  O   Uc  M  U
R-                  U5        UR/                  U5        UR/                  UR7                  5       5          GMX      [&        R(                  R9                  U R
                  R                  5       SU5      nU
R-                  U5        UR/                  U5        GM     UR;                  U
5        XU4$ ! [        [        4 a    [        S5      ef = fs  snf ! [         a    [        SU SU S35      ef = f)Nr)  z--generate-dependenciesr^  )cwdz)Could not execute glib-compile-resources.r   z6glib-compile-resources failed to get dependencies for r   z:

.z
Resource "z" listed in "z" was not found. If this is a generated file, pass the target that generates it to gnome.compile_resources() using the "dependencies" keyword argument.)rq  rB  rC  rD  r.   r  get_source_dirFileNotFoundErrorPermissionErrorr,   
returncoder   r  
subprocessCalledProcessErrorsplitr{  basenamer   r   rp  ru  removerJ  r   r   get_outputsrr  from_source_fileextend)r  r  r}  re   r  rl   pcstdoutstderrr  raw_dep_filesr   r  	dep_filesresfileresbasenamer  ru  ooutputsbaseofs                         rR   rv  'GnomeModule._get_gresource_dependencies"  s    ((*
 	u||,,%JM277<<j#IJJC &	N!+C5F5F5U5U5W!XB ==AHQPSTZS[\ALLO//sCC%+\\$%7%<DF!35	$))+G''**73K#c8==11yyK/ !((1$$S)NN3::.l4E%FGG EADARSARA277#3#3A#67ARGS$+5 K/$%E! %, (%,,W5s+s~~'78' $:- 66u7H7H7W7W7Y7:GEA $$W-  #S ,T 	'7**o "?3 	N !LMM	N0 T, & -($WI]:, G, ,- --s   $K  ;+K9K$ K$Lc                <   / n[        U5      n[        U[        R                  5      (       Ga  [        R
                  R                  UR                  R                  5       UR                  R                  U5      5      nUR                  SU-   5        U(       a  UR                  SU-   5        UR                  U5        UR                  5        Hl  n	[        R
                  R                  UR                  R                  5       U	5      n	UR                  SU	-   5        U(       d  MX  UR                  SU	-   5        Mn     U(       a7  U R                  S5      (       a!  UR                  SUR                  -   5        Xg4$ UR                  SUR                  -   5        Xg4$ )N-L-Wl,-rpath,--extra-library--extra-library=-l)r   r   r   SharedLibraryrB  rC  rD  r  rt  rG  get_target_dirrJ  determine_rpath_dirs_gir_has_optionr   )
r	  r  libr   include_rpathuse_gir_argslink_commandnew_dependslibdirrS  s
             rR   _get_link_argsGnomeModule._get_link_argsl  sJ    %'7mc5..//WW\\%"3"3"A"A"CU]]EaEabeEfgFv.##MF$:;s#
 --/GGLL!2!2!@!@!BAF##D1H- = ''(9:	 0
 D001BCC 2SXX => (( sxx0((rQ   c           	     f
   [        5       n[        5       n[        5       n[        5       n	[        R                  " U5      n[        U5      nU GH  n
[	        U
[
        5      (       aF  U
R                  SSSS9nU(       a.  [	        U[        5      (       d   S5       eU	R                  U/5        [	        U
[        5      (       Ga  UR                  U
R                  5       5        UR                  UR                  U
R                  5      5        U
R                   H  n[	        U[        R                  5      (       d  M$  U R!                  X,X45      u  pUR                  U5        U R#                  UR%                  5       X#UU5      nUR                  US   5        UR                  US   5        UR                  US   5        U	R                  US   5        US	   nM     U R#                  U
R&                  X#UU5      nUR                  US   5        UR                  US   5        UR                  US   5        U	R                  US   5        US	   nU
R(                   Hp  n[	        U[*        5      (       d  M  U	R                  [,        R.                  R1                  UR2                  R5                  5       UR7                  5       5      /5        Mr     GM  [	        U
[
        5      (       Ga  UR                  U
R                  5       5        [9        U
R;                  S
S95      nU GHD  n[,        R.                  R=                  U5      (       a  [?        U
SS5      (       a  [,        R.                  RA                  U5      nUR                  SU 3/5        U(       a  UR                  SU 3/5        [,        R.                  RC                  U5      nURE                  S5      (       a  USS  nURG                  S5      S   nSU 3nURE                  S5      (       a  URE                  S5      (       d  GM  US:X  a   UR                  U[I        U5      4/5        GM2  UR                  U/5        GMG     GM  [	        U
[        RJ                  [        R                  45      (       aB  UR                  UR                  U
RM                  5       5      5        URO                  U
5        GM  [P        RR                  " SU
< S35        GM     U(       a+  U RU                  S5      (       a  SS jnU" U5      nU" U5      nXgXU4$ )Ngirdir 	pkgconfigr   default_valuerk  r   r   r   r      T)raw
is_libtoolFr  r  r  z.sor  z-Wz
-frameworkzdependency z not handled to build gir filesr  c                    [        5       nU  HR  n[        U[        5      (       a)  UR                  S5      (       a  UR	                  SSS5      nUR                  U5        MT     U$ )Nr  r  r   )r-   r   r{   
startswithr1  add)ldflagsfixed_ldflagsldflags      rR   fix_ldflags<GnomeModule._get_dependencies_flags_raw.<locals>.fix_ldflags  sY    MW\%F!&#..63D3DT3J3J!'6H!!L!%%f- & %$rQ   )r  z+T.Iterable[T.Union[str, T.Tuple[str, str]]]returnz+OrderedSet[T.Union[str, T.Tuple[str, str]]])+r-   r   r   r   r   r   get_variabler{   r  r   get_compile_argsget_include_argsru   	librariesr   r  r  _get_dependencies_flags_rawget_external_depsext_depsr^   r   rB  rC  rD  r  rt  rr  iterget_link_argsisabsgetattrdirnamer  r  r  nextStaticLibraryget_include_dirsrJ  r   logr  )r	  depsr  r   r  r  cflagsinternal_ldflagsexternal_ldflagsgi_includesr  r  r  _ldlibdepflagsextdepflagssourcer  flaglib_dirlibnamer  s                         rR   r  'GnomeModule._get_dependencies_flags_raw  sU    #-, ISHR'1|%w-C#z**))Hx_a)b%fc22>J>2&&x0#122c2245e44S5L5LMN==C!#u':':;;'+':':5w'^(//4&*&F&FsG\G\G^`ep}GS'Uk!n5(//A?(//A?#**;q>:"-a. ) #>>s||U]j?KMk!n- ''A7 ''A7"";q>2%a.!kkF!&)44#**BGGLL9J9J9X9X9Z,2,=,=,?-A ,B C *
 C,,c2245s00T0:;#Dd++#Cu=="$''//$"7(//2gY0@A(,33{7)5L4MN"$''"2"24"8"--e44&-abkG")--"6q"9!#G9~t,,T__]5S5S  |+(//$W1F0GH(//7+ $, C%"5"5u7J7J!KLLe44S5I5I5KLMs#;sg-LMN} @ D001BCC%  ++;<*+;<)9OOrQ   c                J   U R                  XX4U5      u  pgpn/ n
/ nU H<  n[        U[        5      (       a  U
R                  U5        M+  U
R	                  U5        M>     U H<  n[        U[        5      (       a  UR                  U5        M+  UR	                  U5        M>     XjXU4$ r   )r  r   r{   rJ  r  )r	  r  r  r   r  r  r  internal_ldflags_rawexternal_ldflags_rawr  r  r  r  s                rR   _get_dependencies_flags#GnomeModule._get_dependencies_flags  s     TXSsSstx  BI  Zf  TgP&:(*(* +F&#&& ''/ ''/	 +
 +F&#&& ''/ ''/	 + )9OOrQ   c                @   [        U[        [        R                  [        R                  45      (       d$  [        SU S[        U5      R                   35      eSn[        U[        R                  5      (       a$  U R                  X#5      (       d  [        SU-   5      eU$ )Nz4Gir target must be an executable or library but is "z
" of type z>=1.58.1zEStatic libraries can only be introspected with GObject-Introspection )	r   r   r   r  r  r,   typerK   _giscanner_version_compare)r	  	girtargetr  STATIC_BUILD_REQUIRED_VERSIONs       rR   _unwrap_gir_targetGnomeModule._unwrap_gir_target  s    )j%2E2E&+&9&9&; < < #WXaWbblmqr{m|  nF  nF  mG  "H  I  I(2%i%"5"577..uTT !h  lI  "I  J  JrQ   c                    U R                   c  [        R                  " 5       U l         U R                   R                  X/5        g r   )r  r   EnvironmentVariablesprepend)r	  r6  values      rR   _devenv_prependGnomeModule._devenv_prepend  s0    ;;"779DKGW-rQ   c                j    U R                   b&  UR                   R                  U R                   5        g g r   )r  rJ  )r	  bs     rR   postconf_hookGnomeModule.postconf_hook  s%    ;;"HHOODKK( #rQ   c                    U R                   (       dD  UR                  S5      U l         U R                  US5      U l        U R                  US5      U l        U R                   U R                  U R                  4$ )Nr&  r-  r.  )r   
dependencyr7  r   r   r  s     rR   _get_gir_depGnomeModule._get_gir_dep  sY    || ++,GHDL!__UNCDN"ooe_EDO||T^^T__<<rQ   c                     U R                  U5      u  n  n[        R                  " UR                  5       U5      $ ! [         a     gf = f)NF)r  r   r  r  r,   )r	  r  cmpr   r0  s        rR   r  &GnomeModule._giscanner_version_compare   sK    	"//6OIq!++I,A,A,CSII 		s   9< 
A	A	N)maxsizec                    U R                   n[        U[        [        45      (       a	  US;   d   eg[	        UR                  5       S/-   [        R                  S9u  p4nUR                  S:H  =(       a    X;   $ )N>   r  --sources-top-dirsTz--help)r  r   )	r   r   r   r2   r.   get_commandr  STDOUTr  )r	  optionexepr  r0  s         rR   r  GnomeModule._gir_has_option*  si    nncJ899FFFFS__.(;JDUDUVa||q 0V[0rQ   rw   c           	        / n/ n/ nU H  n[        U[        5      (       a  USU 3/-  nM#  [        U[        5      (       d  M:  UR                  [        R
                  R                  U R                  R                  5       UR                  5       5      5        UR                  S[        R
                  R                  UR                  5       UR                  5       5       35        UR                  U5        M     X#U4$ )Nz
--include=z--include-uninstalled=)r   r{   r   rJ  rB  rC  rD  r  rt  rr  get_basename)r  rw   retgir_inc_dirsr   incs         rR   _scan_includeGnomeModule._scan_include5  s     $&%'C#s##*SE*++C++$$RWW\\%2C2C2Q2Q2SUXUcUcUe%fg

3BGGLLAQSVScScSe4f3ghis#  '))rQ   c                    / nU Hi  nU R                   R                  R                  [        R                  U5      nU H,  nUR                  S5      (       d  M  UR                  U5        M.     Mk     U$ )Nr  )r  rx  get_external_link_argsr+   HOSTr  rJ  )r  langsr  lang	link_argslink_args         rR   _scan_langsGnomeModule._scan_langsF  sd    D))22II-J\J\^bcI%&&t,,JJx( &  
rQ   c                   / nU GHi  n[        U[        5      (       a	  USU/-  nM"  [        R                  R	                  UR                  5       UR                  5       5      nU R                  R                  5       n[        U[        R                  5      (       aD  USR                  U[        R                  R                  U5      5      /-  nUR                  5       nO$[        R                  R	                  U SU 35      nUSU/-  nUR                  5        HO  n[        R                  R	                  U R                  R                  5       U5      nUR                  SU-   5        MQ     GMl     U$ )Nz	--programz-L{}/{}/z	--libraryr  )r   r   rB  rC  rD  rr  get_filenamer  rt  r   r  formatr  r  r  rJ  )r  
girtargetsr  r  libpath
build_rootr  rS  s           rR   _scan_gir_targetsGnomeModule._scan_gir_targetsR  s0   02#I)Z00Y// '',,y';';'=y?U?U?WX #..<<>
i)<)<== I,,Z9QRSSC'446G ggllj\7)+DEGW--
 #779AU%6%6%D%D%FJAJJtax( :1 $8 
rQ   c                    / nU  HA  nUR                   R                  5        H   u  p4US;   d  M  UR                  X445          M?     MC     U$ )N>   r   rS  rd  objcobjcpp)ry  itemsrJ  )r'  r  r  r  compilers        rR   _get_girtargets_langs_compilers+GnomeModule._get_girtargets_langs_compilerst  sN    02#I"+"5"5";";"=>>JJ/0	 #> $ 
rQ   c                d    / nU  H'  nXR                  5       -  nXR                  5       -  nM)     U$ r   )get_all_link_depsr  r'  r  r  s      rR   _get_gir_targets_deps!GnomeModule._get_gir_targets_deps  s>     `b#I..00C..00C $ 
rQ   c                j    [        5       nU  H"  nUR                  UR                  5       5        M$     U$ r   )r-   r  r  r5  s      rR   _get_gir_targets_inc_dirs%GnomeModule._get_gir_targets_inc_dirs  s-    $,#IJJy1134 $
rQ   c                (   / n/ n/ nU GH  u  pVU R                   R                  U5      (       a  X R                   U   -  nU R                  R                  U5      (       a  X R                  U   -  n[        S5      UR                  ;   d  M  U R
                  R                  R                  R                  S5      n[        U[        5      (       d   eX&R                  U5      -  nSU;   a  US/-  nSU;   a  US/-  nSU;   d  M  US/-  nGM     X#U4$ )N
b_sanitizeaddressz-lasanthreadz-ltsan	undefinedz-lubsan)global_argsgetproject_argsr1   base_optionsr  rx  r~  	get_valuer   r   sanitizer_compile_args)r  langs_compilersr  r  r  r  r0  sanitizes           rR   _get_langs_compilers_flags&GnomeModule._get_langs_compilers_flags  s    !(*(*-ND  $$T**++D11!!%%d++,,T22&(*?*?? ,,55>>HHV!(D111199(CC($
2$x'$
2$(*$3$ .( )999rQ   r}   c                P   U R                   R                  US   5      n[        R                  R	                  U5      (       d  [        R
                  " U5        [        R                  R                  Xb SU S35      n[        USSS9 nU GH{  n	[        U	[        [        45      (       a}  U	R                  5        Hg  n
UR                  [        R                  R                  U R                  R                  5       U R                   R                  U	5      U
5      S-   5        Mi     M  [        U	[         R"                  5      (       a/  UR                  U	R%                  U R&                  5      S-   5        M  [        U	[(        5      (       aK  U	R                  5        H4  nUR                  [        R                  R                  X5      S-   5        M6     GMJ  UR                  [        R                  R                  X5      S-   5        GM~     S S S 5        U$ ! , (       d  f       U$ = f)Nr   r0  _gir_filelistwutf-8encodingr  )rG  get_target_private_dir_absrB  rC  isdirmkdirrD  openr   r   r   r  writer  rt  r  r   rp  rel_to_builddirrw  r   )r  srcdirnsr}   r'  
libsourcesgir_filelist_dirgir_filelist_filenamegir_filelistscustom_outputgen_srcs               rR   _make_gir_filelistGnomeModule._make_gir_filelist  s    !==CCJqMRww}}-..HH%& "-=QykQ^?_ `'w?<a,0A!BCC)*$**277<<8I8I8W8W8Y8=8T8TUV8W8E,GIM,N O *9  8==11 &&q'8'89K9K'Lt'ST=11#$==?$**277<<+H4+OP $3 !&&rww||F'>'EF   @ %$ @? %$s   	FH
H%c                   US   nUc  US   nUS   n	U	c9  [         R                  R                  UR                  R	                  5       S5      n	OU	SL a  Sn[
        R                  " UR                  [        R                  SS9n
UR                  R                  R                  R                  S   R                  5       nU
R                  S	U Vs/ s H  n[        U5      PM     snS
5        U
R                  SU Vs/ s H  n[        U5      PM     snS
5        U
R                  US   5        U R!                  US5      n[#        UUR$                  UR&                  UR                  UUU/US   UUU	/S/U
US9$ s  snf s  snf )Ninstall_girri   rx   zgir-1.0FT)uninstalledr   CCr   CFLAGSenvz	>= 1.85.0rV   rn  )rV   rh  ri   rj   ri  rf  rspable)rB  rC  rD  r  rF  r   get_envr+   r  rx  ry  rz  get_exelistsetr0   merger  r   rq  r|  )r	  r  girfilescan_commandgenerated_filesr   	env_flagsrM  ri   rj   run_env
cc_exelistxrg  s                 rR   _make_gir_targetGnomeModule._make_gir_target  sq    '?Y'G./'',,u'8'8'D'D'F	RKE!G %,,U->->@R@R`de&&//99>>sCOOQ
D<A9Q<<cBHY?Yy|Y?EfUm$ 11%ELLI#$67!$ 	
 	
 =?s   E9
<E>
c                "   US   nUc  US   nUS   nUc9  [         R                  R                  U R                  R	                  5       S5      nOUSL a  Sn[        UU R                  U R                  U R                  UUU/UU/S/US   US   S	9$ )
Ninstall_typelibri   ry   zgirepository-1.0FtypelibrV   rf  )ri   rj   ri  rV   rf  )rB  rC  rD  r  
get_libdirr   rq  r|  )r  typelib_outputtypelib_cmdrn  rM  ri   rj   s          rR   _make_typelib_target GnomeModule._make_typelib_target  s    
 *+?Y'G23'',,u'8'8'C'C'EGYZKE!GLL$"#$67u
 	
rQ   c                   / n[        U5      nU GH  n[        U[        5      (       a  UR                   H  n[        U[        5      (       d  M  Xb;  d  M!  UR                  U5        [        R                  R                  U R                  R                  5       UR                  5       5      nXs;  d  M  UR                  U5        M     O[        U[        R                  5      (       a  UR                   Hx  n[        U[        5      (       d  M  [        R                  R                  U R                  R                  5       UR                  5       5      nXs;  d  Mg  UR                  U5        Mz     [        U[        5      (       d  GMy  UR!                  SSSS9n	[        U	["        5      (       d   S5       eU	(       d  GM  X;  d  GM  UR                  U	5        GM     X44$ )Nr  r  r  rk  )r   r   r   r^   r   rJ  rB  rC  rD  r  rt  rr  r   r  	generatedr   r  r{   )
r  r  r   typelib_includesr  r  r  rq  g_sourcer  s
             rR   +_gather_typelib_includes_and_update_depends7GnomeModule._gather_typelib_includes_and_update_depends  su    )+7mC #122!kkF!&)449N#**62!#e.?.?.M.M.O.4.?.?.A"C!9,33F; * C!4!455 #H!(I66!#e.?.?.M.M.O.6.A.A.C"E!9,33F; !. #z**))Hx_a)b!&#..:
:.6f<$++F37 8  ,,rQ   c                    / nU HN  nU[         R                  " U R                  R                  R	                  [
        R                  U5      5      -  nMP     U$ r   )r   r   r  rx  get_external_argsr+   r  )r  r  r  r  s       rR   _get_external_args_for_langs(GnomeModule._get_external_args_for_langsD  sL    D8##E$5$5$>$>$P$PQ^QcQcei$jkkC 
rQ   c              #     #    U  H7  nUR                  S5      (       d  M  UR                  S5      (       a  M3  Uv   M9     g7f)z?g-ir-scanner only accepts -I/-D/-U; must ignore all other flags)z-Dz-U-Iz-D_FORTIFY_SOURCENr  )r  r  s     rR   _get_scanner_cflagsGnomeModule._get_scanner_cflagsK  s7      A ||.//EX8Y8Y	 s   AA	Ac                    U  Vs/ s H  oR                  S5      (       d  M  UPM     snU  Vs/ s H  oR                  S5      (       d  M  UPM     sn4$ s  snf s  snf )zFg-ir-scanner only accepts -L/-l; must ignore -F and other linker flags)r  r  r  r  r  )r  r  s     rR   _get_scanner_ldflags GnomeModule._get_scanner_ldflagsT  sK      Q1<<0O#PQQA1<<#@QA
 	
QAs   AAAAzgnome.generate_girr   )varargsmin_varargsz0.40.0)r9  z1.2.0rp   z1.8.0rq   rr   0.55.0rs   rt   ru   rb  0.61.0rx   )r  z'Use install_gir to disable installationc                    U SL a  S$ S $ NTzas boolean can only be falserI   rr  s    rR   <lambda>GnomeModule.<lambda>n      T	&D&[W[&[rQ   )deprecated_values	validatorrv  ry   )r  z+Use install_typelib to disable installationc                    U SL a  S$ S $ r  rI   r  s    rR   r  r  r  r  rQ   rz   r|   r<  r^   r   c                   UR                  S[        R                  5        US    Vs/ s H  o@R                  XA5      PM     nn[	        U5      S:  a"  [        S U 5       5      (       a  [        S5      eU R                  U5      u  pgnUS   n	US   n
US   nU	 S	U
 S
3n[        R                  R                  UR                  R                  5       UR                  5      n[        R                  R                  UR                  R                  5       UR                  5      n/ nUR                  UR                   5        UR                  U5        U R#                  U5      nU R%                  UU5      u  nnnU R'                  U5      nUUS   -  nUU/-  nU R)                  UUU5      u  nnU R+                  UXSS9u  nnnnn/ nU[-        U R/                  U5      5      -  nU[-        U R/                  U5      5      -  nU[-        U R/                  U R1                  UU Vs/ s H  nUS   PM
     sn5      5      5      -  n/ n/ nUR                  R2                  R5                  [        R                  S5      nU R7                  U5      U R7                  U5      4 H  u  nn UU-  nUU -  nM     U R7                  U5      U R7                  U5      4 H  u  nn UU-  nUU -  nM     U R9                  U5      n!US   n"/ n#U/n$U$S/-  n$U$S/-  n$U$SU	-   SU
-   /-  n$U$S/-  n$U$SS/-  n$U$US    V%s/ s H  n%SU% 3PM
     sn%-  n$U$US   -  n$U$SU-   SU-   /-  n$U$UR;                  U!5      -  n$U$SU R=                  XXX[5      -   /-  n$US    H)  n&U R?                  UU&USS9u  n'nU$R                  U'5        M+     U RA                  XS   5      u  n(n)n*U$R                  U(5        U#R                  U)5        UR                  U*5        U$US    V+s/ s H  n+SU+ 3PM
     sn+-  n$U$US    V+s/ s H  n+S U+ 3PM
     sn+-  n$U$US!    V+s/ s H  n+S"U+ 3PM
     sn+-  n$U$S#/-  n$U$U-  n$U$S$/-  n$U$UR;                  U"5      -  n$U$UR;                  [B        RD                  " UU#U"5      S%S&9-  n$U$[-        U5      -  n$U$U RG                  X5      -  n$U$U RI                  UU Vs/ s H  nUS   PM
     sn5      -  n$U$[-        U5      -  n$U RK                  S'5      (       a  U$S'[        R                  R                  UR                  R                  5       URL                  5      /-  n$U$S'[        R                  R                  UR                  R                  5       URL                  5      /-  n$US(   b   U RK                  S)5      (       a
  U$S)US(   /-  n$S*U$;   a.  [N        RP                  " S+S,URR                  S-URT                  5        US.   (       a  U$RW                  S*5        U V,s/ s H'  n,[Y        U,[Z        [\        [^        45      (       d  M%  U,PM)     n-n,U Ra                  XU$U-UU[b        Rd                  " S/U5      5      n.U	 S	U
 S03n/UU.SS/n0U0UR;                  U#S1S&9-  n0U H  n1U0S1U1-   /-  n0M     U Rg                  UU/U0U-[b        Rd                  " S/U5      5      n2U Ri                  S2[        R                  R                  UR                  R                  5       UR                  5      5        U.U2/n3[k        U3U35      $ s  snf s  snf s  sn%f s  sn+f s  sn+f s  sn+f s  snf s  sn,f )3Nr   r   r   c              3  B   #    U  H  n[        U[        5      v   M     g 7fr   )r   r   )r   els     rR   r   +GnomeModule.generate_gir.<locals>.<genexpr>  s     &WJbz"j'A'AJr   zVgenerate_gir only accepts a single argument when one of the arguments is an executabler|   r}   r^   r/  z.girre   T)r  ru   --quietz--no-libtool--namespace=z--nsversion=z
--warn-all--outputr`  rs   z--c-include=rg   r  z--filelist=rz   rw   r   z--symbol-prefix=rt   z--identifier-prefix=rq   z--pkg-export=z--cflags-beginz--cflags-endz--add-include-path=)r   r  rp   z--doc-formatz--warn-errorz(gnome.generate_gir argument --warn-errorr  z%Use "fatal_warnings" keyword argumentrr   T.Dict[str, T.Any]z.typelibz--includedir=GI_TYPELIB_PATH)6add_languager+   r  r  r   anyr,   r  rB  rC  rD  r  r  rq  rt  r  r^   r1  rH  r6  r  r  r   r  r  rx  r  r  r9  r  r_  r  r  	itertoolschainr*  r!  r  root_subdirr&   
single_user|  current_noderJ  r   r   r   r   rs  Tcastr{  r  r
   )4r	  r  rL  rM  argr'  r   r   r   rW  r}   rX  rl  rV  builddirr   rF  r  r  r  r  r  
dep_cflagsdep_internal_ldflagsdep_external_ldflagsr  scan_cflagslcscan_internal_ldflagsscan_external_ldflagsscan_env_ldflags	cli_flagsro  girtargets_inc_dirsinc_dirsr  rm  hl_cflags_cmd_ginc_depsr  r  rn  scan_targetry  rz  incdirtypelib_targetrN  s4                                                       rR   r   GnomeModule.generate_gir\  s%   @ 	3 2 23EI!WMWc--c9W
Mz?Q3&WJ&W#W#W !yzz)-):):5)A&JK ;'	I&
D)D)e//>>@%,,O77<< 1 1 ? ? A5<<Pwyw'z">>zJ595T5TUZ\k5l2 "2))*5~&&	$($T$TUZ\`bi$j!'
 ((uD(Q 	U
(*>WtD44V<==tD44Z@AAtD44T5V5VW\o~^o~ik_abc_do~^  6A  B  C  	C " " ,,55LL]M_M_ade%)%>%>?O%PRVRkRk  mA  SB  %C Iy!Y.!	) %C &*%>%>?O%PRVRkRk  mA  SB  %C Iy!Y.!	) %C #<<ZH/0$&`i_j#((",ny.HII&Z00VH5EF5E<s+5EFF|,,x88../BCC)@)@PR_i)vvww$A#225!WSW2XGW( % "//j7IJeUD!E"u9PQ9PA+A3/9PQQVDW=XY=X/s3=XYYf=N6OP6O=,6OPP)**#((..x88..y{LZb/c  mB.  C  	C233..uAA((0Q2A0QRR233 4551277<<@Q@Q@`@`@bdidudu3vwwL1277<<@Q@Q@_@_@achctct3uvvL,+0D0D^0T0T^VL-ABBL\)(()SU]).)9)9;bdidvdvx"#/&0tjJq=R^`qBr4s1jt++L/7DTFF'02
 4q84!;
JGu--l?-SS&FOf455K ' 225.+Wfhihnhn  pD  FL  iM  N.U=N=N=\=\=^`e`l`l0mn>* R((a N@ _@* G RYP 1R  us5   \5"\:/\?]']	]]$]]zgnome.compile_schemasc                :   [         R                  R                  UR                  UR                  5      nUR                  nU R                  US5      SXT/nUR                  S:X  a  SnOSUR                  R                  SS5      -   n[        UUR                  UR                  UR                  U/ S/US	   US
   SS9
nU R                  S[         R                  R                  UR                  R                  5       UR                  5      5        [        X/5      $ )Nr(  z--targetdirr  zgsettings-compilezgsettings-compile-r$  r0  zgschemas.compiledrV   rX   zCompiling gschemas {})rV   rX   descriptionGSETTINGS_SCHEMA_DIR)rB  rC  rD  rw  rq  r7  r1  r   r|  r  r  rt  r
   )	r	  r  rL  rM  rV  outdirr  
targetnametarget_gs	            rR   r   GnomeModule.compile_schemas  s     e00%,,?15H^1_anpv0<<2,J-0D0DS#0NNJLL !#$67//
 	3RWW\\%BSBSBaBaBcejeqeq5rs :66rQ   z
gnome.yelp)r  r\   z0.43.0z2Use a LINGUAS file in the source directory instead)r   r   
deprecateddeprecated_messager]   )r   r   r_   c                >   US   nUS   nUS   (       a.  [         R                  " SSUR                  SUR                  5        U(       d  US   nU(       d  [	        S5      eO US   (       a  [
        R                  " S5        U Vs/ s H`  n[        R                  R                  UR                  R                  [        R                  R                  UR                  S	5      U5      PMb     nnUS
   nU(       dG  [!        [        R                  R                  UR                  R                  UR                  5      5      nUS   n	US   n
/ n/ nUR#                  S5      nUR#                  S5      nUR#                  S5      n[        R                  R                  UR                  R%                  5       S5      n[        R                  R                  US	U5      n[&        R(                  " UUU[        R*                  " 5       UR                  SS9nUR-                  U5        / nU	 H  n[        R                  R                  UR                  R                  [        R                  R                  UR                  S	5      U5      nUR-                  U5        [        R                  R                  U[        R                  R/                  U5      5      n[&        R(                  " U/UU[        R*                  " 5       UR                  SS9nUR-                  U5        M     [        R                  R                  SUR                  S	US-   5      nU Vs/ s H/  n[        R                  R                  SUR                  S	U5      PM1     nnUSU/nUR1                  U5        [&        R2                  " SU S3U/ [        R                  R                  UR                  S	5      UR                  UR                  5      nUR-                  U5        U GH  n[        R                  R                  UR                  U5      n[        R                  R                  UUU5      n[5        U	5       GHZ  u  nn[        R                  R/                  U5      n [        R                  R                  UU 5      n [        R                  R                  UR                  R                  UU5      n!U
(       a  U!(       d|  [        R                  R                  [        R                  R7                  UUS9U5      n"[&        R8                  " U"[        R                  R;                  U5      UUR                  SS9n#OCU!(       d  UU   n![&        R(                  " U!/UU[        R*                  " 5       UR                  SS9n#UR-                  U#5        GM]     US-   n$USS[        R                  R                  SUU$5      [        R                  R                  SUU$5      U/n%[&        R2                  " SU SU S3U%U/UUR                  UR                  5      n&UR-                  U&5        UR-                  U&5        US-   U-   S-   n'[=        SU SU S3UUR                  UR                  USSS /U$/U'/S/S!S"9	n(UR-                  U(5        [=        SU SU 3UUR                  UR                  US#[        R                  R                  UU'5      S$USS%S/UUU(/S&U/S/S!S'9n)UR-                  U)5        GM     [&        R>                  " SU S3UUR                  UR                  UR                  5      n*UR-                  U*5        [A        S U5      $ s  snf s  snf ! [         a    S n! GNf = f)(Nr   r^   r   z,gnome.yelp more than one positional argumentz0.60.0z+use the "sources" keyword argument instead.zYelp requires a list of sourcesz\"gnome.yelp" ignores positional sources arguments when the "sources" keyword argument is setCr\   r]   r_   itstoolmsgmergemsgfmthelpdoc)ri  z@SOURCE_ROOT@z.potz-ozhelp-z-pot)startz.por?  r/  z
-update-poz.gmoz-gmorY  r`  zGenerating yelp doc {})ri  r  z-mz--lang@OUTDIR@T)rh  ri   rj   ri  r  )!r&   r  r|  r  r,   r   r  r   rp  r  r  rl   rB  rC  rD  rq  r3   rK  rF  r   DataFileModerJ  r  r  	RunTargetr   relpathSymlinkDatar  r   AliasTargetr
   )+r	  r  rL  rM  
project_idr^   r\  sources_filesr  r]   symlinkstargets	potargetsr  r  r  rj   c_install_dirc_datamedia_filesr  r  m_install_dirm_datapot_filepot_sourcespot_args	pottargetr  l_subdirl_install_dirr   m_dirm_filelink_targetl_datapo_filepo_argspotargetgmo_file	gmotargetmergetargetallpotargets+                                              rR   r   GnomeModule.yelp
  s    !W
#7(()WYa).)9)9;hjoj|j|~1gG$%FGG !WLLwx ELMDKq "778I8I8T8T8:U\\SV8W89;DK 	 M {# e.?.?.J.JELL!YZEw/*RT-/	$$Y/%%j1##H-ggll5#4#4#@#@#BFK[#zBM=-$--/1A1AuVv-/A..u/@/@/K/K/1ww||ELL#/NPQSAq!GGLL8JKMZZ]M ( 1 1 3U5E5ESXZFNN6"  77<<sJQWDWXT[\T[qrww||OU\\3JT[\X_aegoWp$OOeJ<t$<h$&GGLLs$CUEUEU$)$5$57	 	y!Aww||ELL!4HGGLLaDM!%(1* "]E B"8@8V8VW\WhWhWsWsu}  @A  9BF
 F"$'',,rww}Ta/bde"fK"..{BGG<L<LQ<O/<e>N>N\acF "!,Q"ZZ-(0(9(9(;U=M=M[`bFv&% )( %iG$_h@_h@([LG zl!A3j'I'.XuGWGW','8'8:H NN8$X&!C'!+f4H$
|1QCt,  !!D*5	
"G4
I NN9%&
|1QC(  !!$Xx @(AtU_ajk(k*O"G4K NN;' B ''%
|:(F	(-e6F6FHYHY[{# w//_MD ]" & "!F"s   A'^6^15^^^zgnome.gtkdocr   z0.48.0)r9  r   r   r   z0.52.0r   r   r   r   r   r   r   ri   rj   r   r   r   r   auto>   xmlr  nonesgml)r   r9  r  r   r  r   r   r   )r   r  c                  ^ US   nUS   nUS   nUb  Ub  [        S5      eUnUS   nXG(       a  SU-   OS-   S-   nTR                  R                  5       n	US	   n
TR                  S
[        R
                  5        SGU4S jjnUS   n/ nU H  n[        U[        R                  5      (       aS  UR                  UR                  TR                  R                  5       TR                  R                  5       5      5        Mu  UR                  U5        M     SSSTR                  R                  5       -   STR                  R                  5       -   STR                  -   SSR                  U5      -   SU-   SU-   SU-   SUS   -   /
nS HJ  nSU-   nTR!                  U5      nUR#                  5       nUc   S5       eUR                  SU SU 35        ML     U
(       a  UR                  SU
-   5        TR                  R%                  5       nU(       a1  UR                  SS R                  UR'                  5       5      -   5        UR                  S!SR                  US"   5       35        UR                  S#SR                  US$   5       35        UR                  S%SR                  US&   5       35        UR                  S'SR                  U" US(   5      5       35        UR                  S)SR                  US*   5       35        UR                  S+SR                  US,   5       35        UR                  S-SR                  U" US.   5      5       35        / n/ nUS/    GH  n[        U[(        [*        45      (       a  UR                  U5        UR-                  5        Hd  nUR                  [.        R0                  R                  TR                  R                  5       TR2                  R5                  U5      U5      5        Mf     M  [        U[6        R8                  5      (       aT  UR                  UR;                  TR                  R                  5       TR                  R                  5       5      5        GM  [        U[<        5      (       a}  UR                  U5        UR-                  5        HU  nUR                  [.        R0                  R                  TR                  R                  5       TR                  U5      5        MW     GM  UR                  [.        R0                  R                  TR                  R                  5       TR                  U5      5        GM     US0SR                  U5      -   /-  nUR                  S1SR                  U" US2   5      5       35        UR                  S3SR                  US4   5       35        UR                  S5SR                  US6   5       35        U R?                  US7   US8   US9   TU5      u  nnUR                  U5        UR                  U5        [)        UTR                  TR@                  TR                  X-   / U S:3/S;US<S=9
n[        RB                  " UU/TR                  TR@                  TR                  5      nUS>   (       aw  TR!                  S?5      nS@U-   SAU-   /nUSB-   U4n [.        R0                  R                  TR                  R                  5       TR                  5      n!TRE                  U UU!U/SC9  UU/n"USD   (       a+  U"R                  TR2                  RG                  X-   SESF95        [I        UU"5      $ )HNr   r   r   z<gnome.gtkdoc: main_xml and main_sgml are exclusive argumentsr   r/  r  z-docr|   r   c              3  t  >#    U  H  n[        U[        R                  5      (       aF  UR                  TR                  R                  5       TR                  R                  5       5      v   Mh  [        R                  R                  TR                  R                  5       TR                  U5      v   M     g 7fr   )r   r   rp  absolute_pathr  r  rt  rB  rC  rD  rq  )filesr  r  s     rR   abs_filenames)GnomeModule.gtkdoc.<locals>.abs_filenames  s{     a////%*;*;*J*J*LeN_N_NmNmNopp'',,u'8'8'G'G'I5<<YZ[[	 s   B5B8r   r_  r   z--sourcedir=z--builddir=z	--subdir=z--headerdirs=z@@z--mainfile=z--modulename=z--moduleversion=z--mode=r   )scanscangobjmkdbmkhtmlfixxrefzgtkdoc-z8This shouldn't be possible since program should be found--=r  z--run=r   z--htmlargs=r   z--scanargs=r   z--scanobjsargs=r   z--gobjects-types-file=r   z--fixxrefargs=r   z--mkdbargs=r   z--html-assets=r   r   z--content-files=z--expand-content-files=r   z--ignore-headers=r   z--installdir=rj   r   ru   re   z	-decl.txtTzGenerating gtkdoc {})r   rh  r  r   zgtkdoc-checkzDOC_MODULE=zDOC_MAIN_SGML_FILE=z-check)rf  workdirr   ri   r  )tag)r   zT.Iterable['FileOrString']r  zT.Iterator[str])%r   r  get_build_commandr  r+   r  r   r   IncludeDirsr  to_string_listr  rt  rJ  rq  rD  rK  get_pathget_exe_wrapperr  r   r   r  rB  rC  rG  r  r   rp  r  r   _get_build_argsr|  r  testrH  r
   )#r	  r  rL  rM  
modulename	main_filer   moduleversionr  commandr|   r  src_dirsheader_dirsr   t_argsr3  program_nameprogramrC  exe_wrapperr   r   r\  r  r^  
build_argsr  custom_targetalias_target	check_cmd	check_env
check_argscheck_workdirress#    `                                 rR   r   GnomeModule.gtkdoc  s   F !W
;'	*%$&'eff I/0-3#6RPSYY
##557;'	 	3 2 23	\ )$#%G'5#4#455""7#9#9%:K:K:Z:Z:\:?:K:K:Y:Y:[$] ^ ""7+   (U..==??E--;;==%,,&dii44I%j(.v&	( FD$t+L((6G##%D#_%__#MMB|nAdV45 F MM.945''779MM(SXXk.E.E.G%HHIDIIf[.A$B#CDEDIIf[.A$B#CDE		&2I(J'KLM.tyyvNaGb9c/d.efgtyy1G'H&IJKDIIf[.A$B#CDEtyyvm?T1U'V&WXY24(A!l,=>??q!A!((e6G6G6U6U6W6;mm6R6RST6U67*9 : ) Ax}}--$$Q__U5F5F5U5U5W5:5F5F5T5T5V&X YA}--q! }}G!((e6G6G6V6V6X6;ll6=*? @  /
 $$RWW\\%2C2C2R2R2T27,,23&5 6# )( 	%		-(@@AA/		-OeHf:g0h/ijk)$))F;K4L*M)NOPdii}0E&F%GHI"&"6"6vh7GPeIf7=n7MuV]#_
Kj!7#$LL|9%&#%.
 ((m_ellTYTdTdfkfwfwx'?**>:I&3.:<I$x/;JGGLL):):)H)H)JELLYMJJzy-R_Q`JaP]_kOl)JJu}}AA'BRX]A^_ 44rQ   c                   / nUR                  5       nU R                  X4USS9u  ppnUR                  U5        UR                  UR                  U5      5        / nUR                  U	5        UR                  U
5        UR                  UR                  R
                  R                  [        R                  S5      5        UR                  UR                  R
                  R                  [        R                  S5      5        UR                  R
                  R                  [        R                     S   nU R                  USU4/5      nUR                  US   5        UR                  US   5        UR                  US   5        U(       a@  US[        UR                  5       5      -  /-  nUS[        UR                  5       5      -  /-  nU(       a  US	[        U5      -  /-  nU(       a  US
[        U5      -  /-  nXl4$ )NT)r  r   r   r   r   z--cc=%sz--ld=%sz--cflags=%sz--ldflags=%s)r{  r  r  r  r  rx  r  r+   r  r  ry  rH  r/   ri  get_linker_exelist)r	  r   r  r  r  r   rL  r  deps_cflagsr  r  _gi_includesr  r  r0  compiler_flagss                   rR   r  GnomeModule._get_build_args,  s   
 ((gT(R 	S'7{ 	k"e,,X67!'('(e''00BB=CUCUWZ[\u((11HHI[I[]`ab$$--778J8JKCP88#x@QRnQ'(~a()~a()Y8+?+?+A!BBCCDY8+F+F+H!IIJJD]Yv%6677D^i&8899D  rQ   zgnome.gtkdoc_html_dirc                H    [         R                  R                  SUS   5      $ )Nzshare/gtk-doc/htmlr   )rB  rC  rD  )r	  r  rL  rM  s       rR   r   GnomeModule.gtkdoc_html_dirN  s     ww||0$q'::rQ   zgnome.gdbus_codegen)optargsz0.46.0rg   z0.47.0r   r   r   c                J    U (       a  [        U S   [        5      (       a  U /$ U $ )Nr   r   r  s    rR   r  r  `  s     qZ!c-B-B I IrQ   )r   r  	convertorr   r   z1.9.0r   r   r   >   r   r  objectsc                R   US   nUS   (       a  US   /O/ nU R                  US5      /nUR                  US   5        U R                  U5      n[        R                  " US5      (       d$  US   S:w  a  [
        R                  " SU S	35        O US   nUS:X  a  S
nUR                  SU/5        US   b  UR                  SUS   /5        US   b  UR                  SUS   /5        US   (       a  UR                  S/5        UR                  US   5        US   n	US    H%  n
UR                  S5        UR                  U
5        M'     / nUS   nUS   =(       d8    UR                  R                  R                  R                  [        S5      5      n[        U[        5      (       d   S5       eUS-   n[        R                  " US5      (       a  U/ SQ-   nOUS   b  US   nUSU/-  nUS   bB  [        R                  " US 5      (       d  [
        R                  " SU S!35        US   nUS"U/-  nUS#   bB  [        R                  " US$5      (       d  [
        R                  " SU S%35        US#   nUS&U/-  n[        R                  " US'5      (       a  US(S)S*US+/-  nOU R!                  5         US*S,U-   S+/-  nUn[#        UUR$                  UR&                  UR                  UUU/U	S-S.9	nUR                  U5        US/-   n[        R                  " US5      (       a
  U/ S0Q-   n/ nOUnU/n[#        UUR$                  UR&                  UR                  UUU/U	UUU/S1/S2S39nUR                  U5        US   b  US   nUS4-   n/ nU HJ  nUR                  S5R)                  U[*        R,                  R/                  [        U5      5      5      5        ML     [        R                  " US5      (       a  US(S)SUS+/-   n/ nOUnU/n[#        UUR$                  UR&                  UR                  UUUU	US6S79
nUR                  U5        US   b  US   nUS8-   n/ nU HJ  nUR                  S5R)                  U[*        R,                  R/                  [        U5      5      5      5        ML     [#        UUR$                  UR&                  UR                  US(S)S"US+/-   UUU	S9S.9	nUR                  U5        US#   b  US#   nUS:-   n/ nU HJ  nUR                  S5R)                  U[*        R,                  R/                  [        U5      5      5      5        ML     [#        UUR$                  UR&                  UR                  US(S)S&US+/-   UUU	S;S.9	nUR                  U5        [1        X5      $ )<Nr   r   r*  rg   z	>= 2.49.1r   r   zGlib version (zE) is too old to support the 'autocleanup' kwarg, need 2.49.1 or newerr   z--c-generate-autocleanupr   z--interface-prefixr|   z--c-namespacer   z--c-generate-object-managerr^   rV   r   z
--annotaterk   rj   rj  rk  rb  z	>= 2.56.2)--bodyr  r`  rY  r   z--generate-docbookr   z	>= 2.71.1z=) is too old to support the 'rst' kwarg, need 2.71.1 or newerz--generate-rstr   z	>= 2.75.2zB) is too old to support the 'markdown' kwarg, need 2.75.2 or newerz--generate-mdz	>= 2.51.3z--output-directoryr  z--generate-c-coderY  z	@OUTDIR@/zGenerating gdbus source {})rV   r  rm  )--headerr  r`  rY  rn  zGenerating gdbus header {})rV   rh  ri   rj   ri  r  z-docbookz{}-{}zGenerating gdbus docbook {})rV   rh  r  z-rstz$Generating gdbus reStructuredText {}z	-markdownzGenerating gdbus markdown {})r7  r  r  r   r  r   r  rJ  r  rx  r~  r  r1   r   r{   errorr#  r   rq  r|  r&  rB  rC  r  r
   )r	  r  rL  rM  namebase	xml_filesr  r  acrV   r   r  rk   rj   r  c_cmdr   r   r   cfile_custom_target	hfile_cmdr   hfile_custom_targetr  r  docbook_cmddocbook_custom_targetrst_custom_targetmarkdown_custom_targets                                rR   r   GnomeModule.gdbus_codegenS  s3   4 7X\]^X_DQRG9eg	151X0Y

6,'( 44U;''kBBm$	1~l^ <; ; < &BYJJ2B78$%1JJ,f5G.HIJ+*JJ)<=>"#JJ567	*+!"45 M*EJJ|$JJu +  01]+yu/@/@/I/I/R/R/`/`ajkwax/y+s++7Z7+D ##L+>>GGEi , +,g66e}(//kJJJJ~ >'  ' ( Um(#..j!-//kJJJJ~ >*  * + "*-22 ''kBB,j:MxYbcc))++[8-CYOOE*LLH-4

 	*+D##L+>>MMIGI*+G*LLH-!"$ 	4
 	*+)(Y'G
*FGw~~grww7G7GA7OPQ  ''kBB!%9:G[]dfo$pp!./$0  !!!1%9%! NN01%=$-C&FGw~~c2773C3CCF3KLM  !-  !!+Z9I3PYZZ!1B
! NN,-*)j)H+FGw~~h8H8HQ8PQR  &2  !!+Z(T]^^!1:
&" NN12 22rQ   zgnome.mkenumsr   r   r   r   r   r   r   r   r   r   c           	        US   nUS   n[        U[        R                  5      (       a:  UR                  UR                  R
                  UR                  R                  5      nUS   n[        U[        R                  5      (       a:  UR                  UR                  R
                  UR                  R                  5      n/ n/ SQnU H*  n	X9   (       d  M  USU	R                  SS5      -   X9   /-  nM,     / n
S nUb  [        R                  R                  [        R                  R                  U5      S   5      nUSS	/-   nU/nUR                  US
   5        U R                  XXUS   US   S9nU
R                  U5        Ub  [        R                  R                  [        R                  R                  U5      S   5      nUSS	/-   nU/nUR                  US
   5        US   R                  5       nUb  UR                  U5        U R                  UUUUUS9nU
R!                  SU5        Uc2  Uc/  US	/-   nU R                  XS
   UUUS   US   S9n[#        UU/5      $ [#        X5      $ )Nr   r   r   )
r   r   r   r   r   rt   r   r   r   r   r  r0  r/  z
--templaterY  r^   rk   rj   ri   rj   r   )r   )r   r   rp  r  r  rl   	build_dirr1  rB  rC  r  splitextr  _make_mkenum_implrJ  r{  insertr
   )r	  r  rL  rM  r  r   r   r  known_kwargsr  r  h_targeth_outputh_cmd	h_sourcesc_outputr9  	c_sourcesr   c_targetgeneric_cmdtargets                         rR   r   GnomeModule.mkenums)  s   0 7L)
j(--00#11%2C2C2N2NPUPaPaPkPklJL)
j(--00#11%2C2C2N2NPUPaPaPkPklJ3  C{{s{{344fkBB  
 )+-1!ww''(8(8(DQ(GHH <33EPZ|IVI./--(6BR;S"=1 . 3H NN8$!ww''(8(8(DQ(GHH <33EPZ|IVI./Y',,.G#x(--y(E7 . DHNN1h'*"4+K++i((K/0"=1 , 3F %VfX66$W66rQ   zgnome.mkenums_simplez0.42.0r   r   r   r   c                   US    S3nUS    S3nUS   nUS   nUS   nUS   n	/ n
US   (       a  U
R                  S	US   /5        US
   (       a  U
R                  SUS
   /5        U
R                  5       nSnU	S:w  a  USU	-  -  nUSU-  -  nU R                  R                  US   5       HD  n[        R
                  R                  UR                  5       UR                  5      nUSU S3-  nMF     U[        R                  " S5      -  nUR                  SU/5        UR                  S5        UR                  [        R                  " S5      5        UR                  S5        UR                  [        R                  " SU S35      5        UR                  SS/5        UR                  S5        UR                  [        R                  " S5      5        UR                  S5        U R                  XS   X[5      nU
R                  5       nU(       a  UR                  S5      (       d  US-  nUR                  S5        UR                  [        R                  " SU S 35      5        UR                  S5        UR                  [        R                  " S5      5        SnU(       a  SnUR                  S5        UR                  U[        R                  " S!U S"U S#U S$35      -   5        UR                  S%5        UR                  [        R                  " S&5      5        UR                  S5        U R                  XS   UUUS'   US(   S)9n[        UU/UU/5      $ )*Nr   rm  rb  r   r   r   r   rt   z--identifier-prefixr   z--symbol-prefixr  z%s
z#include "%s"
r^   z
#include "z"
za
            #define C_ENUM(v) ((gint) v)
            #define C_FLAGS(v) ((guint) v)
            z--fheadz--fprodz>
            /* enumerations from "@basename@" */
            z--vheadz
            GType
            z@enum_name@_get_type (void)
            {
                static gsize gtype_id = 0;
                static const G@Type@Value values[] = {z--vprodzA        { C_@TYPE@ (@VALUENAME@), "@VALUENAME@", "@valuenick@" },z--vtailab                      { 0, NULL, NULL }
                };
                if (g_once_init_enter (&gtype_id)) {
                    GType new_type = g_@type@_register_static (g_intern_static_string ("@EnumName@"), values);
                    g_once_init_leave (&gtype_id, new_type);
                }
                return (GType) gtype_id;
            }rY  r  zK            #pragma once

            #include <glib-object.h>
            z'
            G_BEGIN_DECLS
            z            z
            GType zP@enum_name@_get_type (void);
            #define @ENUMPREFIX@_TYPE_@ENUMSHORT@ (z@enum_name@_get_type())z--ftailz
            G_END_DECLSrk   rj   rC  )r  r{  r   source_strings_to_filesrB  rC  r  relative_namerq  textwrapdedentrJ  rF  endswithr
   )r	  r  rL  rM  hdr_filenamebody_filenamer   decl_decoratorfunc_prefixr   r  r9  r   hdrhdr_pathc_filerK  extra_newlineh_files                      rR   r   GnomeModule.mkenums_simple{  s   " q'"~7)2/,./]+%&JJ-v6I/JKL/"JJ)6/+BCD
 "Vk))E"\11##;;F9<MNCwws'8'8':ELLIHz(3//E O 	 	
 	i'(YX__ 	
 	YX__M 8;< 	= 	i!defYX__	 		 	Y''i/@-W 
!7!7!=!=T!MYX__ O 	 	 	YX__ 	
  MY]X__ -  44?=@W[&\ \ 	] 	YX__ 	 	Y'')$lE+,}- ( /
 !&&!1FF3CDDrQ   )ri   rj   r   c                  U R                  US5      /nUR                  U5        U=(       d8    UR                  R                  R                  R                  [        S5      5      n	[        U	[        5      (       d   S5       e[        UUR                  UR                  UR                  UUU/SUU	/S/US[        R                  " 5       =(       d    [        R                  " 5       SS9$ )Nr,  rj  rk  Trn  zGenerating GObject enum file {})captureri   rj   ri  rh  absolute_pathsrg  r  )r7  r  r  rx  r~  r  r1   r   r{   r   rq  r|  r   
is_windows	is_cygwin)
r	  r  r^   r  r  ri   rj   r   real_cmd_install_dirs
             rR   rF  GnomeModule._make_mkenum_impl  s     7;ooe^6\5]"pe&7&7&@&@&I&I&W&WXabnXo&p,,,8j8,LLH% 	!'')AX-?-?-A9!
 	
rQ   zgnome.genmarshalr   r   r   r   r   )allow_emptyr   r   c                J   US   nUS   n[         R                  " U R                  U5      S5      nU R                  US5      S/nUS   (       a  UR	                  SUS   /5        US   (       aG  U(       a  UR	                  US   5        O+[
        R                  " S	[
        R                  " S
5      SSS9  S H2  nX8   (       d  M  UR                  SUR                  SS5       35        M4     US   n	Sn
[         R                  " U R                  U5      S5      (       a  USS/-  nOSn
US-   nUSS/-   nU(       a  US/-  n[        US-   UR                  UR                  UR                  UUU/U	US   (       a  US   /O/ S/U
US   SS9nUS S/-   n/ n[         R                  " U R                  U5      S!5      (       a  US"U/-  nUR                  U5        [        US#-   UR                  UR                  UR                  UUU S$3/U
US   US%S&9nUU/n[        UU5      $ )'Nr   r^   z	>= 2.53.3r+  r  r   z--prefixrg   zvThe current version of GLib does not support extra arguments 
for glib-genmarshal. You need at least GLib 2.53.3. See z-https://github.com/mesonbuild/meson/pull/2049TFr  )r   r   r   r   r   r  r0  r/  rk   z	>= 2.51.0r  r`  rm  r4  rY  z--pragma-oncerl  rj   rn  rX   z$Generating glib marshaller header {})ri   rj   ri  rd  rX   r  r3  z	>= 2.53.4z--include-headerrc  rb  z$Generating glib marshaller source {})rd  rX   rh  r  )r   r  r  r7  r  r   r  r  rJ  r1  r   rq  r|  r  r
   )r	  r  rL  rM  r  r^   new_genmarshalr  krk   rd  header_filerK  rs   r9  
extra_depsbodyrN  s                     rR   r   GnomeModule.genmarshal  sb   " a#!11$2O2OPU2VXcd15HY1Z\e0f(JJ
F8$456,

6,/0 X!YY'VW"&e5 YAyy

R		#s 3456 Y
   01 ##D$A$A%$H+VVJ
++CGtmz9--o&&ETMLLM"39-3H./b 	/>
  x+++-
##D$A$A%$H+VV(+66Ef%TMLLxr]O/$>
 F^ R((rQ   r   c                   U(       d  / / / / / 4$ / n/ n/ n/ n/ nU GH  n[        U[        5      (       GaR  UR                   V	s/ s H  n	[        U	[        5      (       d  M  U	PM     n
n	U
 GH  n[        R
                  R                  UR                  R                  5       UR                  5       5      n[        R
                  R                  UR                  R                  5       UR                  5       5      nUR                  5       S   SS nUR                  SU-   5        UR                  SU-   5        UR                  SU-   5        UR                  U5        UR                  U5        UR                  U5        GM     GMl  [        U[        5      (       d   S5       eUR                  SU 35        UR                  U5        UR                  U5        GM     XcXEU4$ s  sn	f )z
Packages are special because we need to:
- Get a list of packages for the .deps file
- Get a list of depends for any VapiTargets
- Get package name from VapiTargets
- Add include dirs for any VapiTargets
r   N
--vapidir=	--girdir=z--pkg=rk  )r   r   r^   r   rB  rC  rD  r  r  rr  rt  r  rJ  r{   )r	  r  r   vapi_dependsvapi_packagesvapi_includes	vapi_argsremaining_argsr  tr  rQ  rV  r  outfiles                  rR   _extract_vapi_packages"GnomeModule._extract_vapi_packagesv  s    r2r2%%+-%'%'!#	C#122&)kkOkZ:5N1kO%FWW\\%*;*;*J*J*L*0*;*;*=?FWW\\%*;*;*I*I*K*0*;*;*=?F$00215cr:G$$\F%:;$$[6%9:$$X%78 ''/!((1!((0 & "#s++7Z7+  6#0$$S)%%c*' , nTT) Ps   G# G#c                   UR                   R                  n[        R                  R	                  XRS-   5      n[        USSS9 nU H  nUR                  US-   5        M     S S S 5        [        R                  " [        R                  " SXV5      /XD[        R                  " 5       UR                  5      $ ! , (       d  f       NZ= f)Nz.depsrL  rM  rN  r  T)r  scratch_dirrB  rC  rD  rS  rT  r   r  r   rp  r  r|  )	r	  r  libraryr   rj   r  ru  ofilepackages	            rR   _generate_depsGnomeModule._generate_deps  s    ""..Vw%67%w/5#GdN+ $ 0 zz8==v=>ZbZkZkZmotoo  A  	A 0/s   B66
Cc                    / nUR                  5        H_  n[        U[        R                  5      (       a  UR	                  U5        M5  [        U[
        5      (       d  ML  X R                  U5      -  nMa     U$ r   )get_target_dependenciesr   r   r  rJ  r   _get_vapi_link_with)r	  rQ  rz   r  s       rR   r  GnomeModule._get_vapi_link_with  sc    ,.	113C#u2233  %C++55c::		 4
 rQ   zgnome.generate_vapir   r   r   c                P   / nUS   n[         R                  R                  UR                  R	                  5       UR
                  5      n[         R                  R                  UR                  R                  5       UR
                  5      nU R                  XS   5      u  ppnUR                  S5      SSU 3SU 3/nUR                  US    Vs/ s H  nSU 3PM
     sn5        UR                  US	    Vs/ s H  nS
U 3PM
     sn5        UR                  US    Vs/ s H  nSU 3PM
     sn5        X-  nUS
U-   /-  nUS   n/ nU H  n[        U[        5      (       a1  UR                  [         R                  R                  UU5      5        MI  [        U[        5      (       d  M`  UU R                  U5      -  n[         R                  R                  UR                  R	                  5       UR                  5       5      n[         R                  R                  UUR!                  5       S   5      nUR                  U5        M     US-   nUR                  R"                  R$                  R'                  [)        S5      5      n[        U[        5      (       d   S5       eUS   =(       d!    [         R                  R                  USS5      nUS   (       a$  U R+                  XU
U5      nUR                  U5        [-        UUR
                  UR.                  UR                  UUU/U	US   U/S/S9n[0        R2                  " UR
                  S/U-   S5      /nU/U	-   n[5        S U/ / U/ U/ / 0 / / / 5      nUR                  U5        [7        UU5      $ s  snf s  snf s  snf )Nr   r   vapigenr  z
--library=z--directory=r   ru  r   z--metadatadir=r   rv  r^   z.vapidatadirrk  rj   valavapiri   rn  )r  r^   r  rh  ri   rj   ri  r  F)rB  rC  rD  r  rt  rq  r  r~  rK  r  r   r{   rJ  r   r  rr  r  rx  r~  r  r1   r  r   r|  r   r  r   r
   )r	  r  rL  rM  created_valuesr  rD  rl   pkg_cmdrw  rx  ry  r   r  rS  inputsrz   r   rq  gir_filevapi_outputr  rj   deps_targetvapi_targetincsr^   rN  s                               rR   r   GnomeModule.generate_vapi  sR   " CEq'GGLL!2!2!@!@!BELLQ	WW\\%"3"3"B"B"DellS
HLHcHcdir|k}H~E}X!!),i:gY9OS_`i_jQkl

f[.AB.Aj$.ABC

&2IJ2IQnQC(2IJK

VJ-?@-?isO-?@A :-..	",.	A!S!!

277<<
A67Ay))T55a88	e&7&7&E&E&G&'lln677<<0BC

8$  '##,,55CCIiDXY'3''33']+Trww||GVV/T)--em[YK!!+. LL M&9%$ 	
$ !!%,,0EuMN-,.dBIr7BPRTVXZ\^`bcb! ^44e CJ@s   N9N!N#)
r  r   r   r   r  r   r  r  r  r  )r   'Interpreter'r  None)r  'ModuleState'r  r{   )r  r  r  r  )r  r  )r  r  r3  r{   r  z
'ToolType')r  r  rL  T.List['TYPE_var']rM  z'PostInstall'r  r
   )r  r  rL  zT.Tuple[str, 'FileOrString']rM  z'CompileResources'r  z'ModuleReturnValue')
r  r  r  r{   r}  rD   re   zCT.Sequence[T.Union[mesonlib.File, CustomTarget, CustomTargetIndex]]r  zeT.Tuple[T.List[mesonlib.FileOrString], T.List[T.Union[CustomTarget, CustomTargetIndex]], T.List[str]])FF)r  r  r  z1T.Union[build.SharedLibrary, build.StaticLibrary]r   gT.Sequence[T.Union[build.BuildTarget, 'build.GeneratedTypes', 'FileOrString', build.StructuredSources]]r  rB   r  rB   r  yT.Tuple[T.List[str], T.List[T.Union[build.BuildTarget, 'build.GeneratedTypes', 'FileOrString', build.StructuredSources]]])r  UT.Sequence[T.Union['Dependency', build.BuildTarget, CustomTarget, CustomTargetIndex]]r  r  r   r  r  rB   r  rB   r  zT.Tuple[OrderedSet[str], OrderedSet[T.Union[str, T.Tuple[str, str]]], OrderedSet[T.Union[str, T.Tuple[str, str]]], OrderedSet[str], T.List[T.Union[build.BuildTarget, 'build.GeneratedTypes', 'FileOrString', build.StructuredSources]]])r  r  r  r  r   r  r  rB   r  rB   r  zT.Tuple[OrderedSet[str], T.List[str], T.List[str], OrderedSet[str], T.List[T.Union[build.BuildTarget, 'build.GeneratedTypes', 'FileOrString', build.StructuredSources]]])r  =T.Union[Executable, build.StaticLibrary, build.SharedLibrary]r  r  r  r  )r6  r{   r  r{   r  r  )r   zbuild.Buildr  r  )r  r  r  zT.Tuple[Dependency, T.Union[Executable, 'ExternalProgram', 'OverrideProgram'], T.Union[Executable, 'ExternalProgram', 'OverrideProgram']])r  r  r  r{   r  rB   )r  r{   r  rB   )r  r  rw   rv   r  z4T.Tuple[T.List[str], T.List[str], T.List[GirTarget]])r  r  r  T.Iterable[str]r  rD   )r  r  r'  T.Sequence[build.BuildTarget]r  z T.List[T.Union[str, Executable]])r'  r  r   T.List[T.Tuple[str, 'Compiler']])r'  r  r  zOT.List[T.Union[build.BuildTarget, CustomTarget, CustomTargetIndex, Dependency]])r'  r  r  zOrderedSet[build.IncludeDirs])r  r  rF  r  r  z.T.Tuple[T.List[str], T.List[str], T.List[str]])r  r  rV  r{   rW  r{   r}   r{   r'  r  rX  zWT.Sequence[T.Union[str, mesonlib.File, GeneratedList, CustomTarget, CustomTargetIndex]]r  r{   )r  r  rl  r{   rm  zQT.Sequence[T.Union['FileOrString', Executable, ExternalProgram, OverrideProgram]]rn  WT.Sequence[T.Union[str, mesonlib.File, CustomTarget, CustomTargetIndex, GeneratedList]]r   zgT.Sequence[T.Union['FileOrString', build.BuildTarget, 'build.GeneratedTypes', build.StructuredSources]]ro  zT.Sequence[str]rM  r  r  r   )r  r  ry  r{   rz  zCT.Sequence[T.Union[str, Executable, ExternalProgram, CustomTarget]]rn  r  rM  r  r  r   )r  r  r  zST.Sequence[T.Union[Dependency, build.BuildTarget, CustomTarget, CustomTargetIndex]]r   r  r  r  )r  r  r  rD   r  rD   )r  r  r  r  )r  r  r  ztuple[list[str], list[str]])r  r  rL  zNT.Tuple[T.List[T.Union[Executable, build.SharedLibrary, build.StaticLibrary]]]rM  z'GenerateGir'r  r
   )r  r  rL  r  rM  z'CompileSchemas'r  r
   )r  r  rL  zT.Tuple[str, T.List[str]]rM  z'Yelp'r  r
   )r  r  rL  T.Tuple[str]rM  z'GtkDoc'r  r
   )r   rD   r  r   r  r   r  r  r   z>T.Sequence[T.Union[build.BuildTarget, 'build.GeneratedTypes']]r  r  )r  r  rL  r  rM  z'TYPE_kwargs'r  r{   )r  r  rL  zGT.Tuple[str, T.Optional[T.Union['FileOrString', build.GeneratedTypes]]]rM  z'GdbusCodegen'r  r
   )r  r  rL  r  rM  z	'MkEnums'r  r
   )r  r  rL  r  rM  z'MkEnumsSimple'r  r
   )r  r  r^   r  r  r{   r  rD   ri   rB   rj   z*T.Optional[T.Sequence[T.Union[str, bool]]]r   zMT.Optional[T.Sequence[T.Union[CustomTarget, CustomTargetIndex, BuildTarget]]]r  zbuild.CustomTarget)r  r  rL  r  rM  z'GenMarshal'r  r
   )r  r  r   z(T.List[T.Union[InternalDependency, str]]r  zOT.Tuple[T.List[str], T.List[VapiTarget], T.List[str], T.List[str], T.List[str]])
r  r  r  r{   r   rD   rj   r{   r  z
build.Data)rQ  r   r  zT.List[build.LibTypes])r  r  rL  r  rM  z'GenerateVapi'r  r
   )^rK   rL   rM   rN   r	   INFOr   r  r   run_oncero  staticmethodr#  r7  r'   r(   rB   r)   r   r{   r#   r%   r   r*   rp  r   r   r   r   r   r   evolver   r    r   rv  r  r  r  r  r  r  r  r  	functools	lru_cacher  r  r!  r*  r1  r6  r9  rH  r_  rs  r{  r  r  r  r  r   r   r  r  r   r   r  r   r   r   r   r   r"   r   r  r$   r   r!   r   r   r   r   r   r   rF  r   r~  r  r  r   r   rP   __classcell__)r
  s   @rR   r   r      s3   gD6
( 1 1 - - 7 7 ($>$&7c&BBX\])4?+T5Q($XN $h/*+ 0 *+X -sS(--Whjw4xy!/x@(S(O,."3D8==,Xi:j"kuw  BF  	G(D%x@$dEJ, 1$ <bRVWU)"4U)9LU) zU)n G+ G+.1G+@KG+]G+ wG+ G+X .3,1	)M) !H) '+) &*	)
 V)<[Pm[P [P }[P  	[P
 [P~[PB #(!&PmP P }P  	P
 P~P6 ].
)= &1 '1 *O* *  	 	  B 	 	 #r    :(V: :8 %&)%7T%(A%
 !$% %81
 1
 1
 l	1

 u1
 }1
 '1
 '1
 ,51
f 
*m
 /F
 &8
 =J
 
: &- &-e&- }&- K	&- &-P     
 
 (:u?R?RTYTgTg2hvwx  x 0G$."3D*"Er[_`,hw?#%6tS%A2W[\"D%xH(-dC8"dS%'8s'CRY]^'):4#uGXGXAY)Zdfptu*/sI6FGQS]ab-$!1B#c4%:%*,a$b[	] 	#dH%5XF'#tX)>%*,e$f[	] 	+08K8KUM`M`7ablnx|}+sT2+sT2).tc8==-Yegx5yz  EG  QU  	V/#4T3#?UYZ58u)*u)/@u)9 y:u)n )+<+C+C(+C+SUde7 f 70 L#s3*45"S		
 	',T37rR).tS94QST/46{0 4{0z NC((-dC8RT^bc'4h?/#4TCP]_km~;  $A  KM  W[  	\dZ1D1DeFYFY$Z["	& 	(*;D3BV*Wacmqr."3D#">TXY%'8X]]?S'T^`jno+0s;RQUV-!24#x}}9M!NXZdhi"$5dC$@"VZ[!dS%*;*;$<="	& 	)T40-!24!=rSWX+X/*sHo.+0s;RQUVCx&'FG	I 	"C8D+sBh?+0s;RQUV/#4T3#?UYZ).tc5;L;L5MNX\gkl? Bt5C  )Dt5l !c !, ! "` !eR !D +S1; 2 ; )3#x}}l\mo|9}8~  x 0$$84, 1$ <HVXbfg$sHo6+X/"D%8,TD#;?+I		
 	"D%xH)c8_-%#x8*sHoW=3	&'AB	D 	H-+.|3,|31B|3/ @0|3| OS)	 	 	dS(--GX%2%4 5	
	 	,hmmX >? 	,hmmX >? 	*sHo. 	'C?+ 	'C?+  	'C?+!" 	'C?+#$ 	'C?+%& 	'C?+'( 	'C?+),97- *.97v &1*C0	 	dS(--$89		
 	/33 	#S"5 	-b1 	+sB/lE 1 2 lEj "FJei!
 !
 m!
 	!

 !
 !
 D!
 c!
 $!
F &,X.)/0, 1$ <dTVW*dE2*dE2(S(O,-u5).tc8==5IW\]gkvz{(D%0&e<H) - H)T&U$s&UPA )3/dS)$4%H		
 	+0s;TSUV/#4T3#?WYZ*/c:DRTU*/s<N6OPZ^hjk:5 0 :5rQ   r   c                   [        U 5      nUR                  R                  [        [        R                  5        UR                  R                  [
        [        R                  5        UR                  R                  [        [        R                  5        UR                  R                  [        [        R                  5        UR                  R                  [        [        R                  5        U$ r   )	r   r   append_holder_mapr   CustomTargetHolderr   r   r   r   )interpmods     rR   
initializer    s    
f
COO%%o{7U7UVOO%%&;[=[=[\OO%%i1O1OPOO%%m[5S5STOO%%j+2P2PQJrQ   )r   z!T.List[T.Union[str, T.List[str]]]r  rc   )r  r  r  r   )j__doc__
__future__r   r{  r  r  rB  r  rV  typingr  r  r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   re   r   r   dependencies.pkgconfigr   r   interpreter.type_checkingr   r   r   r   r   r    r!   r"   interpreterbaser#   r$   r%   r&   r'   r(   r)   interpreterbase.decoratorsr*   r+   r,   r-   r.   r/   r0   optionsr1   programsr2   scripts.gettextr3   TYPE_CHECKINGtyping_extensionsr4   r5   r6   r7   r8   ry  r9   r:   r;   r<   r=   r>   r@   rT   rZ   ra   rn   r   r   r   r   r   r   r   Unionr   rO   rB   r   r   r{   r   r  r   r   r  r   r  rI   rQ   rR   <module>r     s  
G "    	          ` ` 9 L [  [  [ P P H H 7    & *????#$)7'*#i #+ +
y  9  #i #*\ \2By B !Y !";y ;' ' O. O ''*o"NOHiO &/d& ?  *3dC 	*&  +,!C?3oX/	+ ' 6  + }5/ }5~?rQ   