o
    nc                     @  s   d dl mZ ddlmZ ddlmZ d dlmZ d dlZd dl	Z
e
jr;ddlmZ dd	lmZ dd
lmZ ddlmZ G dd dZddd ddddZdS )    )annotations   )cmake_is_debug   )mlog)PathN)CMakeTraceParser)Environment)Compiler)MissingCompilerc                   @  s   e Zd ZdddZdS )ResolvedTargetreturnNonec                 C  s   g | _ g | _g | _g | _d S N)include_directories
link_flagspublic_compile_opts	libraries)self r   |home/ych/rk3568/buildroot/output/rockchip_rk3568_recovery/host/lib/python3.10/site-packages/mesonbuild/cmake/tracetargets.py__init__   s   
zResolvedTarget.__init__N)r   r   )__name__
__module____qualname__r   r   r   r   r   r      s    r   c                 C  s   d S r   r   )xr   r   r   <lambda>   s    r   )clib_compilernot_found_warningtarget_namestrtrace'CMakeTraceParser'env'Environment'r   &T.Union['MissingCompiler', 'Compiler']r   T.Callable[[str], None]r   c                C  s  t  }| g}td}td}t|}	g }
t|dkr|d}||
v r'q||jvrn||r:| j|g7  _n3t	|
 rOt	| rO| j|g7  _n|jj ri||ri|ri| j|||g 7  _n|| q|j| }g }d}t| d|jv r| jdd |jd D 7  _d|jv r| jd	d |jd D 7  _d
|jv r| jdd |jd
 D 7  _d|jv r| jdd |jd D 7  _d|jv rdd |jd D }|d }|	rd|v rd}nd|v rd}nd|v rd}d| |jv r| jdd |jd|  D 7  _nGd|jv r'| jdd |jd D 7  _n1d| |jv rC| jdd |jd|  D 7  _nd|jv rX| jdd |jd D 7  _d|jv rj|dd |jd D 7 }d|jv r||dd |jd D 7 }d| |jv r|dd |jd|  D 7 }nd |jv r|d!d |jd  D 7 }|
|g7 }
t|dkstt|j|_tt|j|_tt|j|_tt|j|_|S )"Nz^(-l[a-zA-Z0-9_]+|-l?pthread)$z^[a-zA-Z0-9_]+$r    ZINTERFACE_INCLUDE_DIRECTORIESc                 S     g | ]}|r|qS r   r   .0r   r   r   r   
<listcomp>E       z/resolve_cmake_trace_targets.<locals>.<listcomp>ZINTERFACE_LINK_OPTIONSc                 S  r(   r   r   r)   r   r   r   r+   H   r,   ZINTERFACE_COMPILE_DEFINITIONSc                 S  s"   g | ]}|rd t dd| qS )z-Dz^-Dr'   )resubr)   r   r   r   r+   K   s   " ZINTERFACE_COMPILE_OPTIONSc                 S  r(   r   r   r)   r   r   r   r+   N   r,   ZIMPORTED_CONFIGURATIONSc                 S  r(   r   r   r)   r   r   r   r+   Q   r,   DEBUGZRELEASEZIMPORTED_IMPLIB_c                 S  r(   r   r   r)   r   r   r   r+   ^   r,   ZIMPORTED_IMPLIBc                 S  r(   r   r   r)   r   r   r   r+   `   r,   ZIMPORTED_LOCATION_c                 S  r(   r   r   r)   r   r   r   r+   b   r,   ZIMPORTED_LOCATIONc                 S  r(   r   r   r)   r   r   r   r+   d   r,   ZLINK_LIBRARIESc                 S  r(   r   r   r)   r   r   r   r+   g   r,   ZINTERFACE_LINK_LIBRARIESc                 S  r(   r   r   r)   r   r   r   r+   i   r,   Z"IMPORTED_LINK_DEPENDENT_LIBRARIES_c                 S  r(   r   r   r)   r   r   r   r+   l   r,   Z!IMPORTED_LINK_DEPENDENT_LIBRARIESc                 S  r(   r   r   r)   r   r   r   r+   n   r,   )r   r-   compiler   lenpoptargetsmatchr   r   is_absoluteexistsZmachinesbuildZ
is_windowsZfind_libraryr   debugZ
propertiesr   r   r   sortedset)r   r!   r#   r   r   resr3   Z
reg_is_libZreg_is_maybe_bare_libZis_debugZprocessed_targetscurrZtgtZcfgscfgr   r   r   resolve_cmake_trace_targets   s   











& & 
Ir>   )r   r    r!   r"   r#   r$   r   r%   r   r&   r   r   )
__future__r   commonr   r'   r   pathlibr   r-   typingTTYPE_CHECKINGZtraceparserr   environmentr	   	compilersr
   dependenciesr   r   r>   r   r   r   r   <module>   s   