
    j                    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S SK	r
SSKJrJr  SSKJr  S	S
KJr  S	SKJr  S	SKJr  S	SKJr  S	SKJr  S	SKJr  S	SKJrJr  S	SKJrJrJrJr  S	SKJrJ r   S	SK!J"r"J#r#J$r$J%r%  \
RL                  (       ad  S SK'J(r(  SSKJ)r)  S	SKJ*r*  S	SK+J,r,  \
RZ                  \R\                  \R^                  \04   r1\
RZ                  \Rd                  \04   r3 " S S\(5      r4\#" S\"" \5\0\R\                  \Rl                  \Rn                  \Rp                  \Rr                  45      / SS9r:S\;S'   \#" S\"" \5\0\Rl                  \Rn                  \R\                  45      / SS9r<S \;S!'   S*S" jr=\ " S# S$5      5       r> " S% S&5      r? " S' S(\5      r@S+S) jrAg),    )annotations)defaultdict)	dataclass)PurePathN   )NewExtensionModule
ModuleInfo)ModuleReturnValue   )build)dependencies)mesonlib)	OptionKey)mlog)BUILTIN_DIR_OPTIONS)PkgConfigDependencyPkgConfigInterface)D_MODULE_VERSIONS_KWINSTALL_DIR_KWVARIABLES_KWNoneType)
FeatureNewFeatureDeprecated)ContainerTypeInfo	KwargInfotyped_kwargstyped_pos_args)	TypedDict)ModuleState)mparser)Interpreterc                      \ rS rSr% S\S'   S\S'   S\S'   S\S'   S\S'   S\S	'   S
\S'   S
\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S
\S'   S\S'   S\S'   S\S'   S\S'   Srg) 
GenerateKw"   T.Optional[str]versionnamefilebasedescriptionstrurllicenseT.List[str]subdirs	conflictsbooldataonlyT.List[ANY_DEP]	librarieslibraries_privateWT.List[T.Union[str, build.StaticLibrary, build.SharedLibrary, dependencies.Dependency]]requiresrequires_privateinstall_dirzT.List[T.Union[str, int]]d_module_versionsextra_cflagsT.Dict[str, str]	variablesuninstalled_variablesunescaped_variablesunescaped_uninstalled_variables N)__name__
__module____qualname____firstlineno____annotations____static_attributes__r@       }/mnt/mint/home/seanl/mnt/public/Repos/ladybird/Build/vcpkg/downloads/tools/meson-1.9.0-d1fcc2/mesonbuild/modules/pkgconfig.pyr#   r#   "   sw      !!$$""**iiqq$$44!!##//--)99rG   r#   r3   TdefaultlistifyzKwargInfo[T.List[T.Union[str, dependencies.Dependency, build.SharedLibrary, build.StaticLibrary, build.CustomTarget, build.CustomTargetIndex]]]_PKG_LIBRARIESr6   zbKwargInfo[T.List[T.Union[str, build.SharedLibrary, build.StaticLibrary, dependencies.Dependency]]]_PKG_REQUIRESc                4    [        U [        5      (       d   eU $ N)
isinstancer*   )objs    rH   _as_strrR   K   s    c3JrG   c                  B    \ rS rSr% S\S'   S\S'   S\S'   SrS\S	'   S
rg)MetaDataP   r*   r(   display_namezmparser.BaseNodelocationFr0   warnedr@   N)rA   rB   rC   rD   rE   rX   rF   r@   rG   rH   rT   rT   P   s     MFDrG   rT   c                      \ rS rSrSS jrSS jrSS jrSS jrSS jrSS jr	SS jr
SS	 jrSSS jjr      SS jr S           SS jjrS S jrS!S jrS"S jrS#S jrS$S jrS%S jrSrg
)&DependenciesHelperY   c                    Xl         X l        X0l        / U l        / U l        / U l        / U l        / U l        [        [        5      U l
        / U l        [        R                  " 5       U l        g rO   )stater'   metadatapub_libspub_reqs	priv_libs	priv_reqscflagsr   setversion_reqslink_whole_targetsr   
OrderedSetuninstalled_incdirs)selfr]   r'   r^   s       rH   __init__DependenciesHelper.__init__Z   sZ    
	 &(%'')&(#%<G<Luw=E=P=P=R rG   c                    U R                  US5      u  p#nX R                  -   U l        U =R                  U-  sl        U =R                  U-  sl        g )NT)_process_libsr_   r`   rc   )ri   libsp_libsreqsrc   s        rH   add_pub_libsDependenciesHelper.add_pub_libsg   sC    #11$=f.vrG   c                ~    U R                  US5      u  p#nX R                  -   U l        U =R                  U-  sl        g )NF)rm   ra   rb   )ri   rn   ro   rp   _s        rH   add_priv_libs DependenciesHelper.add_priv_libsm   s4    ,,T59a..0$rG   c                L    U =R                   U R                  U5      -  sl         g rO   )r`   _process_reqsri   rp   s     rH   add_pub_reqsDependenciesHelper.add_pub_reqsr   s    ++D11rG   c                L    U =R                   U R                  U5      -  sl         g rO   )rb   rx   ry   s     rH   add_priv_reqs DependenciesHelper.add_priv_reqsu   s    $,,T22rG   c           
     n   UR                  5       U R                  ;   a  g U R                  UR                  5          nUR                  (       a  g [        R                  " S[        R
                  " UR                  5      SS[        R
                  " UR                  5      SUR                  S9  SUl        g )NLibraryz|was passed to the "libraries" keyword argument of a previous call to generate() method instead of first positional argument.Addingzto "Requires" field, but this is a deprecated behaviour that will change in version 2.0 of Meson. Please report the issue if this warning cannot be avoided in your case.rW   T)	get_idr^   rX   r   deprecationboldr'   rV   rW   )ri   rQ   datas      rH   _check_generated_pc_deprecation2DependenciesHelper._check_generated_pc_deprecationx   s    ::<4==(}}SZZ\*;;DIIchh$7 :% '/		$:K:K0LC #'--	1 rG   c                  ^  / n[         R                  " U5       GH(  n[        U[        5      (       d,  [        R
                  " SST R                  R                  5        [        U[        R                  [        R                  [        R                  [        R                  45      (       ag  UR                  5       T R                  ;   aI  T R                  U5        UR!                  T R                  UR                  5          R"                  5        M  [        U[$        5      (       a\  UR'                  5       (       aD  UR!                  UR(                  5        T R+                  UR(                  UR,                  5        GMg  GMj  [        U[        5      (       a>  T R/                  U5      u  pEUR!                  U5        T R+                  XEb  U/OS5        GM  [        U[0        R2                  5      (       a  UR'                  5       (       d  GM  [        U[0        R4                  5      (       a  UR(                  S:X  a  GM&  [        U[0        R6                  5      (       a  [9        U 4S jUR:                   5       5      (       a  T R<                  (       a<  [        T R<                  S   [        R                  5      (       a  UR?                  SS9nOURA                  SS9nUR:                   H9  nUR!                  T R                  UR                  5          R"                  5        M;     GM  [         RB                  " S	U< 35      e   U$ )
z$Returns string names of requirementsz5pkgconfig.generate requirement from non-string object0.46.0Nthreadsc              3  \   >#    U  H!  oR                  5       TR                  ;   v   M#     g 7frO   )r   r^   ).0libri   s     rH   	<genexpr>3DependenciesHelper._process_reqs.<locals>.<genexpr>   s0       JB  tAlo**,Z^ZgZgJg  tAs   ),r   T	recursivezjrequires argument not a string, library with pkgconfig-generated file or pkgconfig-dependency object, got )"r   rK   rP   r*   r   
single_user]   
subprojectr   CustomTargetCustomTargetIndexSharedLibraryStaticLibraryr   r^   r   appendr(   r   foundr'   add_version_reqsre   split_version_reqr   
DependencyExternalDependencyInternalDependencyallr3   r_   get_as_staticget_as_sharedMesonException)ri   rp   processed_reqsrQ   r'   version_reqr   s   `      rH   rx    DependenciesHelper._process_reqs   s}   &(##D)Cc3''%%&]_gimisisi~i~3!3!3U5L5LeNaNachcvcv wxx

544S9%%dmmCJJL&A&J&JKC!45599;;"))#((3))#((C4D4DE  C%%$($:$:3$?!%%d+%%d=T[MZ^_C!8!899#))++C!@!@AAchhR[F[C!@!@AAc  JBsv  tA  tA  JB  GB  GB==Za0@%BUBU%V%V++d+;C++d+;C==C"))$--

*E*N*NO ) -- /UUXT[/] ^ ^9 *> rG   c                V    U =R                   [        R                  " U5      -  sl         g rO   )rc   r   stringlistify)ri   rc   s     rH   
add_cflagsDependenciesHelper.add_cflags   s    x--f55rG   Nc                   U Hd  nUR                  5       nUR                  5        H=  n[        R                  R	                  XE5      nU R
                  R                  U5        M?     Mf     Ub  U R
                  R                  U5        g g rO   )
get_curdirget_incdirsospathjoinrh   add)ri   incdirssubdiricurdirdr   s          rH   _add_uninstalled_incdirs+DependenciesHelper._add_uninstalled_incdirs   sn    A\\^F]]_ww||F.((,,T2 % 
 $$((0 rG   c           
     j
   [         R                  " U5      n/ n/ n/ nU GH  n[        U[        R                  [        R
                  [        R                  [        R                  45      (       ag  UR                  5       U R                  ;   aI  U R                  U5        UR                  U R                  UR                  5          R                  5        M  [        U[        R                  5      (       a  UR                  S:X  a  M  [        U[         5      (       a\  UR#                  5       (       aD  UR                  UR                  5        U R%                  UR                  UR&                  5        GMW  GMZ  [        U[        R(                  5      (       Ga  UR#                  5       (       a  UR*                  (       a  [         R,                  " S5      eU R.                  (       a<  [        U R.                  S   [        R                  5      (       a  UR1                  SS9nOUR3                  SS9nX6R5                  5       -  nXVR7                  5       -  nU R9                  UR:                  UR<                  UR>                  USS9  U RA                  URC                  5       5        GM  GM  [        U[        RD                  5      (       a?  UR#                  5       (       a'  X6R5                  5       -  nXVR7                  5       -  nGM  GM  [        U[        R                  5      (       aS  URF                  (       aB  UR                  U5        U RA                  URC                  5       URI                  5       5        GM\  [        U[        R                  [        R                  45      (       a  UR                  U5        U RA                  URC                  5       URI                  5       5        U R9                  URJ                  URL                  URN                  [        U[        R                  5      =(       a    U5        GM   [        U[        R                  [        R
                  45      (       ak  URQ                  5       (       d  [         R,                  " S5      e[R        RT                  " SS	U RV                  RX                  5        UR                  U5        GM  [        U[Z        5      (       a  UR                  U5        GM  [         R,                  " S
[]        U5      R^                   S35      e   X4U4$ )Nvalgrindz1.pc file cannot refer to individual object files.r   Tr   )private_external_depsz7library argument contains a not linkable custom_target.z-custom_target in pkgconfig.generate librariesz0.58.0zlibrary argument of type z, not a string, library or dependency object.)0r   rK   rP   r   r   r   r   r   r   r^   r   r   r(   r   r   r'   r   r   r   re   r   objectsr   r_   r   r   get_link_argsget_compile_args_add_lib_dependenciesr3   whole_librariesext_depsr   get_include_dirsr   shared_library_only
get_subdirlink_targetsrf   external_depsis_linkable_targetr   r   r]   r   r*   typerA   )ri   rn   publicprocessed_libsr   processed_cflagsrQ   s          rH   rm    DependenciesHelper._process_libs   s    % GI&((*C3!3!3U5L5LeNaNachcvcv wxx

544S9%%dmmCJJL&A&J&JKC!@!@AAchhR\F\C!45599;;"))#((3))#((C4D4DE  C!@!@AA99;;{{&556ijj }}DMM!4DeFYFY)Z)Z!//$/?!//$/?"&7&7&99N$(<(<(>>$..s}}c>Q>QSVS_S_ag  @D.  E11#2F2F2HI  C!8!89999;;"&7&7&99N$(<(<(>>$  C!4!455#:Q:Q %%c*--c.B.B.DcnnFVWC%"5"5u7J7J!KLL%%c*--c.B.B.DcnnFVW **3+;+;+.+A+A+.+<+<+5c5;N;N+O+ZTZ\ C%"4"4e6M6M!NOO--//"112kll%%&UW_aeakakavavw%%c*C%%%%c*--0I$s)J\J\I]  ^J  /K  L  Ls v /???rG   c                
   U(       a  U R                   OU R                  nU Hy  nUR                  5       (       aX  [        U[        R
                  [        R                  [        R                  45      (       d   S5       eU R                  Xt5        Mp  U" U/5        M{     U H  nU R                  Xt5        M     U(       a'  U R                  [        R                  " SU5      5        g U" [        R                  " SU5      5        g )Nfor mypyr2   )rq   ru   is_internalrP   r   r   r   r   _add_link_wholeTcast)ri   r   rf   r   r   r   add_libsts           rH   r   (DependenciesHelper._add_lib_dependencies   s     )/4$$D4F4FA }} "!e&9&95;M;MuOfOf%ghhtjtth$$Q/!  $A  + $ !qvv&7GHQVV-}=>rG   c                    U R                   R                  U5        [        U[        R                  5      (       a3  U R                  UR                  UR                   UR                  U5        g g rO   )rf   r   rP   r   BuildTargetr   r   r   )ri   r   r   s      rH   r   "DependenciesHelper._add_link_whole  sS     	&&q)a**++&&q~~q7K7KQ__^de ,rG   c                P    U(       a  U R                   U   R                  U5        g g rO   )re   update)ri   r'   re   s      rH   r   #DependenciesHelper.add_version_reqs"  s%     d#**<8	 rG   c                    S HA  nUR                  U5      nUS:  d  M  USU R                  5       XS  R                  5       4s  $    US 4$ )Nz>=z<=z!=z===><r   )findstrip)ri   sopposs       rH   r   $DependenciesHelper.split_version_req)  sM    9B&&*CQw3x~~'488 : $wrG   c                p    S H/  nUR                  U5      (       d  M  US-   U[        U5      S  -   s  $    U$ )Nr    )
startswithlen)ri   vreqr   s      rH   format_vreqDependenciesHelper.format_vreq0  s;    9Br""Cx$s2wx.00 : rG   c           	         / nU H`  nU R                   R                  US 5      nU(       a5  U[        U5       Vs/ s H  oSS-   U R                  U5      -   PM     sn-  nM[  X#/-  nMb     SR	                  U5      $ s  snf )Nr   z, )re   getsortedr   r   )ri   rp   resultr'   vreqsr   s         rH   format_reqsDependenciesHelper.format_reqs7  s}     D%%))$5E6RW=Y=4#:(8(8(>>=YY&   yy   Zs    A:c                  ^ ^^^ [        5       mSU 4S jjmSUU4S jjmT R                   H  nT" U5        M     [        R                  S	S
S jj5       n[        R                  S	SS jj5       nS	SU4S jjjnU" T R                  5      T l        U" T R
                  S5      T l        U" T R                  5      T l        U" T R                  S5      T l        [        5       mU" T R                  5      T l        g )Nc              3     >#    [        U [        5      (       a  U v   g U R                  5       TR                  ;   a)  TR                  U R                  5          R                  v   U R                  5       v   g 7frO   )rP   r*   r   r^   rV   )xri   s    rH   _ids,DependenciesHelper.remove_dups.<locals>._idsG  sQ     !S!!88:.--
3@@@hhj s   A5A8c                `   > SnT" U 5       H  nUT;   a  SnM  TR                  U5        M      U$ )NFT)r   )r   was_excludedr   r   excludes      rH   _add_exclude4DependenciesHelper.remove_dups.<locals>._add_excludeP  s5     L!W<#'LKKN	 
  rG   c                    g rO   r@   xsrn   s     rH   _fn+DependenciesHelper.remove_dups.<locals>._fna  s    EHrG   c                    g rO   r@   r   s     rH   r  r  d  s    GJrG   c                   > / nU  Hn  nS/nU=(       a8    [        U[        5      =(       a!    UR                  S5      (       + =(       a    X4;  nU(       d  T" U5      (       a  M]  UR                  U5        Mp     U$ )Nz-pthread)-lz-L)rP   r*   r   r   )r  rn   r   r   known_flagscannot_dedupr   s         rH   r  r  g  ss    F  *l#  )
1c(:  )\22 )(  $Qa   MrG   T)r   cT.Union[str, build.CustomTarget, build.CustomTargetIndex, build.StaticLibrary, build.SharedLibrary]returnT.Iterable[str])r   r	  r
  r0   F)r  r-   rn   r0   r
  r-   )r  T.List[LIBS]rn   r0   r
  r  )r  "T.Union[T.List[str], T.List[LIBS]]rn   r0   r
  r  )	rd   rf   r   overloadr`   r_   rb   ra   rc   )ri   r   r  r   r   r   s   `  @@@rH   remove_dupsDependenciesHelper.remove_dupsA  s    !e	!	  	  ((AO ) 
H 
H	
J 
J	 	" DMM*DMM40T^^,T^^T2%$++&rG   )rc   rf   r^   r'   ra   rb   r_   r`   r]   rh   re   )r]   r   r'   r*   r^   zT.Dict[str, MetaData]r
  None)rn   r2   r
  r  )rp   r5   r
  r  )rQ   z^T.Union[build.CustomTarget, build.CustomTargetIndex, build.StaticLibrary, build.SharedLibrary]r
  r  )rp   z[T.Sequence[T.Union[str, build.StaticLibrary, build.SharedLibrary, dependencies.Dependency]]r
  r-   )rc   r-   r
  r  rO   )r   zT.List[build.IncludeDirs]r   r%   r
  r  )rn   r2   r   r0   r
  zT.Tuple[T.List[T.Union[str, build.SharedLibrary, build.StaticLibrary, build.CustomTarget, build.CustomTargetIndex]], T.List[str], T.List[str]]r  )r   z"T.Sequence[build.BuildTargetTypes]rf   zUT.Sequence[T.Union[build.StaticLibrary, build.CustomTarget, build.CustomTargetIndex]]r   zT.List[dependencies.Dependency]r   r0   r   r0   r
  r  )r   zIT.Union[build.CustomTarget, build.CustomTargetIndex, build.StaticLibrary]r   r0   r
  r  )r'   r*   re   zT.Optional[T.List[str]]r
  r  )r   r*   r
  zT.Tuple[str, T.Optional[str]])r   r*   r
  r*   )rp   r-   r
  r*   r
  r  )rA   rB   rC   rD   rj   rq   ru   rz   r}   r   rx   r   r   rm   r   r   r   r   r   r   r  rF   r@   rG   rH   rZ   rZ   Y   s    S
23""H61B@'B@15B@ `B@R +0? B? u? ;? 	?
 $(?
 59?4	f9!='rG   rZ   c                    ^  \ rS rSr% \" S5      rSrS\S'   0 rS\S'   S7U 4S jjr	S8S	 jr
      S9S
 jrS:S jrS;S jr  S<                           S=S jjr\" S\R"                  \R$                  4/S9\" S\R*                  " SS9\\" S\" \\5      / SS9\" S\SSS9\" S\\45      \" S \" \\5      / SS!S"9\" S#\\4S$ S%9\" S\\4S& S%9\" S\" \\5      / SS9\" S\S'S(9\" S\S'S)S9\" S\\45      \R*                  " S*S+S,9\R*                  " SS+S,9\R*                  " S-S\S.0S/9\R*                  " S0\S.0S19\\R+                  S2S39\ \ R+                  S4S395            S>S5 j5       5       r!S6r"U =r#$ )?PkgConfigModulei  	pkgconfigNz)T.Optional[mesonlib.EnvironmentVariables]devenvz!T.ClassVar[T.Dict[str, MetaData]]	_metadatac                p   > [         TU ]  5         U R                  R                  SU R                  05        g )Ngenerate)superrj   methodsr   r  )ri   	__class__s    rH   rj   PkgConfigModule.__init__  s.    
 	rG   c                j    U R                   b&  UR                   R                  U R                   5        g g rO   )r  r   )ri   bs     rH   postconf_hookPkgConfigModule.postconf_hook  s%    ;;"HHOODKK( #rG   c                   [        U[        R                  [        R                  45      (       al  [        R
                  R                  UR                  5       5      n[        R
                  R                  U5      S   nUR                  S5      (       a  USS  nU$ UR                  (       d  UR                  $ UR                  S:X  a/  UR                  R                  S5      (       a  UR                  SS  $ [        U[        R                  5      (       a  UR                  (       a  UR                  $ [        R                   " UR#                  UR                  SUR                  U5      5        UR                  $ )Nr   r       name_prefix)rP   r   r   r   r   r   basenameget_filenamesplitextr   name_prefix_setr'   prefixr   import_filenamer   warningformat)ri   lmsgpcfiler'  r'   s         rH   
_get_lnamePkgConfigModule._get_lname  s
   a%1153E3EFGGww''(89H77##H-a0Du%%ABxK  66M 88r>aff//6666!": a,,--!2C2C66M 	SZZqvvvFGvvrG   c                p    [        U[        5      (       a  UR                  5       nUR                  SS5      $ )zp
We cannot use quote_arg because it quotes with ' and " which does not
work with pkg-config and pkgconf at all.
r   z\ )rP   r   as_posixreplace)ri   values     rH   _escapePkgConfigModule._escape  s.     eX&&NN$E}}S%((rG   c                    [        U5      n[        U5      n UR                  U5      nSU-  R                  5       $ ! [         a    Un N!f = f)N	${prefix})r   relative_to
ValueErrorr5  )ri   r+  r   libdirs       rH   _make_relativePkgConfigModule._make_relative  sW    &!&!	''/F f$..00  	F	s   < A
AFr.   r'   r)   r+   r&   r,   r/   r>   r1   c                  ^ ^^	^^(^) TR                   R                  5       n[        5       n[        R                  " 5        Vs/ s H  nUR
                  PM     nnU(       d/  USS1-  nUR                  (       d  UR                  (       a  US1-  nSnSn[        5       n[        5       nX-    H  u  nnUU1-  nUU1-  nM     U HE  nSU S3m([        U(4S jU 5       5      (       d  M%  UU;   a  SnM/  U(       d  US	;  a  SnUSU1-  nMG     U(       a.  [        R                  " S
STR                  STR                  5        U(       a+  [        R                  " SSTR                  TR                  S9  T(       a  [        R                  R!                  TR                   R"                  S5      n[        R                  R%                  U5      (       d  [        R&                  " U5        [)        TR                   R+                  5       5      m)[)        TR                   R-                  5       5      nOTR                   R.                  n[)        [1        UR2                  R5                  [7        S5      5      5      5      m)U(       a  [)        U5      nUR9                  5       (       d  T)U-  nO8T)UR:                  ;  a(  [<        R>                  " SURA                  5        S35      e[)        S[        R                  RC                  T)U5      5      m)[        R                  R!                  UT	5      n[E        USSS9 nU H  nUUU-
  ;   d  M  US:X  a1  URG                  SRI                  T RK                  T)5      5      5        ME  [)        [1        UR2                  R5                  [7        U5      5      5      5      n URG                  SRI                  UT RK                  SU -  5      5      5        M     T(       a6  U(       d/  URG                  SRI                  T RK                  W5      5      5        U(       d  U(       a  URG                  S5        U H6  u  nnURG                  SRI                  UT RK                  U5      5      5        M8     U H  u  nnURG                  U SU S35        M     URG                  S5        URG                  SU S35        U(       a  URG                  SU S35        U(       a  URG                  SU S35        U(       a  URG                  SU S35        URG                  S U S35        URM                  URN                  5      n!U!(       a  URG                  S!U! S35        URM                  URP                  5      n!U!(       a  URG                  S"U! S35        U
(       a/  URG                  S#RI                  S$R!                  U
5      5      5        S,U	U)U UU4S% jjn"UR                  (       a?  URG                  S&RI                  S$R!                  U"" UR                  5      5      5      5        UR                  (       a?  URG                  S'RI                  S$R!                  U"" UR                  5      5      5      5        / n#T(       aZ  URR                   HI  n$S( H@  n%T RK                  [)        U%U$5      RA                  5       5      n&U#RU                  S)U& 35        MB     MK     ONU HH  n$U$S:X  a  U#RU                  S*5        M  U#RU                  T RK                  [)        S*5      U$-  5      5        MJ     U#URV                   V's/ s H  n'T RK                  U'5      PM     sn'-  n#U#(       a6  U(       d/  URG                  S+RI                  S$R!                  U#5      5      5        S S S 5        g s  snf s  sn'f ! , (       d  f       g = f)-Nr+  
includedirr>  Fz${}c              3  D   >#    U  H  oR                  T5      v   M     g 7frO   )r   )r   r   optvars     rH   r   ;PkgConfigModule._generate_pkgconfig_file.<locals>.<genexpr>  s     <A<<''s    T>   r>  r+  rB  z3pkgconfig.generate variable for builtin directoriesz0.62.0z3They will be automatically included when referencedz<pkgconfig.generate implicit variable for builtin directoriesr   zmeson-uninstalledzfPkgconfig prefix cannot be outside of the prefix when pkgconfig.relocatable=true. Pkgconfig prefix is .z${pcfiledir}wzutf-8)encodingz
prefix={}
z{}={}
r;  z
srcdir={}

r   zName: zDescription: zURL: z	License: z	Version: z
Requires: zRequires.private: zConflicts: {}
r   c           	   3    >#    Sn/ nU  GH3  n[        U[        5      (       a  Uv   M  T(       a9  [        R                  R	                  TR
                  R                  U5      5      nOUR                  5       nU(       a  US   OS nUSL a  M  [        U[        R                  5      (       aq  SUR                  ;   aa  [        U[        5      (       a<  SR                  T
R                  T
R                  T	U5      5      UR                  5      nOXSUR                  -  nOH[        U[        5      (       a1  SR                  T
R                  T
R                  T	U5      5      5      nOSnXb;  a  UR                  U5        Uv   T
R!                  X1T5      n[        U[        R                  5      (       aC  UR"                  (       a2  [$        R&                  " UR                  UR(                  S	UT5      5        [        U[        R*                  [        R,                  45      (       d  SUR                  ;  d  GM,  S
U 3v   GM6     g 7f)NzxLibrary target {0!r} has {1!r} set. Compilers may not find it from its '-l{2}' linker flag in the {3!r} pkg-config file.r   Fcsz-r{}/{}z-r${libdir}/%sz-L{}z-L${libdir}name_suffixr  )rP   r*   r   r   dirnamebackendget_target_filename_absget_custom_install_dirr   r   	compilersr.  r8  r?  filenamer   r2  name_suffix_setr   r-  r'   r   r   )rn   r0  Lflagsr/  r8   _iLflaglnamer1  r+  ri   r]   uninstalleds           rH   generate_libs_flagsEPkgConfigModule._generate_pkgconfig_file.<locals>.generate_libs_flags$  s    / A!!S)) '*,''//%--:_:_`a:b*cK!"!9!9!;B35"Q%4K&%/$%a):):;;@S)+s;;(1(8(8dFYFYZ`bmFn9oqrq{q{(|(81::(E)+s;;(.dll4CVCVW]_jCk6l(m(5 ."MM%0"'K $ ? &a):):;;@Q@Q LLAFFM5RX)YZ%a%*<*<e>U>U)VWW[_ghgrgr[r$&ug,.? s   H.I6Iz	Libs: {}
zLibs.private: {}
)r;  z	${srcdir}z-Iz-I${includedir}zCflags: {}
)rn   r  r
  r  ),environmentget_coredatard   r   keysr'   r_   ra   anyr   r   r   current_noder   r   r   r   	build_direxistsmkdirr   get_build_dirget_source_dirscratch_dirrR   optstoreget_value_forr   is_absoluteparentsr   r   r5  relpathopenwriter.  r8  r   r`   rb   rh   r   rc   )*ri   r]   depsr.   r'   r)   r+   r&   r,   r1  r/   r<   r>   rY  r1   pkgrootcoredatareferenced_varsr   optnamesimplicit_vars_warningredundant_vars_warningvarnames
varstringskvoptnameoutdirsrcdirpkgroot_fnameofiledirpathreqs_strrZ  rc   r   basedirr   frE  r+  s*   ``       `   `                          @@rH   _generate_pkgconfig_file(PkgConfigModule._generate_pkgconfig_file  sB    $$113%$7$<$<$>?$>qAFF$>? ,77O}}H:- %!&5U
3DAqOH1#J 4  G7)2&F<<<<h&-1*  72T#T04-#''::O   "(()^`h).)9)9;p).););= !!!"`bj"'"2"2U=O=OQ WW\\%"3"3"="=?RSF77>>&)) e//==?@Fe//>>@AF&&22Fgh&7&7&E&EiPXFY&Z[\F#G,++--%/H8#3#33"11 3IIQIZIZI\H]]^3` a a "."''//&(2STVV,%w/5#o88(*M$8$8f9M$NO"*783D3D3R3RS\]dSe3f+g"hI$4$4Wdll;Y`K`>a$bc $ 8M00f1EFG/D!!1I,,QQ@A "+1qc1#RL) ,KKKK&b)*mK=;<eC5O,iy34KK)G9B/0''6Hj
"56''7H0
"=>-44SXXi5HIJ$/ $/L }}L//9LT]]9[0\]^~~077ATUYUcUcAd8efg"$F11A#=#||HWa,@,I,I,KL4&k2 $> 2
 !ACx&78dll8<M3NQR3R&ST	 !
 <1t||A<<FhN11#((62BCDw 0/k @\ =s 0/s,   ^+6^5O>^5^0 A^50^55
_zpkgconfig.generate)optargsz0.43.0)sinceTrI   z0.54.0)rJ   r  r:   z0.42.0)rJ   rK   r  r(   c                    U S:X  a  S$ S $ Nr%  zmust not be an empty stringr@   r   s    rH   <lambda>PkgConfigModule.<lambda>h  s    deikdkC`CuquCurG   )	validatorc                    U S:X  a  S$ S $ r  r@   r  s    rH   r  r  i  s    `aeg`g?\?qmq?qrG   r%  )rJ   z1.9.0r?   z0.59.0)r'   r  r=   z0.56.0)r'   r  since_valuesz0.41.0)r  r  r4   )r'   r7   c                \  ^^^# TR                   nS nS nS nS nS/n	US   (       a  [        R                  " SSTR                  5        US   nUR                  nTR
                  S-   UR                  -   nUR                  5       n
U
(       a;  [        U
S   [        5      (       a#  [        R                  R                  U
S   S5      nOTS   c"  [        R                  " SSTR                  5        S	nTS
   c%  [        R                  " UR                  S
5      5      eTS   c%  [        R                  " UR                  S5      5      eTS   m#T#(       aq  / n	/ SQn[        U4S jU 5       5      (       a  [         R"                  " SU 35      e[        R                  R                  TR$                  R'                  5       S5      nTS   =(       d    U	nTS   b  TS   OUnTS
   b  TS
   OUn[        U[        5      (       d   S5       eTS   b  TS   OUnTS   b  TS   OUnTS   nTS   nTS   nTS   R)                  5       nU(       a  UR+                  SU5        [-        TUU R.                  5      nUR1                  U5        UR3                  TS   5        UR5                  TS   5        UR7                  TS   5        UR9                  TS   5        TS   nU(       af  TR$                  R:                  R<                  R>                  RA                  S5      nU(       a&  UR9                  URC                  U/ / SS.S 5      5        URE                  5         S1U#U4S jjnU" TS    5      nU" TS!   5      nUS"-   nTS#   =(       d    U=nnUc  [        R                  R                  [G        TR$                  R:                  RH                  RK                  [M        S$5      5      5      S5      n[        R                  R                  S%S5      nO TRU                  S&5      n U RW                  TUXUUUUUUUUST#U (       a  UOS S'9  [        RX                  " [         RZ                  " S(TR$                  R]                  5       U5      /UUS TR                  S)S*9n!U" TS+   5      nU" TS,   5      nUS--   nU RW                  TUXUUUUUUUUS(T#S.9  U(       a  UR_                  5       U R.                  ;  a3  [a        UUTRb                  5      U R.                  UR_                  5       '   O[d        Rf                  " S/[d        Rh                  " UR                  5      5        O|URj                   Hl  n"[        U"[        5      (       a  M  U"R_                  5       U R.                  ;  d  M:  [a        UUTRb                  5      U R.                  U"R_                  5       '   Mn     U Rl                  c=  [n        Rp                  " TR$                  [         Rr                  Rt                  S(S09U l6        [w        U!U!/5      $ )2NrG  r   z/pkgconfig.generate optional positional argumentr   z: r  r&   z+pkgconfig.generate implicit version keywordzopkgconfig.generate: if a library is not passed as a positional argument, the {!r} keyword argument is required.r'   r)   r1   )r3   r4   r7   r:   r.   c              3  .   >#    U  H
  nTU   v   M     g 7frO   r@   )r   rw  kwargss     rH   r   +PkgConfigModule.generate.<locals>.<genexpr>  s     3l6!9ls   z$Cannot combine dataonly with any of r.   r   r(   r+   r,   r/   r3   r4   r6   r7   r:   r9   r   F)versionsimport_dirsdebugunittestc                  > / SQn/ nU R                  5        Ho  u  p4U(       d+  [        R                  " SSTR                  TR                  S9  T(       d  X1;   a  [
        R                  " SU S35      eUR                  X445        Mq     U$ )N)r+  r>  rB  z$empty variable value in pkg.generatez1.4.0r   z
Variable "z" is reserved)itemsr   r   r   r`  r   r   r   )vardictreservedr<   r'   r7  r1   r]   s        rH   parse_variable_list5PkgConfigModule.generate.<locals>.parse_variable_list  s    9HI&}}))*PRY[`[k[kv{  wI  wI  JD$4"11JtfM2RSS  $/  / rG   r<   r>   z.pcr8   r>  z{libdir}zpkgconfig.relocatable)ro  Tdevel)install_tagr=   r?   z-uninstalled.pc)rY  r1   z'Already generated a pkg-config file for)rY  )r  r;   r
  T.List[T.Tuple[str, str]])<project_versionr   r   r   r'   project_namerQ  rP   r*   r   r   r   r   InvalidArgumentsr.  r_  r   r   r\  get_datadircopyinsertrZ   r  rq   ru   rz   r}   r   rp  rR  hostr   get_feature_argsr  rR   rg  rh  r   machines
is_freebsdis_haiku
get_optionr  DataFileget_scratch_dirr   rT   r`  r   r-  r   r_   r  r   get_envMachineChoiceHOSTr
   )$ri   r]   argsr  default_versiondefault_install_dirdefault_descriptiondefault_namemainlibdefault_subdirsr8   r0  blocked_varsr.   r&   r'   r(   r)   r+   r,   r/   r3   rn  	dversionscompilerr  r<   r>   r1  ro  pkgroot_namemrelocatableresr   r1   s$    ` `                               @rH   r  PkgConfigModule.generate_  s   6  ///3/3(,QU%7!!"SU]_d_o_op1gG"<<L"'"4"4t";gll"J!88:Kz+a.#>>&(ggll;q>;&O#i (%%&SU]_d_o_opC f~%,,SZZ-?@@m$,,,SZZ-FGG*% OlL3l333--0TUaTb.cdd"$'',,u/@/@/L/L/NP["\#6'-i'8'D&#/!'!;vf~$$$0j0$)/
);)G6*%T/5m/D/Pf]+ViUm#;'	
 ;',,.	Q(!%4>>B)$6"567&,-6"456~././	((11;;@@DDSIH 9 9!*2X]^`d!f g 			 		 ({(;<	1&9N2OPE!!'!6!M:MM,?ggll75+<+<+E+E+N+N+\+\]fgo]p+q#rt  AG77<<
K@L &&'>?%%eT7+s&-w	9&95(9Dg$ 	& 	P jj(--e.?.?.O.O.QSYZ[]dfrtxz  {K  {K  Y`  a'/F(GH	1&9Z2[\--%%eT7+s&-w	9&9tV^ 	& 	` ~~t~~53;dE$6$648w~~/0 F		RYR^R^H_`}}!#s++

DNN0R3; $(:(:4<DNN3::<0 % ;;,44U5F5FH^H^HcHcquvDK se,,rG   )r  r  )r   zbuild.Buildr
  r  )r/  z^T.Union[build.SharedLibrary, build.StaticLibrary, build.CustomTarget, build.CustomTargetIndex]r0  r*   r1  r*   r
  r*   )r7  zT.Union[str, PurePath]r
  r*   )r+  T.Union[PurePath, str]r   r  r
  r*   )FFN) r]   r   rn  rZ   r.   r-   r'   r*   r)   r*   r+   r*   r&   r*   r,   r*   r1  r*   r/   r-   r<   r  r>   r  rY  r0   r1   r0   ro  r%   r
  r  )r]   r   r  zFT.Tuple[T.Optional[T.Union[build.SharedLibrary, build.StaticLibrary]]]r  r#   r
  r
   )$rA   rB   rC   rD   r	   INFOr  rE   r  rj   r!  r2  r8  r?  r  r   r   r   r   r   r   evolver   r   r   listr*   r0   r   r   dictrL   rM   r  rF   __classcell__)r  s   @rH   r  r    s   k"D 9=F5<35I05)%(-02
)1" NS<@[E*5[E=@[E.1[E8;[EFI[E +.[E *-	[E :E	[E
 -F[E 7P[E /3[E GK[E +:[E FJ[Ez (E4G4GI\I\3]2^_##(3+0s;RQUV*dEB-#x1."3D#">TX`hi*sHo9uv&3/5qr).tS92tT%b))S"G<)c8_-!B(S!6hG!8X\^fWgh($9IJ#67"45+.D-]D-#D-(9D-/ `0D-rG   r  c                    [        5       $ rO   )r  )interps    rH   
initializer    s    rG   )rQ   objectr
  r*   )r  r!   r
  r  )B
__future__r   collectionsr   dataclassesr   pathlibr   r   typingr   r%  r   r	   r
   r   r   r   optionsr   r   r   dependencies.pkgconfigr   r   interpreter.type_checkingr   r   r   r   interpreterbaser   r   interpreterbase.decoratorsr   r   r   r   TYPE_CHECKINGtyping_extensionsr   r   r    interpreterr!   Unionr   BuildTargetTypesr*   ANY_DEPLibTypesLIBSr#   r  r   r   r   r   rL   rE   rM   rR   rT   rZ   r  r  r@   rG   rH   <module>r     s   # # !  	  ,       ) L d d ; c c??+)ggl--u/E/EsJKG775>>3&'D:Y :0 cldS,"9"9"00%2E2E"//1H1HJ K c  `  u~dS%"5"5u7J7JLLcLcde	uq 
   e' e'N	{-( {-|rG   