
    -Ph                   d   U d Z ddlmZ ddlZddlZddlZddlZddlZddlZddl	Z
ddlmZmZmZmZmZmZmZmZ ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZmZmZmZmZ ddlmZmZ ddl m!Z!m"Z" ddl#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+ ddl,m-Z-m.Z.m/Z/m0Z0 ddl,m1Z1m2Z2m3Z3 ddl4m5Z5 ddlm6Z6m7Z7m8Z8m9Z9m:Z:m;Z; ddl<m=Z= ddl>m?Z? ddl@mAZA e
jB        rddlCmDZDmEZE ddlmFZF ddlmGZG ddlHmIZI ddlmJZJ ddl,mKZKmLZL ddlmMZM ddl>mNZN  G d deE          ZO G d  d!eE          ZP G d" d#eE          ZQ G d$ d%eE          ZR G d& d'eE          ZS G d( d)eE          ZT G d* d+eE          ZU G d, d-eE          ZV G d. d/eE          ZW G d0 d1eE          ZX G d2 d3eX          ZY G d4 d5eX          ZZe
j[        eeNe?f         Z\ e2d6e]d78          Z^d9e_d:<    e2d; e3e`ea          g d7<          Zbd=e_d><    e(jc        d?@          e' e2dAeae)f           e2dBeae)f          gZddCe_dD<   dPdIZedJZf G dK dLe          ZgdQdOZhdS )RzThis 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	TypedDict)ModuleState)BuildTarget)Compiler)Interpreter)TYPE_varTYPE_kwargs)FileOrString)ExternalProgramc                  B    e Zd ZU ded<   ded<   ded<   ded<   ded<   dS )	PostInstallboolglib_compile_schemasT.List[str]gio_querymodulesgtk_update_icon_cacheupdate_desktop_databaseupdate_mime_databaseN__name__
__module____qualname____annotations__     X/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/mesonbuild/modules/gnome.pyr?   r?   2   sN         """"%%%%####%%%%""""""rM   r?   c                  $    e Zd ZU ded<   ded<   dS )CompileSchemasr@   build_by_defaultT.List[FileOrString]depend_filesNrG   rL   rM   rN   rP   rP   9   s*         ******rM   rP   c                  8    e Zd ZU ded<   ded<   ded<   ded<   dS )YelprB   	languagesmediasourcesr@   symlink_mediaNrG   rL   rM   rN   rU   rU   >   sB         rM   rU   c                  t    e Zd ZU ded<   ded<   ded<   ded<   ded	<   ded
<   ded<   ded<   ded<   ded<   dS )CompileResourcesr@   rQ   T.Optional[str]c_namez?T.List[T.Union[mesonlib.File, CustomTarget, CustomTargetIndex]]dependenciesexportrB   
extra_argsgresource_bundleinstallinstall_dirinstall_header
source_dirNrG   rL   rM   rN   r[   r[   E   s         UUUU$$$$rM   r[   c                      e Zd ZU ded<   ded<   ded<   ded<   ded	<   ded
<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   dS )GenerateGirr@   rQ   zT.List[Dependency]r^   r\   
doc_formatrB   export_packagesr`   fatal_warningsheaderidentifier_prefixz'T.List[T.Union[build.IncludeDirs, str]]include_directoriesT.List[T.Union[str, GirTarget]]includesrb   install_dir_girinstall_dir_typelibz9T.List[T.Union[build.SharedLibrary, build.StaticLibrary]]	link_withstr	namespace	nsversion3T.List[T.Union[FileOrString, build.GeneratedTypes]]rX   symbol_prefixNrG   rL   rM   rN   rg   rg   R   s         ((((####$$$$&&&&DDDD1111((((,,,,LLLLDDDD""""""rM   rg   c                      e Zd ZU ded<   ded<   ded<   ded<   ded<   ded	<   d
ed<   d
ed<   d
ed<   d
ed<   d
ed<   ded<   d
ed<   d
ed<   ded<   ded<   ded<   ded<   ded<   d
ed<   ded<   ded<   dS ) GtkDoc'T.List[T.Union[str, build.IncludeDirs]]src_dirrs   	main_sgmlmain_xmlmodule_versionrt   z&Literal['xml', 'smgl', 'auto', 'none']moderB   	html_args	scan_argsscanobjs_argsfixxref_args	mkdb_argsz3T.List[T.Union[build.GeneratedTypes, FileOrString]]content_filesignore_headersrc   r@   checkrb   rR   gobject_typesfilehtml_assetsexpand_content_filesc_argsrm   ET.List[T.Union[Dependency, build.SharedLibrary, build.StaticLibrary]]r^   NrG   rL   rM   rN   ry   ry   g   s        88884444""""!!!!JJJJ####    ////))))2222DDDD[[[[[[rM   ry   c                  ~    e Zd ZU ded<   ded<   ded<   ded<   ded	<   ded
<   ded<   ded<   ded<   ded<   ded<   dS )GdbusCodegenrR   rX   rB   r`   r\   interface_prefixrt   r@   object_managerrQ   zT.List[T.List[str]]r   rd   rc   docbookz,Literal['all', 'none', 'objects', 'default']autocleanupNrG   rL   rM   rN   r   r      s         %%%%))))""""(((($$$$    AAAAAArM   r   c                      e Zd ZU ded<   ded<   ded<   ded<   ded	<   ded
<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   dS )
GenMarshalr\   build_alwayszT.Optional[bool]build_always_stalerQ   zT.List[mesonlib.File]rS   rB   r`   rc   r@   rd   internalnostdincprefixskip_sourcerR   rX   stdincvalist_marshallersNrG   rL   rM   rN   r   r      s         %%%%,,,,****++++$$$$%%%%      rM   r   c                  V    e Zd ZU ded<   ded<   ded<   ded<   ded	<   ded
<   ded<   dS )GenerateVapirn   rX   r\   rc   r@   rb   rB   	vapi_dirsmetadata_dirsgir_dirsz(T.List[T.Union[str, InternalDependency]]packagesNrG   rL   rM   rN   r   r      sc         0000$$$$""""::::::rM   r   c                  8    e Zd ZU ded<   ded<   ded<   ded<   dS )_MkEnumsCommonr@   rd   r\   rc   rl   rw   NrG   rL   rM   rN   r   r      sB         $$$$****&&&&&&rM   r   c                  B    e Zd ZU ded<   ded<   ded<   ded<   ded<   dS )	MkEnumsSimplerR   rX   rs   header_prefix	decoratorfunction_prefixbody_prefixNrG   rL   rM   rN   r   r      sK         %%%%rM   r   c                      e Zd ZU ded<   ded<   ded<   ded<   ded<   ded	<   ded
<   ded<   ded<   ded<   ded<   ded<   dS )MkEnumsrv   rX   zT.Optional[FileOrString]
c_template
h_templater\   commentseprodfheadfprodftailvheadvprodvtailz=T.List[T.Union[BuildTarget, CustomTarget, CustomTargetIndex]]dependsNrG   rL   rM   rN   r   r      s         DDDD,,,,,,,,!!!!NNNNNNrM   r   rQ   TdefaultzKwargInfo[bool]_BUILD_BY_DEFAULTr`   r   listifyzKwargInfo[T.List[str]]_EXTRA_ARGS_KWrd   namerl   rw   zT.List[KwargInfo]_MK_ENUMS_COMMON_KWSr   !T.List[T.Union[str, T.List[str]]]returnr\   c                   d}| sdS t          d | D                       rt          |           dk    rdS |S t          d | D                       s6t          |           D ]%\  }}t          |t                    sd|dz    dc S &nNt          |           D ]>\  }}t          |          dk    st          d	 |D                       sd|dz    d
| c S ?dS )z+Validate gdbus-codegen annotations argumentz8must be made up of 3 strings for ELEMENT, KEY, and VALUENc              3  @   K   | ]}t          |t                    V  d S N
isinstancers   .0annots     rN   	<genexpr>z(annotations_validator.<locals>.<genexpr>   s,      ==Zs##======rM      c              3  @   K   | ]}t          |t                    V  d S r   )r   listr   s     rN   r   z(annotations_validator.<locals>.<genexpr>   s,      BBUE4((BBBBBBrM   zelement r   z must be a listc              3  @   K   | ]}t          |t                    V  d S r   r   )r   is     rN   r   z(annotations_validator.<locals>.<genexpr>   s,      )L)L*Q*<*<)L)L)L)L)L)LrM    )alllen	enumerater   r   )r   badlistcr   s       rN   annotations_validatorr      s5    IG 2t	=====	=	= 2{q  4NBBkBBBBB 2!+.. 	7 	7HAueT** 76!A#6666667	7 "+.. 	2 	2HAu5zzQc)L)Le)L)L)L&L&L1!A#1111111 4rM   z	>= 2.51.1c            "          e Zd Z ed          Zd& fdZd'd
Zej        d(d            Z	e
d)d            Ze
d*d            Z ed eded           ed eee          g d           eded           ededd           ededd                    e edd          d+d#                                    Z ed$eeej        eeef           ed$eee ej        d%d&'          e ed(ee f           ed) eeej        eef          g d           ed*edd&           ed+edd&           ed, eee          g d                    d,d0                        Z!e
d-d6            Z"	 	 d.d/d?Z#d0dCZ$	 	 d.d1dEZ%d2dHZ&d3dKZ'd4dNZ(d5dPZ) e*j+        dQR          d6dT            Z,e
d7dX            Z-e
d8d[            Z.e
d9d_            Z/e
d:da            Z0e
d;dc            Z1e
d<de            Z2e
d=dh            Z3e
d>dn            Z4e
d?dy            Z5e
d@d~            Z6e
dAd            Z7e
dBd            Z8e
dCd            Z9e
dDd            Z: ede;e<j=        e<j>        fd           edee                    d          e e?j        d           ed) eee@          g d           edee fd           ed eee          g d           ededd           ed eee          g d           ed eee          g d           ed eeee<jA        f          g d           edU eeeeBf          g d           edee fd           edeee fddid            edee fd           edeee fddid            ed eee<j=        e<j>        f          g d           eded           edked           ed eeeej        eeef          g d           ed eee          g d                    dEd                        ZCe ede                    d          eD          dFd                        ZE edee           ed ed eee          dg dd           ed eee          dg            ed eee          dg            eded                    dGd                        ZF ede           ed ed eee          dg d           ededd           ed eeeej        eeef          g d           ed) eee@e<j=        e<j>        f          dg            ed eeeej        f          g d           ed eee          g d           ed eeeej        f          g d           ed eee          g d           ed eeeej        f          g d           ed eee          g d           ed eeee<jA        f          dg            eded           ed eee          g d           edee f           edee f           ed eee          g d           ededd& eGh dʣ          ˦           ededd           ededd&           ed eee          g d           ed eee          g d           ed eeee<jA        f          ddѦ                    dHdԄ                        ZHdIdلZIeJ ede          dJd܄                        ZK edeeej        eeefgަ           ede                    d           eLj        d߬           ed eee          dg d           edee f           edee f           eded           ed eeeef          g eMd            ed%edd߬           edee f           ededd eGh d          ˦           ej        d߬                    dKd                        ZN ede           edgeOeP ed eeeej        eeef          ddѦ           edeej        e f           edeej        e f           edee f           edee f           edee f           edee f           edee f           edee f           edee f           edee f          R  dLd                        ZQ edd           ede           edgeO ed eeeej        f          ddѦ           ededͬ           ededͬ           ededͬ           ed edͬ          R  dMd                                    ZRddQdQddNd	ZS ed
e           ed
 eDj        d           ePj        d           ej        d%          e ed eee          dg            eded           eded           edee f           eded           ed eeeej        fd          ddѦ           eded           eded                    dOd                        ZTdPdZUdQdZVdRdZW ed e           ed ee ed eeeeBfd          ddѦ           ed! eee          dg            ed" eee          dg            ed# eee          dg            ed eeeeXf          dg                     dSd%                        ZY xZZS (T  GnomeModulegnomer   'Interpreter'r   Nonec                   t                                          |           d | _        d | _        d | _        d| _        g | _        d| _        d| _        d| _	        d | _
        d | _        | j                            | j        | j        | j        | j        | j        | j        | j        | j        | j        | j        | j        | j        d           d S )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     rN   r   zGnomeModule.__init__   s    %%%/3\`]a,1)57%-2*/4,,1)AE48  -!%!7 -#3Ik#3!/|"1/!/
 
 	 	 	 	 	rM   state'ModuleState'rs   c                    | j         bt          d|j        ddd          }|                                r|                                | _         nt          j        d           d| _         | j         S )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   r   glib_deps      rN   _get_native_glib_versionz$GnomeModule._get_native_glib_version  s    #+*:u7H6:+N+NP PH~~ 2+3+?+?+A+A(( O P P P+1(''rM   c                    t          j        |                     |          t                    s,t	          j        dt	          j        d          dd           d S d S )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     rN   __print_gresources_warningz&GnomeModule.__print_gresources_warning%  sr    '(E(Ee(L(L(DF F 	1L Z#VWW"%1 1 1 1 1 1	1 	1rM   c                 Z    t          j        dt          j        d          dd           d S )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  rL   rM   rN   _print_gdbus_warningz GnomeModule._print_gdbus_warning.  s>     LYPQQe	- 	- 	- 	- 	- 	-rM   tool
'ToolType'c           	         ddddddddd}||         }|                     dd          }|                     |||          S )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   r  tool_mapdepnamevarnames        rN   
_find_toolzGnomeModule._find_tool5  s\     !*$-&/&)&78	
 	
 4.,,sC((tWg666rM   zgnome.post_installrA   Fr   rC   Tr   rD   rE   z0.59.0)r   sincerF   z0.64.0z0.57.0argsT.List['TYPE_var']kwargs'PostInstall'r
   c                   g }t           j                            |j                                        |j                                                  }|d         r}| j        svd| _        |                     |d          }t           j                            |dd          }|j        	                    ||g          }d|_
        |                    |           |d         D ]}	|	| j        vr| j                            |	           |                     |d          }t           j                            |j                                        |	          }
|j        	                    ||
g          }d|_
        |                    |           |d         r| j        sd| _        |                    d	d
          }t          |t                     p|                                }|s|                    d          }t           j                            |dd          }|j        	                    |ddd|g          }d|_
        |                    |           |d         r|| j        sud| _        |                    d          }t           j                            |d          }|j        	                    |d|g          }d|_
        |                    |           |d         r{| j        std| _        |                    d          }t           j                            |d          }|j        	                    ||g          }d|_
        |                    |           t)          d |          S )NrA   Tr  r   schemasrC   r  rD   zgtk4-update-icon-cacheFr   zgtk-update-icon-cacheiconshicolor-qz-tz-frE   zupdate-desktop-databaseapplicationsrF   zupdate-mime-databasemime)ospathjoinr   
get_prefixget_datadirr   r$  backendget_executable_serialisationskip_if_destdirappendr   r   find_programr   r   r  r   r   r
   )r   r   r&  r(  rvdatadir_absprog
schemasdirscriptd	moduledirr  icondirappdirs                 rN   r   zGnomeModule.post_installE  s2    :<gll5#4#?#?#A#A5CTC`C`CbCbcc() 	$2S 	04D-??5*@AADk:yIIJ]??z@RSSF%)F"IIf*+ 	" 	"A555-44Q777u.@AAGLL):)E)E)G)GKK	CCT9DUVV)-&		&!!!)* 		43U 		15D.%%&>%OODtZ00@DJJLLE C))*ABBgll;CCG]??tTSWY`@abbF%)F"IIf+, 	T5Y 	37D0%%&?@@DW\\+~>>F]??tV@TUUF%)F"IIf() 	$2S 	04D-%%&<==DW\\+v66F]??vOOF%)F"IIf r***rM   zgnome.compile_resourcesrd   z0.37.0)r   r%  r]   r^   r_   ra   re   T.Tuple[str, 'FileOrString']'CompileResources''ModuleReturnValue'c                	   |                                 |                               }|                     d          }|dg}|d         }|d         }|\  }	}
g }g }|D ]}t          |t          j                  r|                    |j                   7|                    |           |                    |                                           t	          j	        |t                    sd}t          |          t	          j	        |t                    st          |
t          j                  ru|
j        rCt          j                            j                                        |
j        |
j                  }nt          j                            |
j        |
j                  }nVt          |
t&          t(          t*          f          rt          d          t          j                            j        |
          }|                     |||          \  }}}ng }fd|D             }||z  }|                    t          j                            j        j                             t1          t3          d |D                                 }|D ]	}|d	|gz  }
|d
         r|d|d
         gz  }|d         s|dgz  }|g dz  }||d         z  }|d         }|r|	 d}|	 d}nUdj        j        j        j        v r|	 d}|	 d}n2dj        j        j        j        v r|	 d}|	 d}nt          d          |d         r(|st          d          |d         st          d          |d         }|r|rt          d          |r|d         st          d           d }t	          j	        |t                    s|}n| d!}t;          j        |          d"d#gz   }t=          |j        j        j        ||
g|g|d$         ||||d         |d         r	|d         gng d%g&          }||_         |rtC          ||g          S |d         p0j        j        j"        #                    tI          d'                    }t          |tJ                    s
J d(            tM          |	 d)j        j        j        ||
g|	 d*g|d$         |||gd+g,          }||g}tC          ||          S )-Nr  @INPUT@re   r^   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                f    g | ]-}t           j                            j        j        |          .S rL   )r2  r3  r4  build_to_srcsubdir)r   rA  r   s     rN   
<listcomp>z1GnomeModule.compile_resources.<locals>.<listcomp>  s0    ^^^Qrw||E$6aHH^^^rM   c              3  T   K   | ]#}t           j                            |          V  $d S r   )r2  r3  normpath)r   dirs     rN   r   z0GnomeModule.compile_resources.<locals>.<genexpr>  s2      %S%Sbg&6&6s&;&;%S%S%S%S%S%SrM   --sourcedirr]   z--c-namer_   
--internal)z
--generatez--target@OUTPUT@r`   ra   z
.gresource
_gresourcer   .c_ccppz.cpp_cppzFCompiling GResources into code is only supported in C and C++ projectsrb   zGThe install kwarg only applies to gresource bundles, see install_headerrc   z[gnome.compile_resources: "install_dir" keyword argument must be set when "install" is true.rd   z<The install_header kwarg does not apply to gresource bundlesz7GResource header is installed yet export is not enabledz.dz--dependency-filez	@DEPFILE@rQ   runtime)rQ   depfilerS   extra_dependsrb   rc   install_tag
includedirfor mypy_h.hdevel)rQ   r[  rb   rc   r\  )'&_GnomeModule__print_gresources_warningr  r$  r   r   Filer:  rL  
get_subdirr
  r  r,   is_builtr2  r3  r4  r   get_build_dirfnamer   r   r   _get_gresource_dependenciesrK  r   r-   coredata	compilershostcopyr   
subprojectsource_dirsr
   optstoreget_value_forr1   rs   r   )r   r   r&  r(  glib_versionglib_compile_resourcescmdrn  r^   target_name
input_filesubdirsr   depmifilerS   re   	gresourceoutputr   rd   rZ  
target_cmdtarget_crc   target_hr<  s    `                          rN   r   zGnomeModule.compile_resources{  s     	''...44U;;!%8P!Q!Q1G0S\*n-"&Z  "DF 
	, 
	,C#x}-- 	,sz****s###s~~//000/>Z[[ ,NA )+++	, '6RSS 	
 *hm44 ? & NGLL):)H)H)J)JJL]_i_oppEEGLL):J<LMMEEJ7H-(XYY ?$ &b c c c U\:>>-1-M-Muk<.9 .9*L'77 L _^^^R]^^^w27<<(:ELIIJJJ :%S%S{%S%S%SSSTT% 	/ 	/JM:..CC( 	2Jx 011Ch 	"L>!C5555vl##-.	 	o#///F!---DDe'0:???'+++%)))%+4>CCC'---%+++$%mnnn) 	D D$%noooM* D$  &C  D  D  D 01 	ai 	a !_``` 	\&"2 	\ !Z[[[#''6RSS 	MJJmmmG3+>*LLJ"LLH#$67%!9%39-3HP.//b"
 
 
   + 	;$Xz:::]+yu/@/I/R/`/`ajkwaxax/y/y+s++77Z777(LL #$67!"$ 	
 
 
 ! R(((rM   ru  rn  rB   CT.Sequence[T.Union[mesonlib.File, CustomTarget, CustomTargetIndex]]eT.Tuple[T.List[mesonlib.FileOrString], T.List[T.Union[CustomTarget, CustomTargetIndex]], T.List[str]]c           	        d|dg}|d| j         gz  }|D ],}|dt          j                            | j         |          gz  }-	 t	          || j                                                  \  }}}n$# t          t          f$ r t          d          w xY w|j
        dk    r<d|d          d	| }	t          j        |	           t          j        |j
        |          |                    d
          d d         }
g }g }g }|
                                D ]}t          j                            |          }|D ]}t%          |t&          j                  rS|j        |k    r)|
                    |           |                    |           |                    |j                     n-t%          |t0          t2          f          rd }d |                                D             }|D ]\  }}||k    r|} n|S|
                    |           |                    |           |                    |                                            n	 t&          j                            | j                                        d|          }n$# t          $ r t          d| d| d          w xY w|
                    |           |                    |           |                    |
           |||fS )Nr  z--generate-dependenciesrQ  )cwdz)Could not execute glib-compile-resources.r   z6glib-compile-resources failed to get dependencies for r   z:

c                P    h | ]#}|t           j                            |          f$S rL   )r2  r3  basename)r   os     rN   	<setcomp>z:GnomeModule._get_gresource_dependencies.<locals>.<setcomp>I  s-    SSSA27#3#3A#6#67SSSrM   .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.)rL  r2  r3  r4  r.   r   get_source_dirFileNotFoundErrorPermissionErrorr,   
returncoder   r  
subprocessCalledProcessErrorsplitrl  r  r   r   rc  rg  remover:  r   r   get_outputsrd  from_source_fileextend)r   ru  rn  r^   rs  re   pcstdoutstderrrx  raw_dep_filesr   rv  	dep_filesresfileresbasenamerw  rg  outputsr  baseofs                         rN   rh  z'GnomeModule._get_gresource_dependencies   s\    ((*
 	u|,,% 	K 	KJM27<<j#I#IJJCC	N!+CU5F5U5U5W5W!X!X!XB!?3 	N 	N 	N !LMMM	N=A\Q\\TZ\\ALOOO/sCCC%+\\$%7%7%<DF!35	$))++ )	$ )	$G'**733K# '$ '$c8=11 yK// !((111$$S)))NN3:...El4E%FGG  ESSARARSSSG$+ " "5 K//$%E!E 0 (%,,W555s+++s~~'7'7888- 66u7H7W7W7Y7Y7:GE EAA% - - -(,W , ,: , , ,- - -- $$W---  ###''''7**s   ,A/ /!B8J!J%lib1T.Union[build.SharedLibrary, build.StaticLibrary]r   gT.Sequence[T.Union[build.BuildTarget, 'build.GeneratedTypes', 'FileOrString', build.StructuredSources]]include_rpathr@   use_gir_argsyT.Tuple[T.List[str], T.List[T.Union[build.BuildTarget, 'build.GeneratedTypes', 'FileOrString', build.StructuredSources]]]c                >   g }t          |          }t          |t          j                  rt          j                            |j                                        |j	        
                    |                    }|                    d|z              |r|                    d|z              |                    |           |j	                            |          D ]k}	t          j                            |j                                        |	          }	|                    d|	z              |r|                    d|	z              l|r3|                     d          r|                    d|j        z              n|                    d|j        z              ||fS )N-L-Wl,-rpath,--extra-library--extra-library=-l)r   r   r   SharedLibraryr2  r3  r4  r   rf  r7  get_target_dirr:  determine_rpath_dirs_gir_has_optionr   )
r   r   r  r   r  r  link_commandnew_dependslibdirrA  s
             rN   _get_link_argszGnomeModule._get_link_argsj  s    %'7mmc5.// 	;W\\%"3"A"A"C"CU]EaEabeEfEfggFv... <##MF$:;;;s###
 ]77<< ; ;GLL!2!@!@!B!BAFF##D1H---  ; ''(9::: 	1D001BCC 	1 2SX =>>>>sx000[((rM   depsUT.Sequence[T.Union['Dependency', build.BuildTarget, CustomTarget, CustomTargetIndex]]T.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]]]c           	     h   t                      }t                      }t                      }t                      }	t          j        |          }t          |          }|D ]}
t	          |
t
                    rO|
                    ddd          }|r5t	          |t                    s
J d            |	                    |g           t	          |
t                    rW|                    |

                                           |                    |                    |
j                             |
j        D ]}t	          |t          j                  r|                     ||||          \  }}|                    |           |                     |                                ||||          }|                    |d                    |                    |d                    |                    |d                    |	                    |d                    |d	         }|                     |
j        ||||          }|                    |d                    |                    |d                    |                    |d                    |	                    |d                    |d	         }|
j        D ]t}t	          |t*                    r]|	                    t,          j                            |j                                        |                                          g           ut	          |
t
                    r|                    |

                                           t9          |
                    d
                    }|D ]S}t,          j                            |          rt?          |
dd          rt,          j                             |          }|                    d| g           |r|                    d| g           t,          j        !                    |          }|"                    d          r
|dd          }|#                    d          d         }d| }|"                    d          r|"                    d          s|dk    r'|                    |tI          |          fg           =|                    |g           Ut	          |
t          j%        t          j        f          rQ|                    |                    |
&                                                     |'                    |
           tQ          j)        d|
d           |r/| *                    d          rdd} ||          } ||          }||||	|fS )Ngirdir 	pkgconfigr   default_valuer^  r   r   r   r      T)raw
is_libtoolFr  r  r  z.sor  z-Wz
-frameworkzdependency z not handled to build gir filesr  ldflags+T.Iterable[T.Union[str, T.Tuple[str, str]]]r   +OrderedSet[T.Union[str, T.Tuple[str, str]]]c                    t                      }| D ]X}t          |t                    r,|                    d          r|                    ddd          }|                    |           Y|S )Nr  r  r   )r-   r   rs   
startswithr  add)r  fixed_ldflagsldflags      rN   fix_ldflagsz<GnomeModule._get_dependencies_flags_raw.<locals>.fix_ldflags  sv    MW\\% . .F!&#.. M63D3DT3J3J M!'6H!!L!L!%%f----$$rM   )r  r  r   r  )+r-   r   r   r   r   r   get_variablers   r   r   get_compile_argsget_include_argsrm   	librariesr   r  r  _get_dependencies_flags_rawget_external_depsext_depsrX   r   r2  r3  r4  r   rf  rd  iterget_link_argsisabsgetattrdirnamer  r  r  nextStaticLibraryget_include_dirsr:  r   logr  )r   r  r   r   r  r  cflagsinternal_ldflagsexternal_ldflagsgi_includesrw  r  r  _ldlibdepflagsextdepflagssourcer  flaglib_dirlibnamer  s                         rN   r  z'GnomeModule._get_dependencies_flags_raw  s    #-,, ISHR'1||%%w-- >	 >	C#z** 1))Hx_a)bb 1%fc22>>J>>>&&x000#122 8c2244555e44S5LMMNNN= 
1 
1C!#u':;; 	1'+':':5#wP]'^'^W(//444&*&F&FsG\G\G^G^`egnp}GS'U 'Uk!n555(//A???(//A???#**;q>:::"-a.">>s|UT[]j?KM Mk!n--- ''A777 ''A777"";q>222%a.!k C CF!&)44 C#**BGLL9J9X9X9Z9Z,2,=,=,?,?-A -A ,B C C CC
 C,, c2244555s00T0::;;# 8 8Dd++ .#Cu==. #%'//$"7"7(//g0@AAA( O,335L75L5L4MNNN"$'"2"24"8"8"--e44 2&-abbkG")--"6"6q"9-G~~t,, !T__]5S5S !  |++(//$W1F0GHHHH(//7777+8, C%"5u7J!KLL e44S5I5I5K5KLLMMMs####MsMMMNNN 		=D001BCC 		=% % % %  +{+;<<*{+;<<')9;OOrM   T.Tuple[OrderedSet[str], T.List[str], T.List[str], OrderedSet[str], T.List[T.Union[build.BuildTarget, 'build.GeneratedTypes', 'FileOrString', build.StructuredSources]]]c                j   |                      |||||          \  }}}}	}g }
g }|D ]B}t          |t                    r|
                    |           -|
                    |           C|D ]B}t          |t                    r|                    |           -|                    |           C||
||	|fS r   )r  r   rs   r:  r  )r   r  r   r   r  r  r  internal_ldflags_rawexternal_ldflags_rawr  r  r  r  s                rN   _get_dependencies_flagsz#GnomeModule._get_dependencies_flags  s    TXSsSstxz  BI  KX  Zf  Tg  TgP$&:K(*(* + 	0 	0F&#&& 0 ''//// ''////* 	0 	0F&#&& 0 ''//// ''////')9;OOrM   	girtarget=T.Union[Executable, build.StaticLibrary, build.SharedLibrary]c                   t          |t          t          j        t          j        f          s't          d| dt          |          j                   d}t          |t          j                  rRt          j	        | 
                    |          d                                         |          st          d|z             |S )Nz4Gir target must be an executable or library but is "z
" of type z>=1.58.1r   zEStatic libraries can only be introspected with GObject-Introspection )r   r   r   r  r  r,   typerH   r   r
  _get_gir_depr  )r   r  r   STATIC_BUILD_REQUIRED_VERSIONs       rN   _unwrap_gir_targetzGnomeModule._unwrap_gir_target   s    )j%2E&+&9&; < < 	I   "HXa  "H  "Hmqr{m|m|  nF  "H  "H  I  I  I(2%i%"577 	J'  ''*6688,. .	J !!h  lI  "I  J  J  JrM   r#  valuec                |    | j         t          j                    | _         | j                             ||g           d S r   )r   r   EnvironmentVariablesprepend)r   r#  r  s      rN   _devenv_prependzGnomeModule._devenv_prepend  s:    ;"799DKGeW-----rM   bbuild.Buildc                V    | j         !|j                             | j                    d S d S r   )r   r:  )r   r  s     rN   postconf_hookzGnomeModule.postconf_hook  s.    ;"HOODK((((( #"rM   T.Tuple[Dependency, T.Union[Executable, 'ExternalProgram', 'OverrideProgram'], T.Union[Executable, 'ExternalProgram', 'OverrideProgram']]c                    | j         sP|                    d          | _         |                     |d          | _        |                     |d          | _        | j         | j        | j        fS )Nr  r  r  )r   
dependencyr$  r   r   r  s     rN   r  zGnomeModule._get_gir_dep  s`    | 	F ++,GHHDL!__UNCCDN"ooe_EEDO|T^T_<<rM   N)maxsizeoptionc                    | j         }t          |t                    r|dv sJ dS t          |                                dgz   t
          j                  \  }}}|j        dk    o||v S )N>   r  --sources-top-dirsTz--help)r  r   )r   r   r2   r.   get_commandr  STDOUTr  )r   r  exepr  r  s         rN   r  zGnomeModule._gir_has_option   st    nc?++ 	FFFFF4S__..(;JDUVVV1a|q 0Vq[0rM   ro   rn   4T.Tuple[T.List[str], T.List[str], T.List[GirTarget]]c           	     $   g }g }g }|D ]}t          |t                    r
|d| gz  }"t          |t                    r|                    t          j                            | j                                        |	                                                     |                    dt          j                            |	                                |
                                                      |                    |           |||fS )Nz
--include=z--include-uninstalled=)r   rs   r   r:  r2  r3  r4  r   rf  rd  get_basename)r   ro   retgir_inc_dirsr   incs         rN   _scan_includezGnomeModule._scan_include+  s     $&%' 	$ 	$C#s## $*S**++C++ $$$RW\\%2C2Q2Q2S2SUXUcUcUeUe%f%fggg

hBGLLAQAQSVScScSeSe4f4fhhiiis###L'))rM   langsT.Iterable[str]c                    g }|D ][}| j         j                            t          j        |          }|D ],}|                    d          r|                    |           -\|S )Nr  )r   ri  get_external_link_argsr+   HOSTr  r:  )r   r
  r  lang	link_argslink_args         rN   _scan_langszGnomeModule._scan_langs<  sy     	) 	)D)2II-J\^bccI% ) )&&t,, )JJx((() 
rM   
girtargetsT.Sequence[build.BuildTarget] T.List[T.Union[str, Executable]]c                   g }|D ]z}t          |t                    r|d|gz  } t          j                            |                                |                                          }| j                                        }t          |t          j
                  rL|d                    |t          j                            |                    gz  }|                                }n$t          j                            | d|           }|d|gz  }| j                            |          D ]Q}t          j                            | j                                        |          }|                    d|z              R||S )Nz	--programz-L{}/{}/z	--libraryr  )r   r   r2  r3  r4  rd  get_filenamer   rf  r   r  formatr  r  r7  r  r:  )r   r  r  r  libpath
build_rootr  rA  s           rN   _scan_gir_targetszGnomeModule._scan_gir_targetsH  sn   02# 	) 	)I)Z00 )Y// ',,y';';'='=y?U?U?W?WXX #.<<>>
i)<== F I,,Z9Q9QRRSSC'4466GG gllj+D+D7+D+DEEGW--
 ;;IFF ) )AU%6%D%D%F%FJJAJJtax(((() 
rM    T.List[T.Tuple[str, 'Compiler']]c                    g }| D ]>}|j                                         D ]"\  }}|dv r|                    ||f            n#?|S )N>   r   rA  rW  objcobjcpp)rj  itemsr:  )r  r  r  r  compilers        rN   _get_girtargets_langs_compilersz+GnomeModule._get_girtargets_langs_compilersj  sm    02# 	 	I"+"5";";"="=  h>>>JJh/000E ? 
rM   OT.List[T.Union[build.BuildTarget, CustomTarget, CustomTargetIndex, Dependency]]c                p    g }| D ]0}||                                 z  }||                                z  }1|S r   )get_all_link_depsr  r  r  r  s      rN   _get_gir_targets_depsz!GnomeModule._get_gir_targets_depsv  sM     `b# 	1 	1I9..000C9..000CC
rM   OrderedSet[build.IncludeDirs]c                z    t                      }| D ])}|                    |                                           *|S r   )r-   r   r  r'  s      rN   _get_gir_targets_inc_dirsz%GnomeModule._get_gir_targets_inc_dirs  s@    $,,# 	5 	5IJJy11334444
rM   langs_compilers.T.Tuple[T.List[str], T.List[str], T.List[str]]c                   g }g }g }|D ]\  }}| j                             |          r|| j         |         z  }| j                            |          r|| j        |         z  }t          d          |j        v rq| j        j        j                            d          }t          |t                    sJ ||                    |          z  }d|v r|dgz  }d|v r|dgz  }d|v r|dgz  }|||fS )N
b_sanitizeaddressz-lasanthreadz-ltsan	undefinedz-lubsan)global_argsgetproject_argsr1   base_optionsr   ri  ro  	get_valuer   r   sanitizer_compile_args)r   r,  r  r  r  r  r"  sanitizes           rN   _get_langs_compilers_flagsz&GnomeModule._get_langs_compilers_flags  s8    !(*(*- 	4 	4ND( $$T** 2%+D11!%%d++ 3%,T22&&(*??? ,5>HHVV!(D11111(99(CCC(($
2$x''$
2$(**$3$
 ')999rM   srcdirnsru   
libsourcesWT.Sequence[T.Union[str, mesonlib.File, GeneratedList, CustomTarget, CustomTargetIndex]]c                Z   | j                             |d                   }t          j                            |          st          j        |           t          j                            || d| d          }t          |dd          5 }|D ]}	t          |	t          t          f          r~|	                                D ]h}
|                    t          j                            | j                                        | j                             |	          |
          dz              it          |	t           j                  r1|                    |	                    | j                  dz              t          |	t(                    rO|	                                D ]8}|                    t          j                            ||          dz              9L|                    t          j                            ||	          dz              	 d d d            n# 1 swxY w Y   |S )Nr   r  _gir_filelistwutf-8encodingr  )r7  get_target_private_dir_absr2  r3  isdirmkdirr4  openr   r   r   r  writer   rf  r  r   rc  rel_to_builddirrK  r   )r   r;  r<  ru   r  r=  gir_filelist_dirgir_filelist_filenamegir_filelistscustom_outputgen_srcs               rN   _make_gir_filelistzGnomeModule._make_gir_filelist  ss    !=CCJqMRRw}}-.. 	'H%&&& "-="?_?_y?_?_?_ ` `'w??? 	G< G Ga,0A!BCC G)* O O$**27<<8I8W8W8Y8Y8=8T8TUV8W8W8E,G ,GIM,N O O O OO  8=11 G &&q'8'89K'L'Lt'STTTT=11 G#$==?? Q Q$**27<<+H+H4+OPPPPQ !&&rw||FA'>'>'EFFFFG	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G %$s   FH  H$'H$girfilescan_commandQT.Sequence[T.Union['FileOrString', Executable, ExternalProgram, OverrideProgram]]generated_filesWT.Sequence[T.Union[str, mesonlib.File, CustomTarget, CustomTargetIndex, GeneratedList]]gT.Sequence[T.Union['FileOrString', build.BuildTarget, 'build.GeneratedTypes', build.StructuredSources]]	env_flagsT.Sequence[str]T.Dict[str, T.Any]r   c                   |d         }||d         }|d         }|8t           j                            | j                                        d          }n|du rd}t          j        | j        t          j        d          }	| j        j	        j
        j        d                                         }
|	                    d	d
 |
D             d           |	                    dd |D             d           |	                    |d                    t          || j        | j        | j        |||g|d         |||gdg|	          S )Ninstall_girrb   rp   zgir-1.0FT)uninstalledr   CCc                ,    g | ]}t          |          S rL   r0   r   xs     rN   rM  z0GnomeModule._make_gir_target.<locals>.<listcomp>  s    <<<A9Q<<<<<rM   r   CFLAGSc                ,    g | ]}t          |          S rL   r`  ra  s     rN   rM  z0GnomeModule._make_gir_target.<locals>.<listcomp>  s    ???y||???rM   envrQ   ra  )rQ   r[  rb   rc   r\  re  )r2  r3  r4  r   r6  r   get_envr+   r  ri  rj  rk  get_exelistsetmerger   rL  rm  )r   rR  rS  rU  r   rX  r(  rb   rc   run_env
cc_exelists              rN   _make_gir_targetzGnomeModule._make_gir_target  sX    '?Y'G./',,u'8'D'D'F'F	RRKKE!!G %,U->@R`deee&/9>sCOOQQ
D<<<<<cBBBH??Y???EEEfUm$$$LI#$67!$ 	
 
 
 	
rM   typelib_outputtypelib_cmdCT.Sequence[T.Union[str, Executable, ExternalProgram, CustomTarget]]r   c                (   |d         }||d         }|d         }|8t           j                            | j                                        d          }n|du rd}t          || j        | j        | j        |||g||gdg|d         |d         	          S )
Ninstall_typelibrb   rq   zgirepository-1.0FtypelibrQ   re  )rb   rc   r\  rQ   re  )r2  r3  r4  r   
get_libdirr   rL  rm  )r   rm  rn  rU  r(  rb   rc   s          rN   _make_typelib_targetz GnomeModule._make_typelib_target  s    
 *+?Y'G23',,u'8'C'C'E'EGYZZKKE!!GL$"#$67u
 
 
 	
rM   ST.Sequence[T.Union[Dependency, build.BuildTarget, CustomTarget, CustomTargetIndex]]c                   g }t          |          }|D ]}t          |t                    r|j        D ]}t          |t                    r{||vrw|                    |           t          j                            | j	        
                                |                                          }||vr|                    |           nt          |t          j                  r|j        D ]y}t          |t                    rbt          j                            | j	        
                                |                                          }||vr|                    |           zt          |t                    rR|                    ddd          }	t          |	t"                    s
J d            |	r|	|vr|                    |	           ||fS )Nr  r  r  r^  )r   r   r   rX   r   r:  r2  r3  r4  r   rf  rd  r   r  	generatedr   r  rs   )
r   r  r   typelib_includesr  rw  r  rL  g_sourcer  s
             rN   +_gather_typelib_includes_and_update_dependsz7GnomeModule._gather_typelib_includes_and_update_depends  s    )+7mm 	4 	4C #122 <!k < <F!&)44 <w9N9N#**6222!#e.?.M.M.O.O.4.?.?.A.A"C "C!)999,33F;;;< C!455 < # < <H!(I66 <!#e.?.M.M.O.O.6.A.A.C.C"E "E!)999,33F;;;#z** 4))Hx_a)bb!&#..::
::: 4f,<<<$++F333,,rM   c                    g }|D ]A}|t          j        | j        j                            t
          j        |                    z  }B|S r   )r   r   r   ri  get_external_argsr+   r  )r   r
  r  r  s       rN   _get_external_args_for_langsz(GnomeModule._get_external_args_for_langs6  sO     	l 	lD8#E$5$>$P$PQ^Qcei$j$jkkkCC
rM   r  c              #  p   K   | D ]0}|                     d          r|                     d          s|V  1dS )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     rN   _get_scanner_cflagszGnomeModule._get_scanner_cflags=  sV        	 	A ||.// EX8Y8Y 		 	rM   r  tuple[list[str], list[str]]c                2    d | D             d | D             fS )zFg-ir-scanner only accepts -L/-l; must ignore -F and other linker flagsc                <    g | ]}|                     d           |S ))r  r  r  r  r   r  s     rN   rM  z4GnomeModule._get_scanner_ldflags.<locals>.<listcomp>J  s*    QQQ11<<0O#P#PQQQQQrM   c                <    g | ]}|                     d           |S )r  r  r  s     rN   rM  z4GnomeModule._get_scanner_ldflags.<locals>.<listcomp>K  s)    AAA11<<#@#@AQAAArM   rL   )r  s    rN   _get_scanner_ldflagsz GnomeModule._get_scanner_ldflagsF  s1     RQQQQAAAAA
 	
rM   zgnome.generate_girr   )varargsmin_varargsz0.40.0)r%  z1.2.0rh   z1.8.0ri   rj   0.55.0rk   rl   rm   r\  0.61.0rp   )r  z'Use install_gir to disable installationc                    | du rdnd S NTzas boolean can only be falserL   rb  s    rN   <lambda>zGnomeModule.<lambda>`      T		&D&DW[ rM   )deprecated_values	validatorrq  rq   )r  z+Use install_typelib to disable installationc                    | du rdnd S r  rL   r  s    rN   r  zGnomeModule.<lambda>d  r  rM   rr   rt   r,  rX   rw   NT.Tuple[T.List[T.Union[Executable, build.SharedLibrary, build.StaticLibrary]]]'GenerateGir'c                                         dt          j                    fd|d         D             }t          |          dk    r(t	          d |D                       rt          d                                         \  }}}|d         }|d         }	|d	         }
| d
|	 d}t          j        	                    j
                                        j                  }t          j        	                    j
                                        j                  }g }|                    |j                   |                    |                                |          }                     |          \  }}}                     |          }||d         z  }||gz  }                     ||          \  }}                     ||d          \  }}}}}g }|t+                               |                    z  }|t+                               |                    z  }|t+                                                    d |D                                           z  }g }g }j
        j                            t          j        d          }                     |                               |          fD ]\  }}||z  }||z  }                     |                               |          fD ]\  }}||z  }||z  }                     |          }|d         } g }!|g}"|"dgz  }"|"dgz  }"|"d|z   d|	z   gz  }"|"dgz  }"|"ddgz  }"|"d |d         D             z  }"|"|d         z  }"|"d|z   d|z   gz  }"|"                    |          z  }"|"d                     |||	||
          z   gz  }"|d         D ]3}#                     |#|d          \  }$}|"                    |$           4                     |d                   \  }%}&}'|"                    |%           |!                    |&           |                    |'           |"d |d          D             z  }"|"d! |d"         D             z  }"|"d# |d$         D             z  }"|"d%gz  }"|"|z  }"|"d&gz  }"|"                    |           z  }"|"                    tA          j!        ||!|           d'(          z  }"|"t+          |          z  }"|" "                    |          z  }"|" #                    d) |D                       z  }"|"t+          |          z  }" $                    d*          r|"d*t          j        	                    j
                                        j%                  gz  }"|"d*t          j        	                    j
                                        j%                  gz  }"|d+         " $                    d,          r|"d,|d+         gz  }"d-|"v r"tM          j'        d.d/j(        d0j)                   |d1         r|"*                    d-           d2 |
D             }( +                    ||"|(||tY          j-        d3|                    })| d
|	 d4}*||)ddg}+|+                    |!d5(          z  }+|D ]},|+d5|,z   gz  }+ .                    |*|+|(tY          j-        d3|                    }- /                    d6t          j        	                    j
                                        j                             |)|-g}.ta          |.|.          S )7Nr   c                <    g | ]}                     |          S rL   )r  )r   argr   r   s     rN   rM  z,GnomeModule.generate_gir.<locals>.<listcomp>p  s)    MMMcd--c599MMMrM   r   r   c              3  @   K   | ]}t          |t                    V  d S r   )r   r   )r   els     rN   r   z+GnomeModule.generate_gir.<locals>.<genexpr>q  s,      &W&Wbz"j'A'A&W&W&W&W&W&WrM   zVgenerate_gir only accepts a single argument when one of the arguments is an executablert   ru   rX   r  z.girr^   T)r  c                    g | ]
}|d          S r   rL   r   lcs     rN   rM  z,GnomeModule.generate_gir.<locals>.<listcomp>  s     ^^^ik_abc_d^^^rM   rm   --quietz--no-libtool--namespace=z--nsversion=z
--warn-all--outputrS  c                    g | ]}d | S )z--c-include=rL   )r   hs     rN   rM  z,GnomeModule.generate_gir.<locals>.<listcomp>  s!    FFF+++FFFrM   rk   r`   r  z--filelist=rr   ro   c                    g | ]}d | S )z--symbol-prefix=rL   r   r  s     rN   rM  z,GnomeModule.generate_gir.<locals>.<listcomp>  s!    QQQA/A//QQQrM   rw   c                    g | ]}d | S )z--identifier-prefix=rL   r  s     rN   rM  z,GnomeModule.generate_gir.<locals>.<listcomp>  s!    YYY333YYYrM   rl   c                    g | ]}d | S )z--pkg-export=rL   r  s     rN   rM  z,GnomeModule.generate_gir.<locals>.<listcomp>  s!    PPP,,,PPPrM   ri   z--cflags-beginz--cflags-endz--add-include-path=)r   c                    g | ]
}|d          S r  rL   r  s     rN   rM  z,GnomeModule.generate_gir.<locals>.<listcomp>  s    0Q0Q0Q2A0Q0Q0QrM   r  rh   z--doc-formatz--warn-errorz(gnome.generate_gir argument --warn-errorr  z%Use "fatal_warnings" keyword argumentrj   c                V    g | ]&}t          |t          t          t          f          $|'S rL   )r   r   r   r   r  s     rN   rM  z,GnomeModule.generate_gir.<locals>.<listcomp>  s0    tttJq=R^`qBr4s4st1tttrM   rZ  z.typelibz--includedir=GI_TYPELIB_PATH)1add_languager+   r  r   anyr,   r  r2  r3  r4  r   r  rL  rf  r  rX   r#  r:  r(  rz  r  r   r  r}  ri  r  r  r+  r  rQ  r  r	  	itertoolschainr  r  r  root_subdirr&   
single_userm  current_noder:  rl  Tcastrt  r  r
   )/r   r   r&  r(  r  r   r   r   r<  ru   r=  rR  r;  builddirr   r,  r  r  r  r  rx  
dep_cflagsdep_internal_ldflagsdep_external_ldflagsr  scan_cflagsscan_internal_ldflagsscan_external_ldflagsscan_env_ldflags	cli_flagsrX  girtargets_inc_dirsinc_dirsr  rS  l_cflags_cmd_ginc_depsrU  scan_targetrm  rn  incdirtypelib_targetr<  s/   ``                                             rN   r   zGnomeModule.generate_girN  s   @ 	3 2333MMMMMT!WMMM
z??Q3&W&WJ&W&W&W#W#W !yzzz)-):):5)A)A&JK ;'	I&
))))))e/>>@@%,OO7<< 1 ? ? A A5<PPwyw'''z""">>zJJ595T5TUZ\k5l5l2 "2))*55~&&	$($T$TUZ\`bi$j$j!'
 ((ugD(QQ 	U
(*>WtD44V<<===tD44Z@@AAAtD44T5V5VW\^^o~^^^  6A  6A  B  B  C  C  	C " " ,5LL]M_adee%)%>%>?O%P%PRVRkRk  mA  SB  SB  %C 	* 	* Iy!Y.!	)%)%>%>?O%P%PRVRkRk  mA  SB  SB  %C 	* 	* Iy!Y.!	)"<<ZHH/0$&`i_j#((",ny.HII&Z00FFVH5EFFFF|,,x88../BCCC)@)@PRT]_iku)v)vvww$ 	) 	)A#225!WSW2XXGW((((!//vj7IJJeUD!!!E"""uQQ9PQQQQYYVDW=XYYYYPPf=N6OPPPP)**#((..x888..y{LZb/c/c  mB.  C  C  	C2333..ujAAA((0Q0Q0Q0Q0QRRR2333 455 	w127<<@Q@`@`@b@bdidu3v3vwwL127<<@Q@_@_@a@achct3u3uvvL,+0D0D^0T0T+^VL-ABBL\))()SU]).)9;bdidvx x x"# 	0///ttjttt++7L/7DTF'002 2
 44444!;
JGu--l?-SSS& 	6 	6FOf455KK225.+Wfhihn  pD  FL  iM  iM  N  N.U=N=\=\=^=^`e`l0m0mnnn>* R(((rM   zgnome.compile_schemas'CompileSchemas'c                   t           j                            |j        |j                  }|j        }|                     |d          d||g}|j        dk    rd}nd|j                            dd          z   }t          ||j        |j        |j	        |g dg|d	         |d
         d
  
        }| 
                    dt           j                            |j	                                        |j                             t          ||g          S )Nr  z--targetdirr  zgsettings-compilezgsettings-compile-r  r  zgschemas.compiledrQ   rS   zCompiling gschemas {})rQ   rS   descriptionGSETTINGS_SCHEMA_DIR)r2  r3  r4  rK  rL  r$  r  r   rm  r   r  rf  r
   )	r   r   r&  r(  r;  outdirrs  
targetnametarget_gs	            rN   r   zGnomeModule.compile_schemas  s    e0%,??15H^1_1_anpvx~0<2,JJ-0D0DS#0N0NNJL !#$67//
 
 
 	3RW\\%BSBaBaBcBcejeq5r5rsss H:666rM   z
gnome.yelp)r  rV   z0.43.0z2Use a LINGUAS file in the source directory instead)r   r   
deprecateddeprecated_messagerW   )r   r   rY   T.Tuple[str, T.List[str]]'Yelp'c                `   |d         }|d         }|d         r"t          j        ddj        dj                   |s|d         }|st	          d          n|d         rt          j        d           fd	|D             }|d
         }|s<t          t          j	        
                    j        j        j                            }|d         }|d         }	g }
g }                    d          }                    d          }                    d          }t          j	        
                    j                                        d          }t          j	        
                    |d|          }t!          j        |||t%          j                    j        d          }|
                    |           g }|D ]}t$          j                            j        j        t          j	        
                    j        d          |          }|                    |           t          j	        
                    |t          j	                            |                    }t!          j        |g||t%          j                    j        d          }|
                    |           t          j	        
                    dj        d|dz             }fd|D             }|d|g}|                    |           t!          j        d| d|g t          j	        
                    j        d          j        j                  }|
                    |           |D ]}t          j	        
                    j        |          }t          j	        
                    |||          }t5          |          D ]S\  }}t          j	                            |          }t          j	        
                    ||          }	 t$          j                            j        j        ||          } n# t          $ r d } Y nw xY w|	r}| s{t          j	        
                    t          j	                            ||          |          }!t!          j        |!t          j	                            |          |j        d          }"n;| s||         } t!          j        | g||t%          j                    j        d          }"|
                    |"           U|dz   }#|ddt          j	        
                    d||#          t          j	        
                    d||#          |g}$t!          j        d| d| d|$|g|j        j                  }%|
                    |%           |                    |%           |dz   |z   dz   }&t=          d| d| d |j        j        |d!dd"g|#g|&gdgd#$	  	        }'|
                    |'           t=          d| d| |j        j        |d%t          j	        
                    ||&          d&|dd'd!g|||'gd(|gdgd#)          }(|
                    |(           t!          j        d| d|j        j        j                  })|
                    |)           tA          d |
          S )*Nr   rX   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 setc           	         g | ]P}t           j                            j        j        t
          j                            j        d           |          QS )C)	r   rc  r  r   re   r2  r3  r4  rL  r   rN  r   s     rN   rM  z$GnomeModule.yelp.<locals>.<listcomp>  sb     M M M?@ "778I8T8:U\SV8W8W89; ; M M MrM   rV   rW   rY   itstoolmsgmergemsgfmthelpr  doc)r\  @SOURCE_ROOT@z.potc                ^    g | ])}t           j                            d j        d|          *S )r  r  )r2  r3  r4  rL  r  s     rN   rM  z$GnomeModule.yelp.<locals>.<listcomp>7  s/    \\\qrw||OU\3JJ\\\rM   z-ozhelp-z-pot)startz.por/  r  z
-update-poz.gmoz-gmorI  rS  zGenerating yelp doc {})r\  r  z-mz--lang@OUTDIR@T)r[  rb   rc   r\  r  )!r&   r  rm  r  r,   r   r  r3   r2  r3  r4  r   re   rL  r;  r6  r   Datar   FileModer:  rc  r  r  r  	RunTargetr   relpathSymlinkDatar  r   AliasTargetr
   )*r   r   r&  r(  
project_idrX   sources_filesr
  rW   symlinkstargets	potargetsr  r  r  rc   c_install_dirc_datamedia_filesrx  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*    `                                        rN   r   zGnomeModule.yelp  s    !W
#7 	~()WYa).)9;hjoj|~ ~ ~ 	y1gG H$%FGGGH!W 	yLwxxxM M M MDKM M M {# 	[ e.?.JEL!Y!YZZEw/*RT-/	$$Y//%%j11##H--gll5#4#@#@#B#BFKK[#zBBM=-$-//1AuV V Vv-/ 	# 	#A..u/@/K/1w||EL#/N/NPQS SAq!!!GLL8J8JKKMZ]M ( 1 3 3U5ESXZ Z ZFNN6""""7<<sJQWDWXX\\\\T[\\\X_aegoWp$$$O$<J$<$<$<h$&GLLs$C$CUEU$)$57 7	 	y!!! ?	( ?	(Aw||EL!44HGLLaDDM!%(( ' '1** "]E B B"8@8V8VW\WhWsu}  @A  9B  9BFF% " " "!FFF"  bF b"$',,rw}Ta/b/bde"f"fK".{BG<L<LQ<O<O/<e>N\ac c cFF " 0!,Q"Z-(0(9(;(;U=M[`b b bFv&&&&%iG$_h@@_h@@([LG 'Iz'I'IA'I'I'I'.XuGW','8: :H NN8$$$X&&&!C'!+f4H$,
,,Q,,, !D*5	
"G4
 
 
I NN9%%%&(
((Q(( !$Xx @ @(AtU_ajk(k*O"G4  K NN;'''''(F
(F(F(F	(-e6FHY[ [{### w///s   6+P""P10P1zgnome.gtkdocr   z0.48.0)r%  r   r   r   z0.52.0r   r   r   r   r   r   r   rb   rc   r|   r}   r   r   auto>   xmlr   nonesgml)r   r%  r  r~   r  r   r   r{   )r   r   T.Tuple[str]'GtkDoc'c                (   |d         }|d         }|d         }||t          d          |}|d         }||rd|z   ndz   dz   }j                                        }	|d	         }
                    d
t          j                   dKfd}|d         }g }|D ]}t          |t          j                  rX|	                    |
                    j                                        j                                                             t|                    |           dddj                                        z   dj                                        z   dj        z   dd                    |          z   d|z   d|z   d|z   d|d         z   g
}dD ]W}d|z   }                    |          }|                                }|
J d            |                    d | d!|            X|
r|                    d"|
z              j                                        }|r=|                    d#d$                    |                                          z              |                    d%d                    |d&                               |                    d'd                    |d(                               |                    d)d                    |d*                               |                    d+d                     ||d,                                         |                    d-d                    |d.                               |                    d/d                    |d0                               |                    d1d                     ||d2                                         g }g }|d3         D ]}t          |t(          t*          f          r|                    |           |                                D ]e}|                    t.          j                            j                                        j                            |          |                     ft          |t6          j                  rY|                    |                    j                                        j                                                             "t          |t<                    r~|                    |           |                                D ]R}|                    t.          j                            j                                        j        |                     S|                    t.          j                            j                                        j        |                     |d4d                    |          z   gz  }|                    d5d                     ||d6                                         |                    d7d                    |d8                               |                    d9d                    |d:                               |                     |d;         |d<         |d=         |          \  }}|	                    |           |	                    |           t)          |j        j         j        |	|z   g | d>gd?|d@A
  
        }t          j!        ||gj        j         j                  }|dB         r|                    dC          }dD|z   dE|z   g}|dFz   |f} t.          j                            j                                        j                  }!"                    | ||!|gG           ||g}"|dH         r2|"                    j        #                    |	|z   dIJ                     tI          ||"          S )LNr   r|   r}   z<gnome.gtkdoc: main_xml and main_sgml are exclusive argumentsr~   r  r  z-docrt   r   filesT.Iterable['FileOrString']r   T.Iterator[str]c              3  V  K   | D ]}t          |t          j                  rG|                    j                                        j                                                  V  ct          j        	                    j                                        j
        |          V  d S r   )r   r   rc  absolute_pathr   r  rf  r2  r3  r4  rL  )r  r  r   s     rN   abs_filenamesz)GnomeModule.gtkdoc.<locals>.abs_filenames  s       \ \a// \//%*;*J*J*L*LeN_NmNmNoNopppppp',,u'8'G'G'I'I5<YZ[[[[[[	\ \rM   r{   rR  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=rc   r   rm   r^   z	-decl.txtTzGenerating gtkdoc {})r   r[  r  r   zgtkdoc-checkzDOC_MODULE=zDOC_MAIN_SGML_FILE=z-check)re  workdirr   rb   r  )tag)r  r  r   r	  )%r   r   get_build_commandr  r+   r  r   r   IncludeDirsr  to_string_listr  rf  r:  rL  r4  r;  get_pathget_exe_wrapperr  r   r   r  r2  r3  r7  r  r   rc  r  r   _get_build_argsrm  r  testr8  r
   )#r   r   r&  r(  
modulename	main_filer}   moduleversionr  commandrt   r  src_dirsheader_dirsr{   t_argsr  program_nameprogramr3  exe_wrapperr   r   rN  r  rP  
build_argsr  custom_targetalias_target	check_cmd	check_env
check_argscheck_workdirress#    `                                 rN   r   zGnomeModule.gtkdoc  s}   F !W
;'	*%$&'efff I/0-#O3#6#6RPSYY
#5577;'	 	3 2333	\ 	\ 	\ 	\ 	\ 	\ )$#% 	, 	,G'5#455 ,""7#9#9%:K:Z:Z:\:\:?:K:Y:Y:[:[$] $] ^ ^ ^ ^ ""7++++ (U.==???E-;;===%,&dii444I%j(.v&	( F 	6 	6D$t+L((66G##%%D##%_###MM4|44d445555 	6MM.94555'7799 	JMM(SXXk.E.E.G.G%H%HHIIIDDIIf[.A$B$BDDEEEDDIIf[.A$B$BDDEEEL		&2I(J(JLLMMMftyyvNaGb9c9c/d/dffgggJtyy1G'H'HJJKKKDDIIf[.A$B$BDDEEEXtyyvm?T1U1U'V'VXXYYY24( 	6 	6A!l,=>?? 6q!!! : :A!((e6G6U6U6W6W6;m6R6RST6U6U67*9 *9 : : : :: Ax}-- 6$$Q__U5F5U5U5W5W5:5F5T5T5V5V&X &X Y Y Y YA}-- 	6q!!! }} @ @G!((e6G6V6V6X6X6;l6=*? *? @ @ @ @@
 $$RW\\%2C2R2R2T2T27,23&5 &5 6 6 6 6 	%		-(@(@@AAj		--OeHf:g:g0h0hjjkkkO$))F;K4L*M*MOOPPPHdii}0E&F&FHHIII"&"6"6vh7GPeIf7=n7MuV]#_ #_
Kj!!!7###$Lf%%%&#%.
 
 
 (m_elTYTdfkfwxx'? 	b**>::I&3.:<I$x/;JGLL):)H)H)J)JELYYMJJzy-R_Q`JaaaP]_kOl) 	`JJu}AA'FBRX]A^^___ 444rM   r  rz   r   >T.Sequence[T.Union[build.BuildTarget, 'build.GeneratedTypes']]c                `   g }|                                 }|                     |||d          \  }}	}
}}|                    |           |                    |                    |                     g }|                    |	           |                    |
           |                    |j        j                            t          j        d                     |                    |j        j        	                    t          j        d                     |j        j        j
        t          j                 d         }|                     |d|fg          }|                    |d                    |                    |d                    |                    |d                    |rP|dt          |                                          z  gz  }|dt          |                                          z  gz  }|r|d	t          |          z  gz  }|r|d
t          |          z  gz  }||fS )NT)r  r   r   r   r   z--cc=%sz--ld=%sz--cflags=%sz--ldflags=%s)rl  r  r  r  r   ri  r|  r+   r  r  rj  r:  r/   rg  get_linker_exelist)r   r   r  r  r   r   r&  r  deps_cflagsr  r  _gi_includesr  r  r"  compiler_flagss                   rN   r  zGnomeModule._get_build_args  s   
 ((ugT(RR 	S%'7{ 	k"""e,,X66777!'((('(((e'0BB=CUWZ[[\\\u(1HHI[]`aabbb$-78JKCP88#x@QRRnQ'(((~a()))~a())) 	KY8+?+?+A+A!B!BBCCDY8+F+F+H+H!I!IIJJD 	8]Yv%6%6677D 	:^i&8&8899D[  rM   zgnome.gtkdoc_html_dir'TYPE_kwargs'c                N    t           j                            d|d                   S )Nzshare/gtk-doc/htmlr   )r2  r3  r4  )r   r   r&  r(  s       rN   r   zGnomeModule.gtkdoc_html_dir@  s     w||0$q':::rM   zgnome.gdbus_codegen)optargsz0.46.0r`   z0.47.0r   r   r   c                F    | rt          | d         t                    r| gn| S )Nr   r   r  s    rN   r  zGnomeModule.<lambda>R  s$    q IZ!c-B-B I rM   )r   r  	convertorr   r   r   >   r   r  objectsGT.Tuple[str, T.Optional[T.Union['FileOrString', build.GeneratedTypes]]]'GdbusCodegen'c                   |d         }|d         r	|d         gng }|                      |d          g}|                    |d                    |                     |          }t          j        |d          s%|d         dk    rt          j        d| d	           n'|d         }|dk    rd
}|                    d|g           |d         |                    d|d         g           |d         |                    d|d         g           |d         r|                    dg           |                    |d                    |d         }	|d         D ],}
|                    d           |                    |
           -g }|d         }|d         p0|j        j	        j
                            t          d                    }t          |t                    s
J d            |dz   }t          j        |d          r|g dz   }nX|d         |d         }|d|gz  }t          j        |d          r|d d!d"|d#gz  }n|                                  |d"d$|z   d#gz  }|}t!          ||j        |j        |j        |||g|	d%&	  	        }|                    |           |d'z   }t          j        |d          r
|g d(z   }g }n|}|g}t!          ||j        |j        |j        |||g|	|||gd)gd*+          }|                    |           |d         |d         }|d,z   }g }|D ]U}|                    d-                    |t(          j                            t          |                                         Vt          j        |d          r|d d!d|d#gz   }g }n|}|g}t!          ||j        |j        |j        ||||	|d./
  
        }|                    |           t/          ||          S )0Nr   r   r  r`   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-prefixrt   z--c-namespacer   z--c-generate-object-managerrX   rQ   r   z
--annotaterd   rc   r]  r^  rU  z	>= 2.56.2)--bodyr  rS  rI  r   z--generate-docbookz	>= 2.51.3z--output-directoryr  z--generate-c-coderI  z	@OUTDIR@/zGenerating gdbus source {})rQ   r  r`  )--headerr  rS  rI  ra  zGenerating gdbus header {})rQ   r[  rb   rc   r\  r  z-docbookz{}-{}zGenerating gdbus docbook {})rQ   r[  r  )r$  r  r  r   r
  r   r  r:  r   ri  ro  rp  r1   r   rs   r  r   rL  rm  r  r2  r3  r  r
   )r   r   r&  r(  namebase	xml_filesrs  rq  acrQ   r   r  rd   rc   r{  c_cmdr   cfile_custom_target	hfile_cmdr   hfile_custom_targetr  r  docbook_cmddocbook_custom_targets                            rN   r   zGnomeModule.gdbus_codegenE  s   0 7X\]^X_KgDQRG99eg	151X1X0Y

6,'((( 44U;;'kBB 
	9m$	11 ;l ; ; ; < < < &BYJJ2B7888$%1JJ,f5G.HIJJJ+*JJ)<=>>>"# 	8JJ56777	*+++!"45 M* 	 	EJJ|$$$JJu 01]+yu/@/I/R/`/`ajkwaxax/y/y+s++77Z777D #L+>> 	GGGGEEi , +,g66 'kBB P,j:MxYbcc))++++[8-CYOOE*LH-4

 

 

 	*+++D#L+>> 	,MMMMIGGI*+G*LH-!"$ 	4
 
 
 	*+++)(Y'G
*FG R Rw~~grw7G7GA7O7OPPQQQQ'kBB 0!%9:G[]dfo$pp!./$0 !!1%9% % %! NN0111 '222rM   zgnome.mkenumsr   r   r   r   r   r   r   r   r   r   	'MkEnums'c           	     F   |d         }|d         }t          |t          j                  r*|                    |j        j        |j        j                  }|d         }t          |t          j                  r*|                    |j        j        |j        j                  }g }g d}|D ].}	||	         r$|d|	                    dd          z   ||	         gz  }/g }
d }|t          j	        
                    t          j	                            |          d                   }|dd	gz   }|g}|                    |d
                    |                     |||||d         |d                   }|
                    |           |t          j	        
                    t          j	                            |          d                   }|dd	gz   }|g}|                    |d
                    |d                                         }||                    |           |                     |||||          }|
                    d|           |F|D|d	gz   }|                     ||d
         |||d         |d                   }t#          ||g          S t#          |
|
          S )Nr   r   r   )
r   r   r   r   r   rl   rw   r   r   r   r  r  r  z
--templaterI  rX   rd   rc   rb   rc   r   )r   )r   r   rc  r  r   re   	build_dirr  r2  r3  r  splitextr  _make_mkenum_implr:  rl  insertr
   )r   r   r&  r(  r  r   r   rs  known_kwargsr  r  h_targeth_outputh_cmd	h_sourcesc_outputrC  	c_sourcesr   c_targetgeneric_cmdtargets                         rN   r   zGnomeModule.mkenums  s   0 7L)
j(-00 	m#11%2C2NPUPaPkllJL)
j(-00 	m#11%2C2NPUPaPkllJ3 3 3   	C 	CCc{ Cs{{3444fSkBB(*-1!w''(8(8(D(DQ(GHHH <33EPZ|IVI.///--y(E6BR;S"=1 . 3 3H NN8$$$!w''(8(8(D(DQ(GHHH <33EPZ|IVI.///Y',,..G#x(((--y(E7 . D DHNN1h'''*"4+K++vi((K/0"=1 , 3 3F %VfX666$Wg666rM   zgnome.mkenums_simplez0.42.0r   r   r   r   'MkEnumsSimple'c                   |d          d}|d          d}|d         }|d         }|d         }|d         }	g }
|d         r|
                     d	|d         g           |d
         r|
                     d|d
         g           |
                                }d}|	dk    r|d|	z  z  }|d|z  z  }| j                            |d                   D ]B}t          j                            |                                |j                  }|d| dz  }C|t          j
        d          z  }|                     d|g           |                    d           |                    t          j
        d                     |                    d           |                    t          j
        d| d                     |                     ddg           |                    d           |                    t          j
        d                     |                    d           |                     ||d         ||          }|
                                }|r|                    d          s|dz  }|                    d           |                    t          j
        d| d                      |                    d           |                    t          j
        d                     d}|rd}|                    d           |                    |t          j
        d!| d"| d#| d$          z              |                    d%           |                    t          j
        d&                     |                    d           |                     ||d         |||d'         |d(         )          }t          ||g||g          S )*Nr   r`  rU  r   r   r   r   rl   z--identifier-prefixrw   z--symbol-prefixr  z%s
z#include "%s"
rX   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;
            }rI  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_DECLSrd   rc   rK  )r  rl  r   source_strings_to_filesr2  r3  r  relative_namerL  textwrapdedentr:  rN  endswithr
   )r   r   r&  r(  hdr_filenamebody_filenamer   decl_decoratorfunc_prefixr   rs  rC  r   hdrhdr_pathc_filerS  extra_newlineh_files                      rN   r   zGnomeModule.mkenums_simple-  s   " q'~~~7/,./]+%& 	MJJ-v6I/JKLLL/" 	EJJ)6/+BCDDD

 "Vk))E"\11#;;F9<MNN 	0 	0Cws'8'8':':ELIIH/(////EE  	
 	i'(((YX_  	 	 	
 	YX_;; ; ;< < 	= 	= 	= 	i!defffYX_	 	 		 		 		 	Y''vi/@-QVWW 

 	"!7!7!=!= 	"T!MYX_ 	    	 	 	 	YX_  	 	 	
  	! MY]X_[[ [[ [ 5@[ [ [&\ &\ \ 	] 	] 	] 	YX_  	 	 	 	Y''6)$lE+,}- ( / /
 !&&!1FF3CDDDrM   )rb   rc   r   r{  rs  *T.Optional[T.Sequence[T.Union[str, bool]]]MT.Optional[T.Sequence[T.Union[CustomTarget, CustomTargetIndex, BuildTarget]]]build.CustomTargetc               \   |                      |d          g}|                    |           |p0|j        j        j                            t          d                    }	t          |	t                    s
J d            t          ||j
        |j        |j        |||gd||	gdg|dd          S )Nr  r]  r^  Tra  zGenerating GObject enum file {})capturerb   rc   r\  r[  absolute_pathsr  )r$  r  r   ri  ro  rp  r1   r   rs   r   rL  rm  )
r   r   rX   r{  rs  rb   rc   r   real_cmd_install_dirs
             rN   rN  zGnomeModule._make_mkenum_impl  s     7;ooe^6\6\5]"pe&7&@&I&W&WXabnXoXo&p&p,,,88j888LH% 	!9
 
 
 	
rM   zgnome.genmarshalr   r   r   r   r   )allow_emptyr   r   'GenMarshal'c                Z   |d         }|d         }t          j        |                     |          d          }|                     |d          dg}|d         r|                    d|d         g           |d         rH|r|                    |d                    n*t          j        d	t          j        d
          dd           dD ]6}||         r,|                    d|	                    dd                      7|d         }	d}
t          j        |                     |          d          r|ddgz  }nd}
|dz   }|ddgz   }|r|dgz  }t          |dz   |j        |j        |j        |||g|	|d         r	|d         gng dg|
|d         d          }|d dgz   }g }t          j        |                     |          d!          r|d"|gz  }|                    |           t          |d#z   |j        |j        |j        ||| d$g|
|d         |d%&          }||g}t          ||          S )'Nr   rX   z	>= 2.53.3r  r  r   z--prefixr`   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  r  r  rd   z	>= 2.51.0r  rS  r`  r?  rI  z--pragma-oncer_  rc   ra  rS   z$Generating glib marshaller header {})rb   rc   r\  rn  rS   r  r>  z	>= 2.53.4z--include-headerrV  rU  z$Generating glib marshaller source {})rn  rS   r[  r  )r   r
  r  r$  r  r   r  r  r:  r  r   rL  rm  r   r
   )r   r   r&  r(  r{  rX   new_genmarshalrs  krd   rn  header_filerS  rk   rC  
extra_depsbodyr<  s                     rN   r   zGnomeModule.genmarshal  s   " a#!1$2O2OPU2V2VXcdd15HY1Z1Z\e0f( 	7JJ
F8$45666, 	5 5

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

5		#s 3 355666 01 #D$A$A%$H$H+VV 	J
++CCGtmz9-- 	'o&&ETMLM"39-3HP.//b 	/>
 
 
  x+++-
#D$A$A%$H$H+VV 	&(+66Ef%%%TML]]]O/$>
 
 
 F^ R(((rM   r   (T.List[T.Union[InternalDependency, str]]OT.Tuple[T.List[str], T.List[VapiTarget], T.List[str], T.List[str], T.List[str]]c                   |sg g g g g fS g }g }g }g }g }|D ]}t          |t                    rUd |j        D             }	|	D ]>}
t          j                            |j                                        |
                                          }t          j                            |j        	                                |
                                          }|

                                d         dd         }|                    d|z              |                    d|z              |                    d|z              |                    |
           |                    |           |                    |           @nt          |t                    s
J d            |                    d|            |                    |           |                    |           |||||fS )	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
        c                <    g | ]}t          |t                    |S rL   )r   r   )r   ts     rN   rM  z6GnomeModule._extract_vapi_packages.<locals>.<listcomp>9  s'    OOOZ:5N5NO1OOOrM   r   N
--vapidir=	--girdir=z--pkg=r^  )r   r   rX   r2  r3  r4  r   r  rd  rf  r  r:  rs   )r   r   r   vapi_dependsvapi_packagesvapi_includes	vapi_argsremaining_argsr  r  rY  r;  r  outfiles                 rN   _extract_vapi_packagesz"GnomeModule._extract_vapi_packages'  s     	&r2r2%%+-%'%'!#	 	+ 	+C#122 +OOckOOO% 1 1FW\\%*;*J*J*L*L*0*;*;*=*=? ?FW\\%*;*I*I*K*K*0*;*;*=*=? ?F$002215crc:G$$\F%:;;;$$[6%9:::$$X%7888 ''///!((111!((00001 "#s++77Z777  #000$$S)))%%c**** ,}nTTrM   library
build.Datac                v   |j         j        }t          j                            ||dz             }t          |dd          5 }|D ]}|                    |dz              	 d d d            n# 1 swxY w Y   t          j        t          j
        d||          g||t          j                    |j                  S )Nz.depsrA  rB  rC  r  T)r   scratch_dirr2  r3  r4  rH  rI  r   r  r   rc  r  rm  )	r   r   r  r   rc   r  rg  ofilepackages	            rN   _generate_depszGnomeModule._generate_depsO  s    ".VWw%677%w/// 	,5# , ,GdN++++,	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, z8=vu==>[ZbZkZmZmoto  A  A  	As   A--A14A1rY  r   T.List[build.LibTypes]c                    g }|                                 D ]_}t          |t          j                  r|                    |           2t          |t
                    r||                     |          z  }`|S r   )get_target_dependenciesr   r   r  r:  r   _get_vapi_link_with)r   rY  rr   rw  s       rN   r  zGnomeModule._get_vapi_link_withW  s    ,.	1133 	; 	;C#u233 ;  %%%%C++ ;T55c:::	rM   zgnome.generate_vapir   r   r   'GenerateVapi'c                R   g }|d         }t           j                            |j                                        |j                  }t           j                            |j                                        |j                  }|                     ||d                   \  }}	}
}}|                    d          dd| d| g}|	                    d |d         D                        |	                    d	 |d
         D                        |	                    d |d         D                        ||z  }|d|z   gz  }|d         }g }|D ]}t          |t                    r4|                    t           j                            ||                     Lt          |t                    r||                     |          z  }t           j                            |j                                        |                                          }t           j                            ||                                d                   }|                    |           |dz   }|j        j        j                            t)          d                    }t          |t                    s
J d            |d         p t           j                            |dd          }|d         r-|                     |||
|          }|                    |           t-          ||j        |j        |j        |||g|	|d         |gdg          }t1          j        |j        dg|z   d          g}|g|	z   }t5          d |g g |g |g g i g g g           }|                    |           t7          ||          S )Nr   r   vapigenr  z
--library=z--directory=c                    g | ]}d | S )r  rL   r   rA  s     rN   rM  z-GnomeModule.generate_vapi.<locals>.<listcomp>x  s!    BBB$$$BBBrM   r   c                    g | ]}d | S )--metadatadir=rL   r  s     rN   rM  z-GnomeModule.generate_vapi.<locals>.<listcomp>y  s!    JJJQ(Q((JJJrM   r   c                    g | ]}d | S )r  rL   r  s     rN   rM  z-GnomeModule.generate_vapi.<locals>.<listcomp>z  s    @@@OOO@@@rM   r   r  rX   z.vapidatadirr^  rc   valavapirb   ra  )r   rX   r  r[  rb   rc   r\  r  F)r2  r3  r4  r   rf  rL  r  r  r;  r  r   rs   r:  r   r  rd  r  ri  ro  rp  r1   r  r   rm  r   r  r   r
   )r   r   r&  r(  created_valuesr  rL  re   pkg_cmdr  r  r  r   rs  inputsrr   r   rL  gir_filevapi_outputr  rc   deps_targetvapi_targetincsrX   r<  s                              rN   r   zGnomeModule.generate_vapi`  s   " CEq'GLL!2!@!@!B!BELQQ	W\\%"3"B"B"D"DelSS
HLHcHcdikqr|k}H~H~E}mX!!),,i9Og9O9OQk`iQkQkl

BBf[.ABBBCCC

JJ&2IJJJKKK

@@VJ-?@@@AAAw :-..	",.	 	% 	%A!S!! %

27<<
A667777Ay)) %T55a888	e&7&E&E&G&G&'llnn6 67<<0BCC

8$$$'#,5CCIiDXDXYY'3''33333]+Trw||GVV/T/T) 	/--eWm[YYK!!+... L M&9%$ 	
 
 
$ !%,0EuMMN-,.dBIr7BPRTVXZ\^`bccb!!! ^444rM   )r   r   r   r   )r   r   r   rs   )r   r   r   r   )r   r   )r   r   r  rs   r   r  )r   r   r&  r'  r(  r)  r   r
   )r   r   r&  rE  r(  rF  r   rG  )
r   r   ru  rs   rn  rB   r^   r  r   r  )FF)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   r  r  r@   r  r@   r   r  )r  r  r   r   r   r  )r#  rs   r  rs   r   r   )r  r  r   r   )r   r   r   r  )r  rs   r   r@   )r   r   ro   rn   r   r  )r   r   r
  r  r   rB   )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;  rs   r<  rs   ru   rs   r  r  r=  r>  r   rs   )r   r   rR  rs   rS  rT  rU  rV  r   rW  rX  rY  r(  rZ  r   r   )r   r   rm  rs   rn  ro  rU  rV  r(  rZ  r   r   )r   r   r  ru  r   r  r   r  )r   r   r
  rB   r   rB   )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(  r  r   r
   )r   r   r&  r  r(  r  r   r
   )r   rB   r  rz   r  r   r   r   r   r/  r   r  )r   r   r&  r  r(  r5  r   rs   )r   r   r&  r;  r(  r<  r   r
   )r   r   r&  r  r(  rI  r   r
   )r   r   r&  r  r(  rZ  r   r
   )r   r   rX   rV  r{  rs   rs  rB   rb   r@   rc   rj  r   rk  r   rl  )r   r   r&  r  r(  rs  r   r
   )r   r   r   rz  r   r{  )
r   r   r  rs   r   rB   rc   rs   r   r  )rY  r   r   r  )r   r   r&  r  r(  r  r   r
   )[rH   rI   rJ   r	   INFOr   r  r   run_oncerb  staticmethodr  r$  r'   r(   r@   r)   r   rs   r#   r%   r   r*   rc  r   r   r   r   r   r   evolver   r    r   rh  r  r  r  r  r  r  r  	functools	lru_cacher  r	  r  r  r#  r(  r+  r:  rQ  rl  rt  rz  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   rN  r   r  r  r  r   r   __classcell__)r   s   @rN   r   r      s$       :gD     6
( 
( 
( 
( 1 1 1 1 - - - \- 7 7 7 \7 \	($>>>	$&7&7c&B&BBX\]]]	)4???	+T5QQQ	($XNNN  Z$h//*+ *+ *+ 0/ Y *+X ^-sS(-Whjw4xyy\!
/x@@@	(S(O,,	."3"3D8=,Xi:j"k"kuw  BF  	G  	G  	G	(D%x@@@	$dEJJJ	, 1 1$ < <bRVWWW U) U) U)  zyU)n G+ G+ G+ \G+X .3,1	) ) ) ) )<[P [P [P [PB #(!&P P P P P6   . . . .
) ) ) )= = = = Y&&&1 1 1 '&1 * * * \*  	 	 	 \	    \B 	 	 	 \	    \    \ : : : \:8 % % % \%8 ,
 ,
 ,
 \,
\ 
 
 
 \
: &- &- &- \&-P    \    \ 
 
 
 \
 ^(:u?RTYTg2hvwxxx\  x 00G$$$	."3"3D*"E"Er[_```	,hw???	#%6%6tS%A%A2W[\\\	"D%xHHH	(--dC88"dSSS	%'8'8s'C'CRY]^^^	'):):4#uGXAY)Z)Zdfptuuu	*//sI6FGGQS]abbb	-$!1BBB	#c4%:%*,a$b[[	] 	] 	] 		#dH%5XFFF	'#tX)>%*,e$f[[	] 	] 	] 		+008KUM`7abblnx|}}}	+sT222	+sT222	)..tc8=-Yegx5yzz  EG  QU  	V  	V  	V	/#4#4T3#?#?UYZZZ5 8u) u) u)9  yx:u)n \)+<+C+C(+C+S+SUdee7 7 7 fe Y70 ^L#s333\	**455"S		
 	
 	
 		',,T377rRRR	)..tS994QSTTT	/4666 {0 {0 {0  43{0z ^NC((\	(--dC88RT^bccc	'4h???	/#4#4TCP]_km~;  $A  $A  KM  W[  	\  	\  	\	dZ1DeFY$Z[["	& 	& 	& 		(*;*;D3BV*W*Wacmqrrr	."3"3D#">">TXYYY	%'8'8X]?S'T'T^`jnooo	+00s;;RQUVVV	-!2!24#x}9M!N!NXZdhiii	"$5$5dC$@$@"VZ[[[	!dS%*;$<=="	& 	& 	& 		)T4000	-!2!24!=!=rSWXXX	+X//	*sHo..	+00s;;RQUVVV	Cx&&'F'F'FGG	I 	I 	I 		"C8DDD	+sBh???	+00s;;RQUVVV	/#4#4T3#?#?UYZZZ	)..tc5;L5MNNX\gklll?   Bt5 t5 t5C    )(Dt5l !  !  !  !D ^+S11; ; ; 21 X; ^)3#x}l\mo|9}8~\  x 00$$8444	, 1 1$ < <HVXbfggg	$sHo66	+X//	"D%888	,,TD#;??+II		
 	
 	
 		"D%xHHH	)c8_--	3	&&'A'A'ABB	D 	D 	D 	H---' *~3 ~3 ~3+  @,~3@ ^OS))\	 	 		dS(-GX%2%4 5 5	
 	
 	
	 		,hmX >?? 		,hmX >?? 		*sHo.. 		'C?++ 		'C?++  		'C?++!" 		'C?++#$ 		'C?++%& 		'C?++'( 		'C?++)  ,97 97 97-  *).97v Z&11^*C00\	 		dS(-$899		
 	
 	
 		/3333 		#S"555 		-b111 		+sB///  lE lE lE  10 21 lEj "FJei 
  
  
  
  
  
D ^&,,\X...
)))
/000	, 1 1$ < <dTVWWW	*dE222	*dE222	(S(O,,	-u555	)..tc8=5IW\]]]gkvz{{{	(D%000	&e<<< H) H) H)  -, H)T&U &U &U &UPA A A A    ^)3//\	dS)$4%HHH		
 	
 	
 		+00s;;TSUVVV	/#4#4T3#?#?WYZZZ	*//c::DRTUUU	*//s<N6OPPZ^hjkkk :5 :5 :5  0/ :5 :5 :5 :5 :5rM   r   interpr   c                   t          |           }|j                            t          t          j                   |j                            t
          t          j                   |j                            t          t          j                   |j                            t          t          j                   |j                            t          t          j                   |S r   )	r   r   append_holder_mapr   CustomTargetHolderr   r   r   r   )r  mods     rN   
initializer    s    
f

CO%%o{7UVVVO%%&;[=[\\\O%%i1OPPPO%%m[5STTTO%%j+2PQQQJrM   )r   r   r   r\   )r  r   r   r   )i__doc__
__future__r   rl  r  r  r2  r  r^  typingr  r  r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r^   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   rj  r8   r9   r:   r;   r<   r=   r?   rP   rU   r[   rg   ry   r   r   r   r   r   r   UnionToolTyper@   r   rK   r   rs   r   r  r   r   r  r   r  rL   rM   rN   <module>r     s  
G G G " " " " " "          				                                                     ` ` ` ` ` ` ` ` ` ` ` ` ` ` 9 9 9 9 9 9 9 9 L L L L L L L L [  [  [  [  [  [  [  [  [  [  [  [  [  [  [  [  [  [  [  [ P P P P P P P P P P P P H H H H H H H H H H 7 7 7 7 7 7                       & & & & & & * * * * * *? `E44444444######$$$$$$))))))77777777''''''******# # # # #i # # #+ + + + + + + +
    y            9      # # # # #i # # #*\ \ \ \ \ \ \ \2B B B B By B B B! ! ! ! !Y ! ! !"; ; ; ; ;y ; ; ;' ' ' ' ' ' ' '       O O O O O. O O O wz?OCDH &/Yd& & &      *3dC  	* * *     J+,,,I!C?33IoX//	+        6  + p5 p5 p5 p5 p5/ p5 p5 p5d=     rM   