
    -Ph                        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
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 d"dZd#dZ G d d          Zdd dd$d!ZdS )%    )annotations   )cmake_is_debug   )mlog)Version)PathN)CMakeTraceParser)Environment)Compiler)MissingCompilerpathr	   returnstrc                D   g }|                      d          D ]G}|j                                        dk    r |                    t	          |j                             Ht          |          dk    rdS d                    t          |          d         j                  S )Nz
Versions/*currentr   HeaderszVersions/{}/Headers)	globnamelowerappendr   lenformatsorted_s)r   versionseachs      ]/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/mesonbuild/cmake/tracetargets.py_get_framework_latest_versionr       s     H		,'' , ,9??	))	**++++
8}}y ''x(8(8(<(?@@@    T.Optional[str]c                    ddt          |           f}|D ]1}| |z  }|                                r|                                c S 2d S )Nr   zVersions/Current/Headers)r    is_diras_posix)r   trialsr   trials       r   _get_framework_include_pathr(   !   sa    35RSW5X5XYF $ $t<<>> 	$>>#####	$4r!   c                      e Zd ZddZdS )ResolvedTargetr   Nonec                Z    g | _         g | _        g | _        g | _        g | _        g | _        d S N)include_directories
link_flagspublic_link_flagspublic_compile_opts	librariestarget_dependencies)selfs    r   __init__zResolvedTarget.__init__*   s6    02 020202 0202   r!   N)r   r+   )__name__
__module____qualname__r5    r!   r   r*   r*   )   s(        3 3 3 3 3 3r!   r*   c                    d S r-   r9   )xs    r   <lambda>r<   7   s    W[ r!   )clib_compilernot_found_warningtarget_nametrace'CMakeTraceParser'env'Environment'r=   &T.Union['MissingCompiler', 'Compiler']r>   T.Callable[[str], None]c               	   t                      }| g}t          j        d          }t          j        d          }t          |          }	g }
t	          |          dk    r%|                    d          }||
v r.||j        vrOt          |          }|                    |          r|xj	        |gz  c_	        n|
                                r|                                rt          d |j        D                       rfg }|j        D ].}|                    |           |                    d          r n/t          | }|j        }|j        }|xj	        d| d|gz  c_	        nj|xj	        |gz  c_	        nX|                    |          r8|r6|                    ||g           }||xj	        |z  c_	        n ||           n ||           |j        |         }g }d}t'          j        |           d	|j        v r%|xj        d
 |j        d	         D             z  c_        d|j        v r:|xj        d |j        d         D             z  c_        |xj        |j        z  c_        d|j        v r%|xj        d |j        d         D             z  c_        d|j        v r%|xj        d |j        d         D             z  c_        d|j        v rd |j        d         D             }|d         }|	rd|v rd}nd|v rd}nd|v rd}d| |j        v r)|xj	        d |j        d|          D             z  c_	        n|d|j        v r&|xj	        d |j        d         D             z  c_	        nMd| |j        v r|d |j        d|          D             z  }n#d|j        v r|d |j        d         D             z  }d|j        v r,d |j        d         D             }||z  }|xj        |z  c_        d|j        v r,d  |j        d         D             }||z  }|xj        |z  c_        d!| |j        v r|d" |j        d!|          D             z  }n#d#|j        v r|d$ |j        d#         D             z  }|
|gz  }
t	          |          dk    %|S )%Nz^(-l[a-zA-Z0-9_]+|-l?pthread)$z^[a-zA-Z0-9_]+$r   c              3  @   K   | ]}|                     d           V  dS )
.frameworkN)endswith.0r;   s     r   	<genexpr>z.resolve_cmake_trace_targets.<locals>.<genexpr>N   s.      IIAqzz,//IIIIIIr!   rH   z-Fz
-framework INTERFACE_INCLUDE_DIRECTORIESc                    g | ]}||S r9   r9   rJ   s     r   
<listcomp>z/resolve_cmake_trace_targets.<locals>.<listcomp>q   s    'h'h'hafg'h'h'h'hr!   INTERFACE_LINK_OPTIONSc                    g | ]}||S r9   r9   rJ   s     r   rP   z/resolve_cmake_trace_targets.<locals>.<listcomp>t   s    %_%_%_A]^%_a%_%_%_r!   INTERFACE_COMPILE_DEFINITIONSc                D    g | ]}|d t          j        dd|          z   S )z-Dz^-DrM   )resubrJ   s     r   rP   z/resolve_cmake_trace_targets.<locals>.<listcomp>x   sJ      (C  (C  (C  AB  (CrveR/C/C(C  (C  (C  (Cr!   INTERFACE_COMPILE_OPTIONSc                    g | ]}||S r9   r9   rJ   s     r   rP   z/resolve_cmake_trace_targets.<locals>.<listcomp>{   s    'd'd'dabc'd'd'd'dr!   IMPORTED_CONFIGURATIONSc                    g | ]}||S r9   r9   rJ   s     r   rP   z/resolve_cmake_trace_targets.<locals>.<listcomp>~   s    NNN!ANANNNr!   DEBUGRELEASEIMPORTED_IMPLIB_c                    g | ]}||S r9   r9   rJ   s     r   rP   z/resolve_cmake_trace_targets.<locals>.<listcomp>   s    WWWAUVWaWWWr!   IMPORTED_IMPLIBc                    g | ]}||S r9   r9   rJ   s     r   rP   z/resolve_cmake_trace_targets.<locals>.<listcomp>   s    PPPAaPaPPPr!   IMPORTED_LOCATION_c                    g | ]}||S r9   r9   rJ   s     r   rP   z/resolve_cmake_trace_targets.<locals>.<listcomp>   s    SSSaQRSSSSr!   IMPORTED_LOCATIONc                    g | ]}||S r9   r9   rJ   s     r   rP   z/resolve_cmake_trace_targets.<locals>.<listcomp>   s    LLLa!LLLLr!   LINK_LIBRARIESc                    g | ]}||S r9   r9   rJ   s     r   rP   z/resolve_cmake_trace_targets.<locals>.<listcomp>   s    OOOAQOaOOOr!   INTERFACE_LINK_LIBRARIESc                    g | ]}||S r9   r9   rJ   s     r   rP   z/resolve_cmake_trace_targets.<locals>.<listcomp>   s    YYYAWXYaYYYr!   "IMPORTED_LINK_DEPENDENT_LIBRARIES_c                    g | ]}||S r9   r9   rJ   s     r   rP   z/resolve_cmake_trace_targets.<locals>.<listcomp>   s    cccaabccccr!   !IMPORTED_LINK_DEPENDENT_LIBRARIESc                    g | ]}||S r9   r9   rJ   s     r   rP   z/resolve_cmake_trace_targets.<locals>.<listcomp>   s    \\\aZ[\\\\r!   )r*   rU   compiler   r   poptargetsr	   matchr2   is_absoluteexistsanypartsr   rI   parentstemfind_libraryr   debug
propertiesr.   r0   r/   r1   r3   )r?   r@   rB   r=   r>   resro   
reg_is_libreg_is_maybe_bare_libis_debugprocessed_targetscurr	curr_pathpath_to_frameworkr;   framework_pathframework_nameflibtgtcfgscfglink_librariess                         r   resolve_cmake_trace_targetsr   2   s    

CmG =>>JJ'9::c""H%'
g,,

{{1~~ $$$u}$$T

I%% ($'&&(( (Y-=-=-?-? (IIIIIII , )+%&_ " ")00333::l33 "!E" $&7 8I%.%5N%.^NMM&;>&;&;\>%ZZMMMMMdV+MMM&,,T22 (} (
 %11$R@@#MMT)MMM%%d++++!!$'''mD!
3*cn<<##'h'h3>Ba3b'h'h'hh###s~55!!%_%_@X1Y%_%_%__!!NNc33NN*cn<<##  (C  (CS^\{M|  (C  (C  (C  C##&#.88##'d'd3>B]3^'d'd'dd##$66NNs~.GHNNNDq'C 	 $d""D  #c##s~55MMWW8P38P8P)QWWWWMMM#.00MMPP8I)JPPPPMMM'#''3>99SS3>2Ls2L2L#MSSSSGG CN22LL3>2E#FLLLLGs~--OO8H)IOOON~%G##~5##%77YY8R)SYYYN~%G##~5##555GGcc3>2\WZ2\2\#]ccccGG0CNBB\\3>2U#V\\\\GdV# g,,

L Jr!   )r   r	   r   r   )r   r	   r   r"   )r?   r   r@   rA   rB   rC   r=   rD   r>   rE   r   r*   )
__future__r   commonr   rM   r   mesonlibr   pathlibr	   rU   typingTTYPE_CHECKINGtraceparserr
   environmentr   	compilersr   dependenciesr   r    r(   r*   r   r9   r!   r   <module>r      sX   # " " " " " " " " " " "                   				    ? /------))))))$$$$$$......
A 
A 
A 
A   3 3 3 3 3 3 3 3 Y]M[^v v v v v v v vr!   