
    -Ph                    <   d dl mZ d dlZd dlZddlmZmZmZ ddl	m
Z
 ddlmZmZ ddlmZmZmZmZ dd	lmZmZ ej        rHd d
l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! ddlm"Z"  G d de          Z# G d de          Z$ G d de          Z%ddZ&dS )    )annotationsN   )ExtensionModuleModuleReturnValue
ModuleInfo   )CustomTarget)NoneTypein_set_validator)typed_pos_argstyped_kwargs	KwargInfo
FeatureNew)FileMesonException)Literal	TypedDict)ModuleState)
Executable)
Dependency)Interpreter)ExternalProgram)FileOrStringc                  8    e Zd ZU ded<   ded<   ded<   ded<   dS )ScanXMLboolpublicclientserverinclude_core_onlyN__name__
__module____qualname____annotations__     Z/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/mesonbuild/modules/wayland.pyr   r      s9         r'   r   c                  $    e Zd ZU ded<   ded<   dS )FindProtocolz(Literal['stable', 'staging', 'unstable']statezT.Optional[int]versionNr!   r&   r'   r(   r*   r*      s*         7777      r'   r*   c                      e Zd Z eddd          Zd' fd	Z ed
eefd           e	d
 e
ded           e
ded           e
ded           e
dedd                    d(d                        Z ede           e	d e
ded eh d           !           e
d"eef                    d)d&                        Z xZS )*WaylandModulewaylandz0.62.0z1.8.0)
stabilizedinterpreterr   returnNonec                    t                                          |           d | _        d | _        d | _        | j                            | j        | j        d           d S )N)scan_xmlfind_protocol)	super__init__protocols_dep
pkgdatadirscanner_binmethodsupdater5   r6   )selfr1   	__class__s     r(   r8   zWaylandModule.__init__(   sk    %%%59+/MQ!/
 
 	 	 	 	 	r'   zwayland.scan_xmlr   )varargsmin_varargsr   F)defaultr   Tr   r    z0.64.0)rB   sincer+   r   argsT.Tuple[T.List[FileOrString]]kwargsr   r   c                   | j         8|                    d          }|                    ddd|j                  | _         d         rdnd}fdt	          j        dd	d
g          D             }|st          d          | j                            |d                   }g }|D ]}	t          j
                            t          j
                            |	j                            d         }
t          |
 d|j        |j        |j        | j         | dddg|	g|
 dg|j                  }|                    |           |D ]{}| j         | dddg}d         r|                    d           t          |
 d| d|j        |j        |j        ||	g|
 d| dg|j                  }|                    |           |t)          ||          S )Nzwayland-clientzwayland-scannerwayland_scanner)wantedr   privatec                $    g | ]}|         
|S r&   r&   ).0irF   s     r(   
<listcomp>z*WaylandModule.scan_xml.<locals>.<listcomp>F   s%    mmmqcijkclmmmmr'   z#T.List[Literal['client', 'server']]r   r   zFAt least one of client or server keyword argument must be set to true.r   z	-protocolz-codez@INPUT@z@OUTPUT@z-protocol.c)backendz-headerr    z--include-core-only-z-protocol.h)r;   
dependency	find_toolr,   Tcastr   r1   source_strings_to_filesospathsplitextbasenamefnamer	   subdir
subprojectenvironmentrO   appendr   )r>   r+   rD   rF   depscopesides	xml_filestargetsxml_filenamecodesidecommandheaders      `           r(   r5   zWaylandModule.scan_xml4   sJ    # ""#344C$/@BSUf69k  /  C  CD #8,;)mmmmAF#H8U]J^__mmm 	k !ijjj$<<T!WEE	(*! 	' 	'H7##BG$4$4X^$D$DEEaHD""" !!e???IzJ
%%%&	 	 	D NN4    ' '+-=-=-=y*U-. :NN#8999%--d---L$%J00t0001!M	 	 	 v&&&&'" !'222r'   zwayland.find_protocolstable>   rj   stagingunstable)rB   	validatorr,   T.Tuple[str]r*   r   c                ^   |d         }|d         }|d         }|dk    r|t          | d          |dk    r$|"t          j        dd|j        |j                   | j        |                    d	          | _        | j        !| j                            d
d
          | _        |}|dk    r|dz  }||d| z  }|dz  }t          j
                            | j        |||          }t          j
                            |          st          d| d          t          j        |          S )Nr   r+   r,   rj   z$ protocols require a version number.z)Version number in stable wayland protocolz1.5.0)locationzwayland-protocolsr:   )	pkgconfiginternalrl   z	-unstablez-vz.xmlz	The file z does not exist.)r   r   
single_user\   current_noder9   rQ   r:   get_variablerV   rW   joinexistsr   from_absolute_file)	r>   r+   rD   rF   	base_name	xml_stater,   xml_namerW   s	            r(   r6   zWaylandModule.find_protocoln   sf    G	7O	#  W_ I!S!S!STTT  W%8!"MwX]Xhsx  tF  G  G  G  G%!&!1!12E!F!FD?""0==_k=llDO
""#HW&HFw||DOY	8LLw~~d## 	E !CT!C!C!CDDD&t,,,r'   )r1   r   r2   r3   )r+   r   rD   rE   rF   r   r2   r   )r+   r   rD   rn   rF   r*   r2   r   )r"   r#   r$   r   INFOr8   r   strr   r   r   r   r5   r   intr
   r6   __classcell__)r?   s   @r(   r.   r.   $   s       :ig>>>D
 
 
 
 
 
 ^&dKKK\	(D%000	(D$///	(D%000	%tTJJJ 03 03 03  LK03d ^+S11\	'3<L<LMnMnMn<o<oppp	)c8_-- 
- - -  21- - - - -r'   r.   r1   r   r2   c                     t          |           S )N)r.   )r1   s    r(   
initializer      s    %%%r'   )r1   r   r2   r.   )'
__future__r   rV   typingrS    r   r   r   buildr	   interpreter.type_checkingr
   r   interpreterbaser   r   r   r   mesonlibr   r   TYPE_CHECKINGtyping_extensionsr   r   r   r   dependenciesr   r1   r   programsr   r   r   r*   r.   r   r&   r'   r(   <module>r      s   # " " " " " 				     < < < < < < < < < <             B B B B B B B B Q Q Q Q Q Q Q Q Q Q Q Q + + + + + + + +? !44444444""""""))))))))))))******''''''         )      ! ! ! ! !y ! ! !
m- m- m- m- m-O m- m- m-`& & & & & &r'   