
    -Phc                       U 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
ddlmZ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mZ d	dlmZ d	dlmZ d	dlmZmZ d	dlmZmZmZmZ d	dlmZm Z  d	dl!m"Z"m#Z#m$Z$m%Z% e
j&        rTd dl'm(Z( ddlm)Z) d	dlm*Z* d	dl+m,Z, e
j-        ej.        ej/        e0f         Z1e
j-        ej2        e0f         Z3 G d de(          Z4 e#d e"e5e0ej.        ej6        ej7        ej8        ej9        f          g d          Z:de;d<    e#d e"e5e0ej6        ej7        ej.        f          g d          Z<d e;d!<   d0d&Z=e G d' d(                      Z> G d) d*          Z? G d+ d,e          Z@d1d/ZAdS )2    )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                      e Zd ZU ded<   ded<   ded<   ded<   ded<   ded	<   ded
<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   dS )
GenerateKwT.Optional[str]versionnamefilebasedescriptionstrurl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_variablesN)__name__
__module____qualname____annotations__     \/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/mesonbuild/modules/pkgconfig.pyr#   r#   "   s             !!!!$$$$""""****iiiiqqqq$$$$4444!!!!####////----999999rC   r#   r1   TdefaultlistifyzKwargInfo[T.List[T.Union[str, dependencies.Dependency, build.SharedLibrary, build.StaticLibrary, build.CustomTarget, build.CustomTargetIndex]]]_PKG_LIBRARIESr4   zbKwargInfo[T.List[T.Union[str, build.SharedLibrary, build.StaticLibrary, dependencies.Dependency]]]_PKG_REQUIRESobjobjectreturnr)   c                4    t          | t                    sJ | S N)
isinstancer)   )rJ   s    rD   _as_strrP   J   s    c3JrC   c                  <    e Zd ZU ded<   ded<   ded<   dZded<   d	S )
MetaDatar)   r'   display_namezmparser.BaseNodelocationFr.   warnedN)r>   r?   r@   rA   rU   rB   rC   rD   rR   rR   O   sF          MMMFrC   rR   c                      e Zd Zd:d	Zd;dZd;dZd<dZd<dZd=dZd>dZ	d?dZ
d@dAdZdBd#Z	 dCdDd,ZdEd/ZdFd2ZdGd5ZdHd7ZdId8ZdJd9ZdS )KDependenciesHelperstater   r&   r)   metadataT.Dict[str, MetaData]rL   Nonec                    || _         || _        || _        g | _        g | _        g | _        g | _        g | _        t          t                    | _
        g | _        t          j                    | _        d S rN   )rX   r&   rY   pub_libspub_reqs	priv_libs	priv_reqscflagsr   setversion_reqslink_whole_targetsr   
OrderedSetuninstalled_incdirs)selfrX   r&   rY   s       rD   __init__zDependenciesHelper.__init__Y   si    
	 &(%'')&(#%<G<L<Luw=E=P=R=R   rC   libsr0   c                    |                      |d          \  }}}|| j        z   | _        | xj        |z  c_        | xj        |z  c_        d S )NT)_process_libsr]   r^   ra   )rg   ri   p_libsreqsra   s        rD   add_pub_libszDependenciesHelper.add_pub_libsf   sP    #11$==f.vrC   c                x    |                      |d          \  }}}|| j        z   | _        | xj        |z  c_        d S )NF)rk   r_   r`   )rg   ri   rl   rm   _s        rD   add_priv_libsz DependenciesHelper.add_priv_libsl   s?    ,,T599a$.0$rC   rm   r3   c                L    | xj         |                     |          z  c_         d S rN   )r^   _process_reqsrg   rm   s     rD   add_pub_reqszDependenciesHelper.add_pub_reqsq   s$    ++D111rC   c                L    | xj         |                     |          z  c_         d S rN   )r`   rs   rt   s     rD   add_priv_reqsz DependenciesHelper.add_priv_reqst   s$    $,,T222rC   rJ   ^T.Union[build.CustomTarget, build.CustomTargetIndex, build.StaticLibrary, build.SharedLibrary]c           	     :   |                                 | j        v rd S | j        |                                          }|j        rd S t          j        dt          j        |j                  ddt          j        |j                  d|j                   d|_        d S )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.rT   T)	get_idrY   rU   r   deprecationboldr&   rS   rT   )rg   rJ   datas      rD   _check_generated_pc_deprecationz2DependenciesHelper._check_generated_pc_deprecationw   s    ::<<4=((F}SZZ\\*; 	FDIch$7$7 :% '/	$:K0L0LC #'-	1 	1 	1 	1 rC   [T.Sequence[T.Union[str, build.StaticLibrary, build.SharedLibrary, dependencies.Dependency]]r+   c                N   g }t          j        |          D ]}t          |t                    s t	          j        dd| j        j                   t          |t          j	        t          j
        t          j        t          j        f          rh|                                | j        v rM|                     |           |                    | j        |                                         j                   t          |t$                    rP|                                r:|                    |j                   |                     |j        |j                   At          |t                    rJ|                     |          \  }}|                    |           |                     |||gnd           t          |t0          j                  r|                                st          |t0          j                  r|j        dk    rt          j        d|          |S )z$Returns string names of requirementsz5pkgconfig.generate requirement from non-string object0.46.0Nthreadszjrequires argument not a string, library with pkgconfig-generated file or pkgconfig-dependency object, got )r   rG   rO   r)   r   
single_userX   
subprojectr   CustomTargetCustomTargetIndexSharedLibraryStaticLibraryr}   rY   r   appendr'   r   foundr&   add_version_reqsrc   split_version_reqr   
DependencyExternalDependencyMesonException)rg   rm   processed_reqsrJ   r&   version_reqs         rD   rs   z DependenciesHelper._process_reqs   s   &(#D)) 	^ 	^Cc3'' @%&]_gimisi~3!3U5LeNachcv wxx ^

5544S999%%dmCJJLL&A&JKKKKC!455 ^99;; F"))#(333))#(C4DEEEC%% ^$($:$:3$?$?!k%%d+++%%d[=T[MMZ^____C!899 ^#))++ ^C!@AA ^chR[F[F[- /]UX/] /] ^ ^ ^ rC   ra   c                J    | xj         t          j        |          z  c_         d S rN   )ra   r   stringlistify)rg   ra   s     rD   
add_cflagszDependenciesHelper.add_cflags   s!    x-f555rC   NincdirsT.List[build.IncludeDirs]subdirr$   c                   |D ]g}|                                 }|                                D ]<}t          j                            ||          }| j                            |           =h|| j                            |           d S d S rN   )
get_curdirget_incdirsospathjoinrf   add)rg   r   r   icurdirdr   s          rD   _add_uninstalled_incdirsz+DependenciesHelper._add_uninstalled_incdirs   s     	3 	3A\\^^F]]__ 3 3w||FA..(,,T22223 $((00000 rC   publicr.   T.Tuple[T.List[T.Union[str, build.SharedLibrary, build.StaticLibrary, build.CustomTarget, build.CustomTargetIndex]], T.List[str], T.List[str]]c           
     	   t          j        |          }g }g }g }|D ]}t          |t          j        t          j        t          j        t          j        f          rh|                                | j	        v rM| 
                    |           |                    | j	        |                                         j                   t          |t          j                  r|j        dk    rt          |t                     rP|                                r:|                    |j                   |                     |j        |j                   2t          |t          j                  r|                                r|j        rt          j        d          | j        r<t          | j        d         t          j                  r|                    d          }n|                    d          }||                                z  }||                                z  }|                     |j        |j        |j        |d           |                      |!                                           Ut          |t          j"                  rD|                                r.||                                z  }||                                z  }t          |t          j                  rX|j#        rQ|                    |           |                      |!                                |$                                           %t          |t          j        t          j        f          r|                    |           |                      |!                                |$                                           |                     |j%        |j&        |j'        t          |t          j                  o|           t          |t          j        t          j        f          r_|(                                st          j        d          tS          j*        dd	| j+        j,                   |                    |           bt          |tZ                    r|                    |           t          j        d
t]          |          j/         d          |||fS )Nvalgrindz1.pc file cannot refer to individual object files.r   T)	recursive)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   rG   rO   r   r   r   r   r   r}   rY   r   r   r'   r   r   r&   r   r   r   rc   InternalDependencyobjectsr   r]   get_as_staticget_as_sharedget_link_argsget_compile_args_add_lib_dependenciesr1   whole_librariesext_depsr   get_include_dirsr   shared_library_only
get_subdirlink_targetsrd   external_depsis_linkable_targetr   r   rX   r   r)   typer>   )rg   ri   r   processed_libsr   processed_cflagsrJ   s          rD   rk   z DependenciesHelper._process_libs   s    %% GI&((* 9	L 9	LC3!3U5LeNachcv wxx 8L

5544S999%%dmCJJLL&A&JKKKKC!@AA 4LchR\F\F\C!455 2L99;; F"))#(333))#(C4DEEEC!@AA .L99;; J{ k&56ijjj } @DM!4DeFY)Z)Z @!//$/??!//$/??"c&7&7&9&99N$(<(<(>(>>$..s}c>QSVS_ag  @D.  E  E  E11#2F2F2H2HIIIC!899 L99;; ?"c&7&7&9&99N$(<(<(>(>>$C!455 L#:Q L %%c***--c.B.B.D.DcnnFVFVWWWWC%"5u7J!KLL L%%c***--c.B.B.D.DcnnFVFVWWW **3+;+.+A+.+<+5c5;N+O+O+ZTZ\ \ \ \ C%"4e6M!NOO L--// m"12klll%&UW_aeakavwww%%c****C%% L%%c****-  /K$s))J\  /K  /K  /K  L  L  L~/???rC   Fr   "T.Sequence[build.BuildTargetTypes]rd   UT.Sequence[T.Union[build.StaticLibrary, build.CustomTarget, build.CustomTargetIndex]]r   T.List[dependencies.Dependency]r   c                   |r| j         n| j        }|D ]t}|                                rRt          |t          j        t          j        t          j        f          s
J d            |                     ||           h ||g           u|D ]}|                     ||           |r*|                     t          j
        d|                     d S  |t          j
        d|                     d S )Nfor mypyr0   )rn   rq   is_internalrO   r   r   r   r   _add_link_wholeTcast)rg   r   rd   r   r   r   add_libsts           rD   r   z(DependenciesHelper._add_lib_dependencies   s    )/F4$$D4F 		 		A }}  "!e&95;MuOf%ghhttjtttt$$Q////!# 	, 	,A  F++++  	?qv&7GGHHHHHHQV-}==>>>>>rC   r   IT.Union[build.CustomTarget, build.CustomTargetIndex, build.StaticLibrary]c                    | j                             |           t          |t          j                  r)|                     |j        |j         |j        |           d S d S rN   )rd   r   rO   r   BuildTargetr   r   r   )rg   r   r   s      rD   r   z"DependenciesHelper._add_link_whole  se     	&&q)))a*++ 	f&&q~q7KQ_^deeeee	f 	frC   rc   T.Optional[T.List[str]]c                N    |r"| j         |                             |           d S d S rN   )rc   update)rg   r&   rc   s      rD   r   z#DependenciesHelper.add_version_reqs  s8     	9 d#**<88888		9 	9rC   sT.Tuple[str, T.Optional[str]]c                    dD ]W}|                     |          }|dk    r:|d|                                         ||d                                          fc S X|d fS )Nz>=z<=z!=z===><r   )findstrip)rg   r   opposs       rD   r   z$DependenciesHelper.split_version_req   sj    9 	9 	9B&&**CQww3x~~''3448888 $wrC   vreqc                x    dD ]6}|                     |          r|dz   |t          |          d          z   c S 7|S )Nr    )
startswithlen)rg   r   r   s      rD   format_vreqzDependenciesHelper.format_vreq'  sR    9 	1 	1Br"" 1Cx$s2wwxx.00001rC   c                     g }|D ]E j                             d           }|r | fdt          |          D             z  }?|gz  }Fd                    |          S )Nc                F    g | ]}d z                        |          z   S )r   )r   ).0r   r&   rg   s     rD   
<listcomp>z2DependenciesHelper.format_reqs.<locals>.<listcomp>3  s0    YYY44#:(8(8(>(>>YYYrC   z, )rc   getsortedr   )rg   rm   resultvreqsr&   s   `   @rD   format_reqszDependenciesHelper.format_reqs.  s      	! 	!D%))$55E !YYYYY6RW==YYYY4& yy   rC   c                    t                      d fddfd j        D ]} |           t          j        ddd            }t          j        ddd            }ddfd} | j                   _         | j        d           _         | j                   _         | j        d           _        t                       | j                   _        d S )NxcT.Union[str, build.CustomTarget, build.CustomTargetIndex, build.StaticLibrary, build.SharedLibrary]rL   T.Iterable[str]c              3     K   t          | t                    r| V  d S |                                 j        v r&j        |                                          j        V  |                                 V  d S rN   )rO   r)   r}   rY   rS   )r   rg   s    rD   _idsz,DependenciesHelper.remove_dups.<locals>._ids>  ss      !S!! !88::..-

3@@@@hhjj     rC   r.   c                `    d} |           D ]}|v rd}	                     |           |S )NFT)r   )r   was_excludedr   r   excludes      rD   _add_excludez4DependenciesHelper.remove_dups.<locals>._add_excludeG  sF     LT!WW # #<<#'LLKKNNNNrC   Fxsr+   ri   c                    d S rN   rB   r   ri   s     rD   _fnz+DependenciesHelper.remove_dups.<locals>._fnX  s    EHSrC   T.List[LIBS]c                    d S rN   rB   r   s     rD   r   z+DependenciesHelper.remove_dups.<locals>._fn[  s    GJsrC   "T.Union[T.List[str], T.List[LIBS]]c                    g }| D ]Y}dg}|o.t          |t                    o|                    d           o||v}|s |          rD|                    |           Z|S )Nz-pthread)-lz-L)rO   r)   r   r   )r   ri   r   r   known_flagscannot_dedupr   s         rD   r   z+DependenciesHelper.remove_dups.<locals>._fn^  s    F 	! 	!  *l#  )
1c(:(:  )\222 )[(  $ Q a    MrC   T)r   r   rL   r   )r   r   rL   r.   F)r   r+   ri   r.   rL   r+   )r   r   ri   r.   rL   r   )r   r   ri   r.   rL   r   )	rb   rd   r   overloadr^   r]   r`   r_   ra   )rg   r   r   r   r   r   s   `  @@@rD   remove_dupszDependenciesHelper.remove_dups8  s@   !ee	! 	! 	! 	! 	! 	!	  	  	  	  	  	  	  ( 	 	ALOOOO 
HHHH 
H	
JJJJ 
J	 	 	 	 	 	 	" DM**DM400T^,,T^T22%%c$+&&rC   )rX   r   r&   r)   rY   rZ   rL   r[   )ri   r0   rL   r[   )rm   r3   rL   r[   )rJ   rx   rL   r[   )rm   r   rL   r+   )ra   r+   rL   r[   rN   )r   r   r   r$   rL   r[   )ri   r0   r   r.   rL   r   r   )r   r   rd   r   r   r   r   r.   r   r.   rL   r[   )r   r   r   r.   rL   r[   )r&   r)   rc   r   rL   r[   )r   r)   rL   r   )r   r)   rL   r)   )rm   r+   rL   r)   rL   r[   )r>   r?   r@   rh   rn   rq   ru   rw   r   rs   r   r   rk   r   r   r   r   r   r   r   rB   rC   rD   rW   rW   X   s       S S S S      
2 2 2 23 3 3 3   "   86 6 6 61 1 1 1 1B@ B@ B@ B@R +0? ? ? ? ?4	f 	f 	f 	f9 9 9 9      ! ! ! !=' =' =' =' =' ='rC   rW   c                  4    e Zd ZU  ed          ZdZded<   i Zded<   dQ fd	ZdRdZ	dSdZ
dTdZdUdZ	 	 dVdWd.Z ed/ej        ej        fg0           ed/ ej        d12          e ed% eee          g d34           ed+edd56           ed"eef           ed7 eee          g d3d89           ed:eefd; <           ed!eefd= <           ed eee          g d34           ed#ed>?           ed$eef           ej        d@dAB           ej        d(dAB           ej        dCd5edDiE           ej        dFedDiG          ee                    dHI          ee                    dJI                    dXdP                        Z  xZ!S )YPkgConfigModule	pkgconfigNz)T.Optional[mesonlib.EnvironmentVariables]devenvz!T.ClassVar[T.Dict[str, MetaData]]	_metadatarL   r[   c                    t                                                       | j                            d| j        i           d S )Ngenerate)superrh   methodsr   r  )rg   	__class__s    rD   rh   zPkgConfigModule.__init__  sI    
 	 	 	 	 	rC   bbuild.Buildc                V    | j         !|j                             | j                    d S d S rN   )r  r   )rg   r  s     rD   postconf_hookzPkgConfigModule.postconf_hook  s.    ;"HOODK((((( #"rC   l^T.Union[build.SharedLibrary, build.StaticLibrary, build.CustomTarget, build.CustomTargetIndex]msgr)   pcfilec                   t          |t          j        t          j        f          rwt          j                            |                                          }t          j                            |          d         }|	                    d          r
|dd          }|S |j
        s|j        S |j        dk    r)|j        	                    d          r|j        dd          S t          |t          j                  r|j        r|j        S t          j        |                    |j        d|j        |                     |j        S )Nr   lib    name_prefix)rO   r   r   r   r   r   basenameget_filenamesplitextr   name_prefix_setr&   prefixr   import_filenamer   warningformat)rg   r  r  r  r  r&   s         rD   
_get_lnamezPkgConfigModule._get_lname  s   a%153EFGG 	w''(8(899H7##H--a0Du%%  ABBxK  	6M 8r>>af//66>6!"": a,-- 	!2C 	6M 	SZZqvvFFGGGvrC   valueT.Union[str, PurePath]c                    t          |t                    r|                                }|                    dd          S )z
        We cannot use quote_arg because it quotes with ' and " which does not
        work with pkg-config and pkgconf at all.
        r   z\ )rO   r   as_posixreplace)rg   r"  s     rD   _escapezPkgConfigModule._escape  s9     eX&& 	%NN$$E}}S%(((rC   r  T.Union[PurePath, str]r   c                    t          |          }t          |          }	 |                    |          }n# t          $ r |}Y nw xY wd|z                                  S )N	${prefix})r   relative_to
ValueErrorr%  )rg   r  r   libdirs       rD   _make_relativezPkgConfigModule._make_relative  ss    &!!&!!	''//FF 	 	 	FFF	 f$..000s   6 AAFrX   r   depsrW   r,   r+   r&   r(   r*   r%   r-   r:   T.List[T.Tuple[str, str]]r<   uninstalledr.   r/   pkgrootr$   c                   %& j                                         }t                      }d t          j                    D             }|s|ddhz  }|j        s|j        r|dhz  }d}d}t                      }t                      }|
|z   D ]\  }}||hz  }||hz  }|D ]9}d| d%t          %fd|D                       r||v rd	}*|s|d
vrd	}|d|hz  }:|r"t          j	        ddj
        dj                   |r"t          j	        ddj
        j                   rt          j                            j         j        d          }t          j                            |          st          j        |           t'          j                                                   &t'          j                                                   }nىj         j        }t'          t/          |j                            t5          d                                        &|rt'          |          }|                                s&|z  }n3&|j        vr*t;          j        d|                                 d          t'          dt          j                             &|                    &t          j                            |          }tC          |dd          5 }|D ]}|||z
  v r|dk    r<|"                    d#                     $                    &                               Kt'          t/          |j                            t5          |                                        }|"                    d#                    | $                    d|z                                 ̉r=|s;|"                    d#                     $                    |                               |
s|r|"                    d           |
D ]A\  }}|"                    d#                    | $                    |                               B|D ] \  }}|"                    | d| d           !|"                    d           |"                    d| d           tK          |          dk    r|"                    d| d           tK          |          dk    r|"                    d | d           |"                    d!| d           |&                    |j'                  }tK          |          dk    r|"                    d"| d           |&                    |j(                  }tK          |          dk    r|"                    d#| d           tK          |	          dk    r;|"                    d$#                    d%                    |	                               d2& fd*} tK          |j                  dk    rI|"                    d+#                    d%                     | |j                                                 tK          |j                  dk    rI|"                    d,#                    d%                     | |j                                                 g }!r]|j)        D ]T}"d-D ]O}# $                    t'          |#|"                                                    }$|!*                    d.|$            PUnY|D ]V}"|"dk    r|!*                    d/           |!*                     $                    t'          d/          |"z                       W|! fd0|j+        D             z  }!|!r=|s;|"                    d1#                    d%                    |!                               d d d            d S # 1 swxY w Y   d S )3Nc                    g | ]	}|j         
S rB   r&   )r   r   s     rD   r   z<PkgConfigModule._generate_pkgconfig_file.<locals>.<listcomp>  s    ???qAF???rC   r  
includedirr-  Fz${}c              3  B   K   | ]}|                               V  d S rN   )r   )r   r   optvars     rD   	<genexpr>z;PkgConfigModule._generate_pkgconfig_file.<locals>.<genexpr>  s/      <<A1<<''<<<<<<rC   T>   r-  r  r6  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: r   zDescription: zURL: z	Version: z
Requires: zRequires.private: zConflicts: {}
r   ri   r   rL   r   c           	   3  <  K   d}g }| D ]}t          |t                    r|V  r8t          j                            j                            |                    }n |                                }|r|d         nd }|du r|t          |t          j	                  rld|j
        v rct          |t                    rCd                    
                    
                    	|                    |j                  }n_d|j        z  }nTt          |t                    r=d                    
                    
                    	|                              }nd}||vr|                    |           |V  
                    ||          }t          |t          j	                  r6|j        r/t%          j        |                    |j        d	|                     t          |t          j        t          j        f          s	d|j
        vrd
| V  d S )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   )rO   r)   r   r   dirnamebackendget_target_filename_absget_custom_install_dirr   r   	compilersr   r'  r.  filenamer   r!  name_suffix_setr   r  r&   r   r   )ri   r  Lflagsr  r6   _iLflaglnamer  r  rg   rX   r1  s           rD   generate_libs_flagszEPkgConfigModule._generate_pkgconfig_file.<locals>.generate_libs_flags  s2     /  / /A!!S)) / ' @*,'//%-:_:_`a:b:b*c*cKK!"!9!9!;!;B35*?"Q%%4K&%//$%a):;; 	6@S@S)+s;; F(1(8(8dFYFYZ`bmFnFn9o9oqrq{(|(|(81:(E)+s;; 6(.dll4CVCVW]_jCkCk6l6l(m(m(5 .."MM%000"'KKK $3 ? ? &a):;; [@Q [ LAFM5RX)Y)YZZZ%a%*<e>U)VWW /[_ghgr[r[r".u,,...?/ /rC   z	Libs: {}
zLibs.private: {}
)r*  z	${srcdir}z-Iz-I${includedir}c                :    g | ]}                     |          S rB   )r'  )r   frg   s     rD   r   z<PkgConfigModule._generate_pkgconfig_file.<locals>.<listcomp>O  s#    <<<1t||A<<<rC   zCflags: {}
)ri   r   rL   r   ),environmentget_coredatarb   r   keysr]   r_   anyr   r   r   current_noder   r   r   r   	build_direxistsmkdirr   get_build_dirget_source_dirscratch_dirrP   optstoreget_value_forr   is_absoluteparentsr   r   r%  relpathopenwriter   r'  r   r   r^   r`   rf   r   ra   )'rg   rX   r/  r,   r&   r(   r*   r%   r  r-   r:   r<   r1  r/   r2  coredatareferenced_varsoptnamesimplicit_vars_warningredundant_vars_warningvarnames
varstringskvoptnameoutdirsrcdirpkgroot_fnameofiledirpathreqs_strrM  ra   r   basedirr   r9  r  s'   ``      `   `                        @@rD   _generate_pkgconfig_filez(PkgConfigModule._generate_pkgconfig_file  s    $1133%%??$7$<$>$>??? 	. ,77O} . .H:- %!&55UU
 33 	 	DAqOH1#JJ 		; 		;G&7&&&F<<<<<<<<< ;h&&-1**   572T#T#T04-#''::O! 	=()^`h).)9;p).);= = = ! 	Q!"`bj"'"2U=OQ Q Q Q  	UW\\%"3"=?RSSF7>>&)) !   e/==??@@Fe/>>@@AAFF&2Fgh&7&E&EiPXFYFY&Z&Z[[\\F U#G,,++-- a%/HH8#333"1 3`IQIZIZI\I\3` 3` 3` a a a "."'//&(2S2STTVV,,%w/// Y	E5# d do888(**M$8$8f9M9M$N$NOOOO"*783D3R3RS\]dSeSe3f3f+g+g"h"hI$4$4Wdll;Y`K`>a>a$b$bccc H8 HM00f1E1EFFGGG "/ "D!!!! B B1I,,QQ@@AAAA+ * *1qLL1LLL))))KKKK))))***;!##;K;;;<<<3xx!||OCOOO,,,KK/G///000''66H8}}q  5555666''77H8}}q  ====>>>9~~!!-44SXXi5H5HIIJJJ$/ $/ $/ $/ $/ $/ $/ $/ $/ $/L 4=!!A%%L//9L9LT]9[9[0\0\]]^^^4>""Q&&077ATATUYUcAdAd8e8effggg"$F 
U1 3 3A#= 3 3#||HWa,@,@,I,I,K,KLLk4kk222233
 ! U UACxx&78888dll8<M3N3NQR3R&S&STTTT<<<<<<<<F Eh EN11#((62B2BCCDDDsY	E Y	E Y	E Y	E Y	E Y	E Y	E Y	E Y	E Y	E Y	E Y	E Y	E Y	E Y	E Y	E Y	E Y	Es   S"_		__zpkgconfig.generate)optargsz0.43.0)sinceTrE   z0.54.0)rF   rv  r8   z0.42.0)rF   rG   rv  r'   c                    | dk    rdnd S Nr  zmust not be an empty stringrB   r   s    rD   <lambda>zPkgConfigModule.<lambda>\  s    deikdkdkC`C`qu rC   )	validatorc                    | dk    rdnd S rx  rB   ry  s    rD   rz  zPkgConfigModule.<lambda>]  s    `aeg`g`g?\?\mq rC   r  )rF   r=   z0.59.0)r&   rv  r;   z0.56.0)r&   rv  since_valuesz0.41.0)rv  r}  r2   r5  r5   argsFT.Tuple[T.Optional[T.Union[build.SharedLibrary, build.StaticLibrary]]]kwargsr#   r
   c                  " j         }d }d }d }d }dg}	|d         rt          j        ddj                   |d         }|j        }j        dz   |j        z   }|                                }
|
rAt          |
d         t                    r&t          j
                            |
d         d          }nd         t          j        ddj                   d	}d
         't          j        |                    d
                    d         't          j        |                    d                    d         ""rog }	g d}t          fd|D                       rt!          j        d|           t          j
                            j                                        d          }d         p|	}d         d         n|}d
         d
         n|}t          |t                    s
J d            d         d         n|}d         d         n|}d         }d         }d                                         }|r|                    d|           t-          || j                  }|                    |           |                    d                    |                    d                    |                    d                    |                    d                    d         }|rYj        j        j        j                             d          }|r.|                    |!                    |g g ddd                      |"                                 d9"fd"} |d#                   } |d$                   }|d%z   }d&         p|x}}|j        j#        j        }|$                                rt          j
                            tK          j        j        j&        '                    tQ          d'                              d(d          }t          j
                            d)d(d          }n|)                                rt          j
                            tK          j        j        j&        '                    tQ          d'                              d*d+d          }t          j
                            d)d*d+d          }n|t          j
                            tK          j        j        j&        '                    tQ          d,                              d          }t          j
                            d-d          }*                    d.          }| +                    ||||||||||d"|r|nd /           t          j,        t!          j-        d0j        .                                |          g||d j        d12          }  |d3                   } |d4                   }|d5z   }| +                    ||||||||||d0"6           |ry|/                                | j        vr1ta          ||j1                  | j        |/                                <   nte          j3        d7te          j4        |j                             nj|j5        D ]b}!t          |!t                    sK|!/                                | j        vr0ta          ||j1                  | j        |!/                                <   c| j6        0to          j8        j        t           j9        j:        d08          | _6        tw          | | g          S ):Nr;  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(   r/   )r1   r2   r5   r8   r,   c              3  (   K   | ]}|         V  d S rN   rB   )r   ri  r  s     rD   r:  z+PkgConfigModule.generate.<locals>.<genexpr>  s'      336!9333333rC   z$Cannot combine dataonly with any of r,   r   r'   r*   r-   r1   r2   r4   r5   r8   r7   r   F)versionsimport_dirsdebugunittestvardictr9   rL   r0  c                    g d}g }|                                  D ]^\  }}|s"t          j        ddj        j                   s||v rt          j        d| d          |                    ||f           _|S )N)r  r-  r6  z$empty variable value in pkg.generatez1.4.0r|   z
Variable "z" is reserved)itemsr   r   r   rT  r   r   r   )r  reservedr:   r&   r"  r/   rX   s        rD   parse_variable_listz5PkgConfigModule.generate.<locals>.parse_variable_list  s    999HI&}} 0 0e J)*PRY[`[kv{  wI  J  J  J  J TDH$4$4"12Rt2R2R2RSSS  $////rC   r:   r<   z.pcr6   r  libdataz{prefix}developr  r-  z{libdir}zpkgconfig.relocatable)r2  Tdevel)install_tagr;   r=   z-uninstalled.pc)r1  r/   z'Already generated a pkg-config file for)r1  )r  r9   rL   r0  )<project_versionr   r   r   r&   project_namerE  rO   r)   r   r   r   r   InvalidArgumentsr   rS  r   r   rP  get_datadircopyinsertrW   r  rn   rq   ru   rw   r   rb  rF  hostr   get_feature_argsr   machines
is_freebsdrP   r[  r\  r   is_haiku
get_optionrt  DataFileget_scratch_dirr}   rR   rT  r   r  r   r]   r  r   get_envMachineChoiceHOSTr
   )#rg   rX   r~  r  default_versiondefault_install_dirdefault_descriptiondefault_namemainlibdefault_subdirsr6   r  blocked_varsr,   r%   r&   r'   r(   r*   r-   r1   r/  	dversionscompilerr  r:   r<   r  r2  pkgroot_namemrelocatableresr  r/   s#    ` `                              @rD   r  zPkgConfigModule.generateS  s   4  //3/3(,QU%7 	H!"SU]_d_oppp1gG"<L"'"4t";gl"J!88::K Pz+a.#>> P&(gll;q>;&O&O#i (%&SU]_d_opppC f~%,SZZ-?-?@@@m$,,SZZ-F-FGGG*% 	] OlllL3333l33333 e-.cUa.c.cddd"$',,u/@/L/L/N/NP["\"\#6'-i'8'D&##/!'!;vf~~$$$00j000)/
);)G6*%%T/5m/D/Pf]++ViUm;'	
 ;',,..	 	)Q(((!%4>BB)$$$6"56777&,---6"45666~.///./	 	g(1;@DDSIIH g 9 9!*2X]^^`d!f !f g g g 			 		 		 		 		 		 		 ('{(;<<	11&9N2OPPE!!'!6!M:MM,?!*/A||~~ E',,wu/@/I/R/`/`ajksatat/u/u'v'v  yB  DO  P  P!w||J	;OO E',,wu/@/I/R/`/`ajksatat/u/u'v'v  yB  DI  KV  W  W!w||J	5+VV',,wu/@/I/R/`/`ajksatat/u/u'v'v  yD  E  E!w||JDD&&'>??%%eT7D+s&-vy)&95(9D.Ngg$ 	& 	P 	P 	P j(-e.?.O.O.Q.QSYZZ[]dfrtxz  {K  Y`  a  a  a''/F(GHH	11&9Z2[\\--%%eT7D+s&-vy)&9tV^ 	& 	` 	` 	`  
	<~~t~553;dE$648 48w~~//00 F	RYR^H_H_````} < <!#s++ <

DN0R0R3; $(:4< 4<DN3::<<0;,4U5FH^HcquvvvDK se,,,rC   r  )r  r  rL   r[   )r  r  r  r)   r  r)   rL   r)   )r"  r#  rL   r)   )r  r(  r   r(  rL   r)   )FFN)rX   r   r/  rW   r,   r+   r&   r)   r(   r)   r*   r)   r%   r)   r  r)   r-   r+   r:   r0  r<   r0  r1  r.   r/   r.   r2  r$   rL   r[   )rX   r   r~  r  r  r#   rL   r
   )"r>   r?   r@   r	   INFOr  rA   r  rh   r  r!  r'  r.  rt  r   r   r   r   r   r   evolver   r   r   listr)   r.   r   r   dictrH   rI   r  __classcell__)r  s   @rD   r  r  w  s        :k""D 9=F<<<<35I5555     ) ) ) )   2
) 
) 
) 
)1 1 1 1  NS<@XE XE XE XE XEt ^(E4GI\3]2^___\##(333	+00s;;RQUVVV	*dEBBB	-#x11	."3"3D#">">TX`hiii	*sHo9u9uvvv	&3/5q5qrrr	)..tS992tTTT	%b)))	)c8_--!B(SSS!6hGGG!8X\^fWghhh($9IJJJ#677"455) ,@- @- @--  `_.@- @- @- @- @-rC   r  interpr!   c                    t                      S rN   )r  )r  s    rD   
initializer    s    rC   )rJ   rK   rL   r)   )r  r!   rL   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   rH   rA   rI   rP   rR   rW   r  r  rB   rC   rD   <module>r     s   # " " " " " " # # # # # # ! ! ! ! ! !       				     , , , , , , , ,                                     ) ) ) ) ) ) L L L L L L L L d d d d d d d d d d d d ; ; ; ; ; ; ; ; c c c c c c c c c c c c? :++++++))))))gl-u/EsJKG75>3&'D: : : : :Y : : :. cl  cldS,"9"0%2E"/1HJ K K c c c     u~t}dS%"5u7JLLcdee	u u u       
        ]' ]' ]' ]' ]' ]' ]' ]'~s- s- s- s- s-( s- s- s-l     rC   