
    <h                        S SK Jr  SSKJr  SSKJr  SSKJr  S SKr\R                  (       a  SSK
JrJr  SS	.       SS
 jjrg)    )annotations   )mesonlib)mlog   )cmake_is_debugN)CMakeTraceParserCMakeTarget)context_tgtc          
     
  ^ ^^^^^	^
 ST ;  a  T $ SnSmS3S jnS4S jm
S3UU4S jjnS3U4S jjn0 SS	 _S
S _SS _SS _SS _SS _SS _SU_SU_SU
4S j_SU
4S j_SU
4S j_SU
4S j_S U
4S! j_S"S# _S$S% _S&S' _S( S) S* S+ U4S, jU4S- jUUS..Em	S5UUU U	4S/ jjmT[        T 5      :  aP  T[        T 5      S0-
  :  a   T T   S1:X  a  T TS0-      S2:X  a  UT" 5       -  nOUT T   -  nTS0-  mT[        T 5      :  a  MP  U$ )6zParse CMake generator expressions

Most generator expressions are simply ignored for
simplicity, however some are required for some common
use cases.
z$< r   c                V    U R                  S5      nUS:  a  gU S U XS-   S  :X  a  S$ S$ )N,r   0r   1)find)argcol_poss     {/mnt/mint/home/seanl/mnt/public/Repos/ladybird/Build/vcpkg/downloads/tools/meson-1.9.0-d1fcc2/mesonbuild/cmake/generator.pyequal*parse_generator_expressions.<locals>.equal"   s:    ((3-Q;hw-3{|+<<3E#E    c           	         UR                  S5      nUS:  a  g[        R                  " US U SR                  XUS-   S  5      5      (       a  S$ S$ )Nr   r   r   z{}{}r   r   )r   r   version_compareformat)opr   r   s      r   	vers_comp.parse_generator_expressions.<locals>.vers_comp)   sV    ((3-Q;"223x=&--PRX_bcXcXdTeBfgg3pmppr   c                :  > SU ;  a/  Tc  gSR                  TR                  R                  U / 5      5      $ U R                  S5      nUS   TR                  ;   a/  TR                  US      R                  R                  US   / 5      O/ nSR                  U5      $ )Nr   r   ;r   r   )join
propertiesgetsplittargets)r   argspropsr   traces      r   target_property4parse_generator_expressions.<locals>.target_property0   s    c>"88K2266sB?@@yy~FJ1gQVQ^Q^F^d1g&1155d1grBdfxxr   c                  > U TR                   ;  a  [        R                  " SU  S35        gTR                   U    n/ nSnSUR                  ;   a,  UR                  S    Vs/ s H  oD(       d  M  UPM     nnUS   n[	        TR
                  5      (       a  SU;   a  SnOSU;   a  SnOSU;   a  SnSU 3UR                  ;   a:  S	R                  UR                  SU 3    Vs/ s H  oD(       d  M  UPM     sn5      $ S
UR                  ;   a7  S	R                  UR                  S
    Vs/ s H  oD(       d  M  UPM     sn5      $ SU 3UR                  ;   a:  S	R                  UR                  SU 3    Vs/ s H  oD(       d  M  UPM     sn5      $ SUR                  ;   a7  S	R                  UR                  S    Vs/ s H  oD(       d  M  UPM     sn5      $ gs  snf s  snf s  snf s  snf s  snf )Nz5Unable to evaluate the cmake variable '$<TARGET_FILE:z>'.r   IMPORTED_CONFIGURATIONSr   DEBUGRELEASEIMPORTED_IMPLIB_r    IMPORTED_IMPLIBIMPORTED_LOCATION_IMPORTED_LOCATION)r%   r   warningr"   r   envr!   )r   tgtcfgscfgxr(   s        r   target_file0parse_generator_expressions.<locals>.target_file;   s   emm#LLPQTPUUXYZmmC $6"~~.GHNH!AAHDNq'C%))$$$d"D cU#s~~5889I#7O(PV(P1TUQ(PVWW#..0887H(IO(I1QQ(IOPP!#'3>>9889KC57Q(RX(R1VWQ(RXYY CNN2887J(KQ(K1qQ(KQRR) O WOXQs<   !
G/G"
G0G)
G#7G#6
G(G(=
G-G-BOOLc                ^    U R                  5       S;   d  U R                  S5      (       a  S$ S$ )N>   r   r   NNOOFFFALSEIGNORENOTFOUNDz	-NOTFOUNDr   r   )upperendswithr8   s    r   <lambda>-parse_generator_expressions.<locals>.<lambda>]   sC    .h!hlmlvlv  xC  mD  mD#  M  JM  Mr   ANDc                V    [        S U R                  S5       5       5      (       a  S$ S$ )Nc              3  *   #    U  H	  oS :H  v   M     g7fr   N .0ys     r   	<genexpr>@parse_generator_expressions.<locals>.<lambda>.<locals>.<genexpr>^   s     #ClHl   r   r   r   )allr$   rE   s    r   rF   rG   ^   s$    #Caggcl#C C CLLr   ORc                V    [        S U R                  S5       5       5      (       a  S$ S$ )Nc              3  *   #    U  H	  oS :H  v   M     g7frK   rL   rM   s     r   rP   rQ   _   s     "B\8\rR   r   r   r   )anyr$   rE   s    r   rF   rG   _   s$    s"BQWWS\"BBBKKr   NOTc                    U S:X  a  S$ S$ Nr   r   rL   rE   s    r   rF   rG   `   s    S1c1r   IFc                    U R                  S5      S   S:X  a  U R                  S5      S   $ U R                  S5      S   $ )Nr   r   r   r   r   )r$   rE   s    r   rF   rG   b   s8    1773<?c+AQVqwws|TUVr   r   c                    gNr   rL   rE   s    r   rF   rG   d   s    rr   r   c                    U $ NrL   rE   s    r   rF   rG   e   s    qr   STREQUALEQUALVERSION_LESSc                   > T" SU 5      $ )N<rL   r8   r   s    r   rF   rG   j   s    )C"3r   VERSION_GREATERc                   > T" SU 5      $ N>rL   rf   s    r   rF   rG   k   s    YsA%6r   VERSION_EQUALc                   > T" SU 5      $ )N=rL   rf   s    r   rF   rG   l   s    9S!#4r   VERSION_LESS_EQUALc                   > T" SU 5      $ )Nz<=rL   rf   s    r   rF   rG   m   s    	$(:r   VERSION_GREATER_EQUALc                   > T" SU 5      $ )Nz>=rL   rf   s    r   rF   rG   n   s    9T1+=r   
LOWER_CASEc                "    U R                  5       $ r`   )lowerrE   s    r   rF   rG   q   
    	r   
UPPER_CASEc                "    U R                  5       $ r`   )rC   rE   s    r   rF   rG   r   ru   r   INSTALL_INTERFACEc                    gr^   rL   rE   s    r   rF   rG   x   s    rr   c                    U $ r`   rL   rE   s    r   rF   rG   y   s    Qr   c                    gri   rL   rE   s    r   rF   rG   |   s    Sr   c                    g)Nr   rL   rE   s    r   rF   rG   }   s    3r   c                    g)Nr    rL   rE   s    r   rF   rG   ~   s    sr   c                ,   > U TR                   ;   a  S$ S$ rZ   r%   r8   r(   s    r   rF   rG      s    !u}}*<3#E##Er   c                ,   > U TR                   ;   a  U $ S$ r^   r   r   s    r   rF   rG      s    U]]0B1+J+Jr   )BUILD_INTERFACEzANGLE-RCOMMA	SEMICOLONTARGET_EXISTSTARGET_NAME_IF_EXISTSTARGET_PROPERTYTARGET_FILEc                   > TS-  mSn SnSnSnT[        T5      :  aZ  TT   S:X  a  OPT[        T5      S-
  :  a   TT   S:X  a  TTS-      S:X  a  UT" 5       -  nOUTT   -  nTS-  mT[        T5      :  a  MZ  UR                  S5      nUS:  a  Un OUS U n X4S-   S  nU R                  5       n UR                  5       nU T;   a  TU    " U5      nU$ )	Nr   r   rj   r   $re   :r   )lenr   strip)	funcr&   resexpr   eval_generator_expressionsiraw	supporteds	        r   r   ?parse_generator_expressions.<locals>.eval_generator_expressions   s    	Q #c(l1v}SX\!c!fmAE
c8I133 s1vFA #c(l ((3-Q;Dx=D{|$Dzz|zz| 9D/$'C
r   r   r   re   )r   strreturnr   )r   r   r   r   r   r   )r   r   )r   )r   r(   r   outr   r)   r9   r   r   r   r   s   ```    @@@@r   parse_generator_expressionsr      s    3

C	AFq	 	@*6  M*6 	L*6 	K	*6
 	1*6 	V*6 	\*6 	[*6 	E*6 	*6 	3*6  	6!*6" 	4#*6$ 	:%*6& 	 !='*6, 	)-*6. 	)/*6: 	\;*6< ' !" F!J*"S*6IZ& &P c#h,s3x!|A##a!e*2C-//C 3q6MC	Q c#h, Jr   )r   r   r(   z'CMakeTraceParser'r   zT.Optional['CMakeTarget']r   r   )
__future__r   r   r   r   commonr   typingTTYPE_CHECKINGtraceparserr	   r
   r   rL   r   r   <module>r      sS    #   " ??: 6:	ll%l 3	l
 lr   