
    e                        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      Zdd d	 	 	 	 	 	 	 	 	 ddZy)    )annotations   )cmake_is_debug   )mlog)PathN)CMakeTraceParser)Environment)Compiler)MissingCompilerc                      e Zd ZddZy)ResolvedTargetc                <    g | _         g | _        g | _        g | _        y N)include_directories
link_flagspublic_compile_opts	libraries)selfs    ?/usr/lib/python3/dist-packages/mesonbuild/cmake/tracetargets.py__init__zResolvedTarget.__init__   s     02 0202 02    N)returnNone)__name__
__module____qualname__r    r   r   r   r      s    3r   r   c                     y r   r   )xs    r   <lambda>r!      s    r   )clib_compilernot_found_warningc                  t               }| g}t        j                  d      }t        j                  d      }t        |      }	g }
t	        |      dkD  re|j                  d      }||
v r%||j                  vr|j                  |      r|xj                  |gz  c_        nt        |      j                         r0t        |      j                         r|xj                  |gz  c_        nO|j                  |      r6|r4|j                  ||g       }||xj                  |z  c_        n ||       n ||       |j                  |   }g }d}t        j                  |       d|j                  v r3|xj                   |j                  d   D cg c]  }|s|	 c}z  c_        d|j                  v r3|xj"                  |j                  d   D cg c]  }|s|	 c}z  c_        d|j                  v rK|xj$                  |j                  d   D cg c]  }|sdt        j&                  d	d|      z   ! c}z  c_        d
|j                  v r3|xj$                  |j                  d
   D cg c]  }|s|	 c}z  c_        d|j                  v r$|j                  d   D cg c]  }|s|	 }}|d   }|	rd|v rd}nd|v r	d}nd|v rd}d| |j                  v r7|xj                  |j                  d|    D cg c]  }|s|	 c}z  c_        nd|j                  v r4|xj                  |j                  d   D cg c]  }|s|	 c}z  c_        nd| |j                  v r7|xj                  |j                  d|    D cg c]  }|s|	 c}z  c_        nAd|j                  v r3|xj                  |j                  d   D cg c]  }|s|	 c}z  c_        d|j                  v r#||j                  d   D cg c]  }|s|	 c}z  }d|j                  v r#||j                  d   D cg c]  }|s|	 c}z  }d| |j                  v r'||j                  d|    D cg c]  }|s|	 c}z  }n1d|j                  v r#||j                  d   D cg c]  }|s|	 c}z  }|
|gz  }
t	        |      dkD  ret)        t+        |j                               |_        t)        t+        |j"                              |_        t)        t+        |j$                              |_        t)        t+        |j                              |_        |S c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w )Nz^(-l[a-zA-Z0-9_]+|-l?pthread)$z^[a-zA-Z0-9_]+$r    INTERFACE_INCLUDE_DIRECTORIESINTERFACE_LINK_OPTIONSINTERFACE_COMPILE_DEFINITIONSz-Dz^-DINTERFACE_COMPILE_OPTIONSIMPORTED_CONFIGURATIONSDEBUGRELEASEIMPORTED_IMPLIB_IMPORTED_IMPLIBIMPORTED_LOCATION_IMPORTED_LOCATIONLINK_LIBRARIESINTERFACE_LINK_LIBRARIES"IMPORTED_LINK_DEPENDENT_LIBRARIES_!IMPORTED_LINK_DEPENDENT_LIBRARIES)r   recompiler   lenpoptargetsmatchr   r   is_absoluteexistsfind_libraryr   debug
propertiesr   r   r   subsortedset)target_nametraceenvr"   r#   resr9   
reg_is_libreg_is_maybe_bare_libis_debugprocessed_targetscurrflibtgtcfgscfgr    s                    r   resolve_cmake_trace_targetsrP      s    
CmG =>JJJ'9:c"H%'
g,
{{1~ $$u}}$%$'d'')d4j.?.?.A$'&,,T2}
 %11$R@#MMT)M%d+!$'mmD!

3*cnn<##3>>Ba3b'hafg'hh##s~~5NN#..9Q*RXQVWqXXN*cnn<##S^^\{M|  (C  ABrvveR/C(C  (C  C#&#..8##3>>B]3^'dabc'dd#$6"~~.GHN!AANDNq'C$d"D cU#s~~5MM:J3%8P)QWAUVaWWM#..0MM8I)JPAaaPPM!#'3>>9MM:LSE8R)SYAWXaYYM CNN2MM8K)LRAPQaRRMs~~-3>>2B#CIaqIIG%73>>2L#MSaQRSSG/u5G3>>4VWZV[2\#]caabccG0CNNB3>>2U#V\aZ[\\GdV#W g,
Z %S)@)@%ABCC/0CN$S)@)@%ABC3s}}-.CMJe (i Y (C (e O XPYR JS d\s   UUUUUU'U/UU$U6U >U 8U% U% U*U*U/
U/8U4 U4)U91U9 U>(U>VV)rC   strrD   z'CMakeTraceParser'rE   z'Environment'r"   z&T.Union['MissingCompiler', 'Compiler']r#   zT.Callable[[str], None]r   r   )
__future__r   commonr   r%   r   pathlibr   r5   typingTTYPE_CHECKINGtraceparserr	   environmentr
   	compilersr   dependenciesr   r   rP   r   r   r   <module>r\      s}    # "   	 ??-)$.3 3 Y]M[b'9b%2b 0V	b
 4Kb
 aobr   