o
    uJAfB                  
   @  s  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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%rd 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.e/f Z0e
j,ej1e/f Z2G dd de'Z3e"de!e4e/ej-ej5ej6ej7ej8fg ddZ9de:d< e"de!e4e/ej5ej6ej-fg ddZ;de:d < d1d%d&Z<eG d'd( d(Z=G d)d* d*Z>G d+d, d,eZ?d2d/d0Z@dS )3    )annotations)defaultdict)	dataclass)PurePathN   )NewExtensionModule
ModuleInfo)ModuleReturnValue   )build)dependencies)mesonlib)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                   @  s   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__ r?   r?   A/usr/lib/python3.10/site-packages/mesonbuild/modules/pkgconfig.pyr    ,   s(   
 r    r.   TdefaultlistifyzKwargInfo[T.List[T.Union[str, dependencies.Dependency, build.SharedLibrary, build.StaticLibrary, build.CustomTarget, build.CustomTargetIndex]]]_PKG_LIBRARIESr1   zbKwargInfo[T.List[T.Union[str, build.SharedLibrary, build.StaticLibrary, dependencies.Dependency]]]_PKG_REQUIRESobjobjectreturnr&   c                 C  s   t | tsJ | S N)
isinstancer&   )rF   r?   r?   r@   _as_strT   s   rK   c                   @  s2   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=   r>   rO   r?   r?   r?   r@   rL   Y   s
   
 rL   c                   @  s   e Zd ZdKd	d
ZdLddZdLddZdMddZdMddZdNddZdOddZ	dPd d!Z
dQdRd'd(ZdSd,d-Z	.dTdUd6d7ZdVd:d;ZdWd>d?ZdXdBdCZdYdEdFZdZdGdHZd[dIdJZd"S )\DependenciesHelperstater   r#   r&   metadataT.Dict[str, MetaData]rH   Nonec                 C  sN   || _ || _|| _g | _g | _g | _g | _g | _tt	| _
g | _t | _d S rI   )rQ   r#   rR   pub_libspub_reqs	priv_libs	priv_reqscflagsr   setversion_reqslink_whole_targetsr   
OrderedSetuninstalled_incdirs)selfrQ   r#   rR   r?   r?   r@   __init__c   s   
zDependenciesHelper.__init__libsr-   c                 C  s>   |  |d\}}}|| j | _|  j|7  _|  j|7  _d S )NT)_process_libsrU   rV   rY   )r_   ra   p_libsreqsrY   r?   r?   r@   add_pub_libsp   s   zDependenciesHelper.add_pub_libsc                 C  s0   |  |d\}}}|| j | _|  j|7  _d S )NF)rb   rW   rX   )r_   ra   rc   rd   _r?   r?   r@   add_priv_libsv   s   z DependenciesHelper.add_priv_libsrd   r0   c                 C     |  j | |7  _ d S rI   )rV   _process_reqsr_   rd   r?   r?   r@   add_pub_reqs{      zDependenciesHelper.add_pub_reqsc                 C  rh   rI   )rX   ri   rj   r?   r?   r@   add_priv_reqs~   rl   z DependenciesHelper.add_priv_reqsrF   ^T.Union[build.CustomTarget, build.CustomTargetIndex, build.StaticLibrary, build.SharedLibrary]c              	   C  s^   |  | jv r	d S | j|   }|jrd S tjdt|jddt|jd|jd 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 a future version of Meson. Please report the issue if this warning cannot be avoided in your case.rN   T)	get_idrR   rO   r   deprecationboldr#   rM   rN   )r_   rF   datar?   r?   r@   _check_generated_pc_deprecation   s   
	z2DependenciesHelper._check_generated_pc_deprecation[T.Sequence[T.Union[str, build.StaticLibrary, build.SharedLibrary, dependencies.Dependency]]r(   c                 C  s(  g }t |D ]}t|tstdd| jj t|tj	tj
tjtjfr<| | jv r<| | || j|  j qt|trT| rS||j | |j|j qt|trs| |\}}|| | ||duro|gnd qt|tjr~| s~qt|tjr|jdkrqt 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   rC   rJ   r&   r   
single_userQ   
subprojectr   CustomTargetCustomTargetIndexSharedLibraryStaticLibraryrr   rR   rv   appendr$   r   foundr#   add_version_reqsr[   split_version_reqr   
DependencyExternalDependencyMesonException)r_   rd   processed_reqsrF   r#   Zversion_reqr?   r?   r@   ri      s2   




z DependenciesHelper._process_reqsrY   c                 C  s   |  j t|7  _ d S rI   )rY   r   stringlistify)r_   rY   r?   r?   r@   
add_cflags   rl   zDependenciesHelper.add_cflagsNincdirsT.List[build.IncludeDirs]subdirr!   c                 C  sV   |D ]}|  }| D ]}tj||}| j| qq|d ur)| j| d S d S rI   )
get_curdirget_incdirsospathjoinr^   add)r_   r   r   icurdirdr   r?   r?   r@   _add_uninstalled_incdirs   s   z+DependenciesHelper._add_uninstalled_incdirspublicr+   T.Tuple[T.List[T.Union[str, build.SharedLibrary, build.StaticLibrary, build.CustomTarget, build.CustomTargetIndex]], T.List[str], T.List[str]]c              	   C  sJ  t |}g }g }g }|D ]}t|tjtjtjtjfr5| | j	v r5| 
| || j	|  j qt|tjrA|jdkrAqt|trY| rX||j | |j|j qt|tjr| r|jrkt d|| 7 }|| 7 }| j|j|j|j|dd | |  qt|tjr| r|| 7 }|| 7 }qt|tjr|j r|| | | |!  qt|tjtjfr|| | | |!  | |j"|j#|j$t|tjo| qt|tjtjfr|% st dt&'dd| j(j) || qt|t*r|| qt dt+|j, d	|||fS )
Nvalgrindz1.pc file cannot refer to individual object files.T)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.)-r   rC   rJ   r   r|   r}   r~   r   rr   rR   rv   r   r$   r   r   r#   r   r   r   r[   InternalDependencyobjectsr   get_link_argsget_compile_args_add_lib_dependenciesr.   whole_librariesext_depsr   get_include_dirsr   shared_library_only
get_subdirlink_targetsr\   external_depsis_linkable_targetr   rz   rQ   r{   r&   typer;   )r_   ra   r   Zprocessed_libsr   Zprocessed_cflagsrF   r?   r?   r@   rb      sd   








z DependenciesHelper._process_libsFr   "T.Sequence[build.BuildTargetTypes]r\   UT.Sequence[T.Union[build.StaticLibrary, build.CustomTarget, build.CustomTargetIndex]]r   T.List[dependencies.Dependency]r   c                 C  s   |r| j n| j}|D ]!}| r&t|tjtjtjfsJ d| || q
||g q
|D ]}| || q.|rD| t	
d| d S |t	
d| d S )Nfor mypyr-   )re   rg   is_internalrJ   r   r   r|   r}   _add_link_wholeTcast)r_   r   r\   r   r   r   Zadd_libstr?   r?   r@   r      s   z(DependenciesHelper._add_lib_dependenciesr   IT.Union[build.CustomTarget, build.CustomTargetIndex, build.StaticLibrary]c                 C  s6   | j | t|tjr| |j|j |j| d S d S rI   )r\   r   rJ   r   BuildTargetr   r   r   )r_   r   r   r?   r?   r@   r     s   z"DependenciesHelper._add_link_wholer[   T.Optional[T.List[str]]c                 C  s   |r| j | | d S d S rI   )r[   update)r_   r#   r[   r?   r?   r@   r     s   z#DependenciesHelper.add_version_reqssT.Tuple[str, T.Optional[str]]c                 C  sH   dD ]}| |}|dkr|d|  ||d   f  S q|d fS )Nz>=z<=z!=z===><r   )findstrip)r_   r   opposr?   r?   r@   r   #  s   
$z$DependenciesHelper.split_version_reqvreqc                 C  s4   dD ]}| |r|d |t|d     S q|S )Nr    )
startswithlen)r_   r   r   r?   r?   r@   format_vreq*  s
   
zDependenciesHelper.format_vreqc                   sR   g }|D ] j  d }|r| fddt|D 7 }q| g7 }qd|S )Nc                   s   g | ]} d   | qS )r   )r   ).0r   r#   r_   r?   r@   
<listcomp>6  s    z2DependenciesHelper.format_reqs.<locals>.<listcomp>z, )r[   getsortedr   )r_   rd   resultZvreqsr?   r   r@   format_reqs1  s   
zDependenciesHelper.format_reqsc                   s   t  dfdddfdd	 jD ]} | qtjdddd}tjdddd}dd fdd}|j_|jd_|j_|jd_t  |j_d S )NxcT.Union[str, build.CustomTarget, build.CustomTargetIndex, build.StaticLibrary, build.SharedLibrary]rH   T.Iterable[str]c                 3  sD    t | tr| V  d S |   jv r j|   jV  |  V  d S rI   )rJ   r&   rr   rR   rM   r   r_   r?   r@   _idsA  s   

z,DependenciesHelper.remove_dups.<locals>._idsr+   c                   s.   d} | D ]}|v rd}q | q|S )NFT)r   )r   Zwas_excludedr   )r   excluder?   r@   _add_excludeJ  s   z4DependenciesHelper.remove_dups.<locals>._add_excludeFxsr(   ra   c                 S     d S rI   r?   r   ra   r?   r?   r@   _fn[     z+DependenciesHelper.remove_dups.<locals>._fnT.List[LIBS]c                 S  r   rI   r?   r   r?   r?   r@   r   ^  r   "T.Union[T.List[str], T.List[LIBS]]c                   sR   g }| D ]"}dg}|ot |to|d o||v}|s! |r!q|| q|S )Nz-pthread)-lz-L)rJ   r&   r   r   )r   ra   r   r   Zknown_flagsZcannot_dedup)r   r?   r@   r   a  s   
T)r   r   rH   r   )r   r   rH   r+   F)r   r(   ra   r+   rH   r(   )r   r   ra   r+   rH   r   )r   r   ra   r+   rH   r   )	rZ   r\   r   overloadrV   rU   rX   rW   rY   )r_   r   r   r?   )r   r   r   r_   r@   remove_dups;  s    	


zDependenciesHelper.remove_dups)rQ   r   r#   r&   rR   rS   rH   rT   )ra   r-   rH   rT   )rd   r0   rH   rT   )rF   rn   rH   rT   )rd   rw   rH   r(   )rY   r(   rH   rT   rI   )r   r   r   r!   rH   rT   )ra   r-   r   r+   rH   r   r   )r   r   r\   r   r   r   r   r+   r   r+   rH   rT   )r   r   r   r+   rH   rT   )r#   r&   r[   r   rH   rT   )r   r&   rH   r   )r   r&   rH   r&   )rd   r(   rH   r&   rH   rT   )r;   r<   r=   r`   re   rg   rk   rm   rv   ri   r   r   rb   r   r   r   r   r   r   r   r?   r?   r?   r@   rP   b   s&    








	B





rP   c                      s  e Zd ZU edZdZded< i Zded< dY fd	d
ZdZddZ	d[ddZ
d\ddZd]ddZ		d^d_d3d4Zed5ejejfgd6ed5ejd7d8eed*eeeg d9d:ed0edd;d<ed'eefed=eeeg d9d>d?ed@eefdAdB dCed&eefdDdB dCed$eeeg d9d:ed(edEdFed)eefejdGdHdIejd-dHdIejdJd;edKidLejdMedKidNeejdOdPeejdQdPd`dWdXZ   Z!S )aPkgConfigModule	pkgconfigNz)T.Optional[mesonlib.EnvironmentVariables]devenvz!T.ClassVar[T.Dict[str, MetaData]]	_metadatarH   rT   c                   s    t    | jd| ji d S )Ngenerate)superr`   methodsr   r   r   	__class__r?   r@   r`     s   

zPkgConfigModule.__init__bbuild.Buildc                 C  s    | j d ur|j | j  d S d S rI   )r   r   )r_   r   r?   r?   r@   postconf_hook  s   
zPkgConfigModule.postconf_hookl^T.Union[build.SharedLibrary, build.StaticLibrary, build.CustomTarget, build.CustomTargetIndex]msgr&   pcfilec                 C  s   t |tjtjfr&t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rJ|jrJ|jS t||jd|j| |jS )Nr   lib    name_prefix)rJ   r   r}   r|   r   r   basenameget_filenamesplitextr   name_prefix_setr#   prefixr~   import_filenamer   warningformat)r_   r   r   r   r   r#   r?   r?   r@   
_get_lname  s   
zPkgConfigModule._get_lnamevalueT.Union[str, PurePath]c                 C  s   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\ )rJ   r   as_posixreplace)r_   r   r?   r?   r@   _escape  s   
zPkgConfigModule._escaper   T.Union[PurePath, str]r   c                 C  sB   t |}t |}z||}W n ty   |}Y nw d|  S )N	${prefix})r   relative_to
ValueErrorr   )r_   r   r   libdirr?   r?   r@   _make_relative  s   zPkgConfigModule._make_relativeFrQ   r   depsrP   r)   r(   r#   r%   r'   r"   r*   r7   T.List[T.Tuple[str, str]]r9   uninstalledr+   r,   pkgrootr!   c           %        s:  j  }t }dd t D }|s$|ddhO }|js|jr$|dhO }d}d}t }t }|
| D ]\}}||hO }||hO }q2|D ](}d| d t fd	d
|D rk||v r]d}qC|sc|dvred}|d|hO }qC|ryt	ddj
dj |rtj	ddj
jd rtjj jd}tj|st| tj  tj  }n9j j}tt|td|rt|}| sʈ| }n|jvrtd|  dtdtj|tj|}t |ddd}|D ]4}||| v r*|dkr|!d"# qtt|t|}|!d"|#d|  qr<|s<|!d"#| |
sB|rG|!d |
D ]\}}|!d"|#| qI|D ]\}}|!| d| d q]|!d |!d| d t$|d kr|!d!| d t$|d kr|!d"| d |!d#| d |%|j&}t$|d kr|!d$| d |%|j'}t$|d kr|!d%| d t$|	d kr|!d&"d'|	 d5fd,d-} t$|jd kr|!d."d'| |j t$|jd kr|!d/"d'| |j g }!r?|j(D ]}"d0D ]}##t|#|" }$|!)d1|$  q&q"n|D ]}"|"dkrO|!)d2 qA|!)#td2|"  qA|!fd3d|j*D 7 }!|!r|s|!d4"d'|! W d    d S W d    d S W d    d S 1 sw   Y  d S )6Nc                 S  s   g | ]}|j qS r?   r#   r   r   r?   r?   r@   r     s    z<PkgConfigModule._generate_pkgconfig_file.<locals>.<listcomp>r   
includedirr  Fz${}c                 3  s    | ]}|  V  qd S rI   )r   r  )optvarr?   r@   	<genexpr>  s    z;PkgConfigModule._generate_pkgconfig_file.<locals>.<genexpr>T>   r   r  r  z3pkgconfig.generate variable for builtin directoriesz0.62.0z3They will be automatically included when referencedz<pkgconfig.generate implicit variable for builtin directoriesrq   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   ra   r   rH   r   c              	   3  sP   d}g }| D ]}t |tr|V  qrtjj|}n| }|r)|d nd }|du r0qt |tj	rUd|j
v rUt |trOd||j}nd|j }nt |trgd|}nd}||vru|| |V  || }t |tj	r|jrt||jd	|  t |tjtjfsd|j
vrd
| V  q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   )rJ   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}   )ra   r   ZLflagsr   r3   Z_iZLflaglname)r   r   r_   rQ   r
  r?   r@   generate_libs_flags  s:   



zEPkgConfigModule._generate_pkgconfig_file.<locals>.generate_libs_flagsz	Libs: {}
zLibs.private: {}
)r  z	${srcdir}z-Iz-I${includedir}c                   s   g | ]}  |qS r?   )r  )r   fr   r?   r@   r   R  s    zCflags: {}
)ra   r   rH   r   )+environmentget_coredatarZ   r   keysrU   rW   anyr   rz   r{   current_noder   r   r   r   	build_direxistsmkdirr   get_build_dirget_source_dirscratch_dirrK   
get_optionr   	OptionKeyis_absoluteparentsr   r   relpathopenwriter   r  r   r   rV   rX   r^   r   rY   )%r_   rQ   r  r)   r#   r%   r'   r"   r   r*   r7   r9   r
  r,   r  coredataZreferenced_varsZoptnamesZimplicit_vars_warningZredundant_vars_warningvarnamesZ
varstringskvoptnameoutdirsrcdirZpkgroot_fnameofiledirpathZreqs_strr   rY   r   basedirr   r?   )r  r   r   r_   rQ   r
  r@   _generate_pkgconfig_file  s   









&

XX$z(PkgConfigModule._generate_pkgconfig_filezpkgconfig.generate)optargsz0.43.0)sinceTrA   z0.54.0)rB   rA  r5   z0.42.0)rB   rC   rA  r$   c                 C     | dkrdS d S Nr   zmust not be an empty stringr?   r   r?   r?   r@   <lambda>_      zPkgConfigModule.<lambda>)	validatorc                 C  rB  rC  r?   r   r?   r?   r@   rD  `  rE  r   )rB   r:   z0.59.0)r#   rA  r8   z0.56.0)r#   rA  since_valuesz0.41.0)rA  rG  r/   r  r2   argsFT.Tuple[T.Optional[T.Union[build.SharedLibrary, build.StaticLibrary]]]kwargsr    r	   c           !        s  |j }d }d }d }d }dg}	|d r@tdd|j |d }|j}|jd |j }| }
|
r?t|
d tr?t	j
|
d d}n,d d u rNtdd|j d	}d
 d u r^t|d
d d u rlt|dd   rg }	g d}tfdd|D rtd| t	j
|j d}d p|	}d d urd n|}d
 d urd
 n|}t|tsJ dd d urƈd n|}d d ur҈d n|}d }d }d  }|r|d| t||| j}|| |d  |d  |d  |d  d }|r3|jjjj d}|r3||!|g g ddd  |"  d< fd#d$}|d% }|d& }|d' }d( pT| }}|d u rt# r|t	j
t$|jj%t&d)d*d}t	j
d+d*d}n:t' rt	j
t$|jj%t&d)d,d-d}t	j
d+d,d-d}nt	j
t$|jj%t&d.d}t	j
d/d}|j%d0dd1}| j(|||||||||||d |r|nd d2 tj)t*d3|j+ |g||d |jd4d5}|d6 }|d7 }|d8 }| j(|||||||||||d3 d9 |r/|, | jvr$t-|||j.| j|, < n,t/0d:t/1|j n!|j2D ]} t| tsN| , | jvrNt-|||j.| j| , < q2| j3d u rbt4j5|jtj6j7d3d;| _3t8||gS )=Nr  r   z/pkgconfig.generate optional positional argumentrx   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,   )r.   r/   r2   r5   r)   c                 3  s    | ]} | V  qd S rI   r?   )r   r6  )rJ  r?   r@   r    s    z+PkgConfigModule.generate.<locals>.<genexpr>z$Cannot combine dataonly with any of r)   r   r$   r'   r*   r.   r/   r1   r2   r5   r4   r   F)versionsimport_dirsdebugunittestvardictr6   rH   r	  c                   sN   g d}g }|   D ]\}} s||v rtd| d|||f q
|S )N)r   r  r  z
Variable "z" is reserved)itemsr   r   r   )rO  reservedr7   r#   r   )r,   r?   r@   parse_variable_list  s   z5PkgConfigModule.generate.<locals>.parse_variable_listr7   r9   z.pcr3   r   Zlibdataz{prefix}Zdevelopr   r  z{libdir}relocatable)module)r  Tdevel)install_tagr8   r:   z-uninstalled.pc)r
  r,   z'Already generated a pkg-config file for)r
  )rO  r6   rH   r	  )9project_versionr   rz   r{   r#   project_namer  rJ   r&   r   r   r   r   InvalidArgumentsr   r%  r   r   r"  get_datadircopyinsertrP   r   re   rg   rk   rm   r   r4  r  hostr   get_feature_argsr   
is_freebsdrK   r-  r.  is_haikur?  DataFileget_scratch_dirrr   rL   r&  r   r   rt   rU   r   r   get_envMachineChoiceHOSTr	   )!r_   rQ   rH  rJ  Zdefault_versiondefault_install_dirZdefault_descriptiondefault_nameZmainlibZdefault_subdirsr3   r   Zblocked_varsr)   r"   r#   r$   r%   r'   r*   r.   r  Z	dversionscompilerrR  r7   r9   r   r  Zpkgroot_namerS  resr   r?   )r,   rJ  r@   r   V  s   
	

$
&"*	
zPkgConfigModule.generater   )r   r   rH   rT   )r   r   r   r&   r   r&   rH   r&   )r   r   rH   r&   )r   r  r   r  rH   r&   )FFN)rQ   r   r  rP   r)   r(   r#   r&   r%   r&   r'   r&   r"   r&   r   r&   r*   r(   r7   r	  r9   r	  r
  r+   r,   r+   r  r!   rH   rT   )rQ   r   rH  rI  rJ  r    rH   r	   )"r;   r<   r=   r   INFOr   r>   r   r`   r   r   r  r  r?  r   r   r~   r   r   r   evolver   r   r   listr&   r+   r   r   dictrD   rE   r   __classcell__r?   r?   r   r@   r   z  sJ   
 



 


r   interpr   c                 C  s   t  S rI   )r   )rp  r?   r?   r@   
initialize  s   rq  )rF   rG   rH   r&   )rp  r   rH   r   )A
__future__r   collectionsr   dataclassesr   pathlibr   r   typingr   r   r   r   r	   r   r   r   r   r4  r   dependencies.pkgconfigr   r   Zinterpreter.type_checkingr   r   r   r   interpreterbaser   r   interpreterbase.decoratorsr   r   r   r   TYPE_CHECKINGZtyping_extensionsr   r   r   interpreterr   Unionr   BuildTargetTypesr&   ZANY_DEPLibTypesZLIBSr    rm  r~   r   r|   r}   rD   r>   rE   rK   rL   rP   r   rq  r?   r?   r?   r@   <module>   sd   
	
    u