o
    nc%                     @  s8  U d dl mZ ddl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 dd
lmZ d dlZd dlZejrpddlmZ ddlmZmZmZ eje e!e"ej#e df f Z$ej#ej#e e$f df Z%i Z&de'd< e( Z)de'd< d2ddZ*dddddd d!d"d#d$d%d&Z+d3d+d,Z,d4d0d1Z-dS )5    )annotations   )ExternalDependencyDependencyExceptionDependencyMethodsNotFoundDependency)CMakeDependency)DubDependency)ExtraFrameworkDependency)PkgConfigDependency   )listifyMachineChoice
PerMachine)mlogN)Environment)DependencyFactoryWrappedFactoryFuncDependencyGenerator.z[T.Dict[str, T.Union[T.Type[ExternalDependency], 'DependencyFactory', 'WrappedFactoryFunc']]packagesz
T.Set[str]_packages_accept_languagenamestrkwargsT.Dict[str, T.Any]return
'TV_DepID'c                 C  s   d| ff}ddl m} t|dksJ d| D ]6\}}|dv r"qt|tr<|D ]	}t|ts2J q)ttt	|}n
t|tt
tfsFJ g |||fR }q|S )Nr   r   )permitted_dependency_kwargs   z_Extra kwargs have been added to dependency(), please review if it makes sense to handle it here>   versionZinclude_typeZnot_found_messageZallow_fallbackfallbacknativerequiredZdefault_options)interpreterr   lenitems
isinstancelistr   tuple	frozensetr   boolint)r   r   
identifierr   keyvaluei r0   }home/ych/rk3568/buildroot/output/rockchip_rk3568_recovery/host/lib/python3.10/site-packages/mesonbuild/dependencies/detect.pyget_dep_identifier)   s   


r2   ZBoostZCUDAZDUBZGMockZGTestZHDF5ZLLVMZMPIZNetCDFZOpenMPZ	WxWidgets)ZboostZcudadubZgmockZgtestZhdf5ZllvmZmpiZnetcdfZopenmpZ	wxwidgetsenv'Environment'T.Dict[str, object]1T.Union['ExternalDependency', NotFoundDependency]c                 C  s  | sJ | dd}t|tstdt| ddts td|  }|tvr3d|v r3t|  dt| d	dttfsBtd
t ||}| ddrQt	j
nt	j}tdd| d }t| |||}g }	g }
d}|D ]}z| }|  |
| W n8 ty } z,t|tjsJ dd|  d|j d| }t| |f|_|	| W Y d }~qld }~ww |	d  | }|rd| d }d|v r|d|j d 7 }| rg }|jr|t|j | }|r|d| d  tj|t||d tdg|R   |  S qldd |
D }|rt |}nd}t|t||d t!d|r7d| dnd |r]|	rI|	d rI|	d td |  d!|rYd"|  d t"| |S )#Nr"   Tz%Keyword "required" must be a boolean.method z"Keyword "method" must be a string.languagez7 dependency does not accept "language" keyword argumentr   z)Keyword "Version" must be string or list.r!   Fz
Build-timezRun-timez dependencyzfor mypyzDependency lookup for z with method z	 failed: (z) zfor  )zfound:ZYESc                 S  s   g | ]
}|  r|  qS r0   )	log_tried).0dr0   r0   r1   
<listcomp>   s    z,find_external_dependency.<locals>.<listcomp>ZNOz(tried r   zDependency "z" not foundz, tried )#getr&   r*   r   r   lowerr   r'   display_name_mapr   ZBUILDZHOSTr   _build_external_dependency_listZ_check_versionappend	functoolspartialfuncr>   r   debugargsZlog_detailsr:   foundr   Znormal_cyanlog_infologZboldZgreenformat_listZredr   )r   r4   r   r"   lnamedisplay_namefor_machineZ	type_text
candidatesZpkg_excZpkgdepdetailscr@   eZ	bettermsginforM   Ztried_methodsZtriedr0   r0   r1   find_external_dependencyS   s~   



(
rX   rR   r   T.List['DependencyGenerator']c           
      C  s  d|v r|d dd t D vrtd|d |  }|tv rPtt| tr@tdt| }t	|t
r>t|||}|g}|S tdt| }||||}|S g }	d|ddkrg|	tt| || |	S d	|ddkr||	tt| || |	S d
|ddkr|	tt| || |	S d|ddkr|j|  r|	tt| || |	S d|ddkr|	tt| || |j|  r|	tt| || |	tt| || |	S )Nr8   c                 S  s   g | ]}|j qS r0   )r.   )r?   rV   r0   r0   r1   rA      s    z3_build_external_dependency_list.<locals>.<listcomp>zmethod {!r} is invalidzT.Type[ExternalDependency]z.T.Union[DependencyFactory, WrappedFactoryFunc]r3   r9   z
pkg-configcmakeZextraframeworkauto)r   r   formatrC   r   r&   typeTcast
issubclassr   rG   rH   rB   rF   r	   r   r   ZmachinesZ	is_darwinr
   )
r   r4   rR   r   rP   Zentry1rI   depZentry2rS   r0   r0   r1   rE      sB   
rE   )r   r   r   r   r   r   )r   r   r4   r5   r   r6   r   r7   )
r   r   r4   r5   rR   r   r   r   r   rY   ).
__future__r   baser   r   r   r   rZ   r   r3   r	   Z	frameworkr
   Z	pkgconfigr   Zmesonlibr   r   r   r9   r   rG   typingr^   TYPE_CHECKINGenvironmentr   factoryr   r   r   Unionr   r*   r+   TupleZTV_DepIDEntryZTV_DepIDr   __annotations__setr   r2   rD   rX   rE   r0   r0   r0   r1   <module>   sB   


W