HEX
Server: Apache
System: Linux server2.voipitup.com.au 4.18.0-553.104.1.lve.el8.x86_64 #1 SMP Tue Feb 10 20:07:30 UTC 2026 x86_64
User: posscale (1027)
PHP: 8.2.29
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //opt/saltstack/salt/lib/python3.10/site-packages/cffi/__pycache__/pkgconfig.cpython-310.pyc
o

�N�g�@sHddlZddlZddlZddlmZdd�Ze��fdd�Zdd	�ZdS)
�N�)�PkgConfigErrorcCsj|��D].\}}||vr|||<qt||t�std|f��t|t�s+td|f��||�|�q|S)z�Merge values from cffi config flags cfg2 to cf1

    Example:
        merge_flags({"libraries": ["one"]}, {"libraries": ["two"]})
        {"libraries": ["one", "two"]}
    z$cfg1[%r] should be a list of stringsz$cfg2[%r] should be a list of strings)�items�
isinstance�list�	TypeError�extend)Zcfg1Zcfg2�key�value�r�B/opt/saltstack/salt/lib/python3.10/site-packages/cffi/pkgconfig.py�merge_flagss

r
c
Csddg}|�|�|�|�ztj|tjtjd�}Wnty1}ztdt|���f��d}~ww|��\}}|j	dkrTz|�
|�}Wn	tyMYnwt|����tj
dkrwt|t�swz|�
|�}Wntyvtd||||f��wtjd	kr�d	|vr�td
|||f��|S)z5Calls pkg-config and returns the output if found
    z
pkg-configz--print-errors)�stdout�stderrzcannot run pkg-config: %sNr)�zKpkg-config %s %s returned bytes that cannot be decoded with encoding %r:
%r�\zEpkg-config %s %s returned an unsupported backslash-escaped output:
%r)�append�
subprocess�Popen�PIPE�EnvironmentErrorr�str�strip�communicate�
returncode�decode�	Exception�sys�version_infor�UnicodeDecodeError�os�altsep)�libname�flag�encoding�aZpc�eZboutZberrrrr�calls<

��
�
���r'csjdd��dd��dd��dd��d	d
��dd��������fd
d�}i}|D]}||�}t||�q'|S)a�Return compiler line flags for FFI.set_source based on pkg-config output

    Usage
        ...
        ffibuilder.set_source("_foo", pkgconfig = ["libfoo", "libbar >= 1.8.3"])

    If pkg-config is installed on build machine, then arguments include_dirs,
    library_dirs, libraries, define_macros, extra_compile_args and
    extra_link_args are extended with an output of pkg-config for libfoo and
    libbar.

    Raises PkgConfigError in case the pkg-config call fails.
    cS�dd�|��D�S)NcS�"g|]
}|�d�r|dd��qS)�-I�N��
startswith��.0�xrrr�
<listcomp>L�"zBflags_from_pkgconfig.<locals>.get_include_dirs.<locals>.<listcomp>��split��stringrrr�get_include_dirsK�z.flags_from_pkgconfig.<locals>.get_include_dirscSr()NcSr))�-Lr+Nr,r.rrrr1Or2zBflags_from_pkgconfig.<locals>.get_library_dirs.<locals>.<listcomp>r3r5rrr�get_library_dirsNr8z.flags_from_pkgconfig.<locals>.get_library_dirscSr()NcSr))�-lr+Nr,r.rrrr1Rr2z?flags_from_pkgconfig.<locals>.get_libraries.<locals>.<listcomp>r3r5rrr�
get_librariesQr8z+flags_from_pkgconfig.<locals>.get_librariescsdd���fdd�|��D�S)NcSs,|dd�}d|vrt|�dd��S|dfS)Nr+�=r)�tupler4)r0rrr�_macroVsz8flags_from_pkgconfig.<locals>.get_macros.<locals>._macrocsg|]}|�d�r�|��qS)�-Dr,r.�r?rrr1\sz<flags_from_pkgconfig.<locals>.get_macros.<locals>.<listcomp>r3r5rrAr�
get_macrosUsz(flags_from_pkgconfig.<locals>.get_macroscSr()NcS�$g|]}|�d�s|�d�s|�qS)r*r@r,r.rrrr1_�
�zBflags_from_pkgconfig.<locals>.get_other_cflags.<locals>.<listcomp>r3r5rrr�get_other_cflags^r8z.flags_from_pkgconfig.<locals>.get_other_cflagscSr()NcSrC)r9r;r,r.rrrr1crDz@flags_from_pkgconfig.<locals>.get_other_libs.<locals>.<listcomp>r3r5rrr�get_other_libsbr8z,flags_from_pkgconfig.<locals>.get_other_libscsFt��}t|d�}t|d�}�|��|��|��|��|��|�d�S)Nz--cflagsz--libs)�include_dirsZlibrary_dirsZ	librariesZ
define_macrosZextra_compile_argsZextra_link_args)r�getfilesystemencodingr')r"ZfseZ
all_cflagsZall_libs�r7r<r:rBrErFrr�kwargsgs

�z$flags_from_pkgconfig.<locals>.kwargs)r
)ZlibsrJ�retr"Z	lib_flagsrrIr�flags_from_pkgconfig<s	rL)	rr r�errorrr
rHr'rLrrrr�<module>s
"