Viewing File: /opt/alt/python38/lib64/python3.8/site-packages/cffi/__pycache__/pkgconfig.cpython-38.pyc

U

ل=^@sHddlZddlZddlZddlmZddZefddZdd	ZdS)
N)PkgConfigErrorcCsj|D]\\}}||kr"|||<qt||ts>td|ft|tsVtd|f|||q|S)zMerge 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
isinstancelist	TypeErrorextend)Zcfg1Zcfg2keyvaluer
/pkgconfig.pymerge_flagss

r
c
Cs2ddg}||||ztj|tjtjd}Wn8tk
rl}ztdt|fW5d}~XYnX|\}}|j	dkrz|
|}Wntk
rYnXt|tj
dkrt|tsz|
|}Wn*tk
rtd||||fYnXtjd	kr.d	|kr.td
|||f|S)z5Calls pkg-config and returns the output if found
    z
pkg-configz--print-errors)stdoutstderrzcannot 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
subprocessPopenPIPEEnvironmentErrorrstrstripZcommunicate
returncodedecode	Exceptionsysversion_inforUnicodeDecodeErrorosaltsep)libnameflagencodingaZpceZboutZberrrrrcalls4

(

r&csjddddddddd	d
ddfd
d}i}|D]}||}t||qN|S)aReturn 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.
    cSsdd|DS)NcSs"g|]}|dr|ddqS)-IN
startswith.0xrrr
<listcomp>Ls
zBflags_from_pkgconfig.<locals>.get_include_dirs.<locals>.<listcomp>splitstringrrrget_include_dirsKsz.flags_from_pkgconfig.<locals>.get_include_dirscSsdd|DS)NcSs"g|]}|dr|ddqS)-Lr(Nr)r+rrrr.Os
zBflags_from_pkgconfig.<locals>.get_library_dirs.<locals>.<listcomp>r/r1rrrget_library_dirsNsz.flags_from_pkgconfig.<locals>.get_library_dirscSsdd|DS)NcSs"g|]}|dr|ddqS)-lr(Nr)r+rrrr.Rs
z?flags_from_pkgconfig.<locals>.get_libraries.<locals>.<listcomp>r/r1rrr
get_librariesQsz+flags_from_pkgconfig.<locals>.get_librariescsddfdd|DS)NcSs0|dd}d|kr$t|ddS|dfSdS)Nr(=r)tupler0)r-rrr_macroVsz8flags_from_pkgconfig.<locals>.get_macros.<locals>._macrocsg|]}|dr|qS)-Dr)r+r:rrr.\s
z<flags_from_pkgconfig.<locals>.get_macros.<locals>.<listcomp>r/r1rr<r
get_macrosUsz(flags_from_pkgconfig.<locals>.get_macroscSsdd|DS)NcSs$g|]}|ds|ds|qS)r'r;r)r+rrrr._s

zBflags_from_pkgconfig.<locals>.get_other_cflags.<locals>.<listcomp>r/r1rrrget_other_cflags^sz.flags_from_pkgconfig.<locals>.get_other_cflagscSsdd|DS)NcSs$g|]}|ds|ds|qS)r4r6r)r+rrrr.cs

z@flags_from_pkgconfig.<locals>.get_other_libs.<locals>.<listcomp>r/r1rrrget_other_libsbsz,flags_from_pkgconfig.<locals>.get_other_libscsFt}t|d}t|d}||||||dS)Nz--cflagsz--libs)Zinclude_dirsZlibrary_dirsZ	librariesZ
define_macrosZextra_compile_argsZextra_link_args)rgetfilesystemencodingr&)r!ZfseZ
all_cflagsZall_libsr3r7r5r=r>r?rrkwargsgs

z$flags_from_pkgconfig.<locals>.kwargs)r
)ZlibsrBZretr!Z	lib_flagsrrArflags_from_pkgconfig<s	rC)	rrrerrorrr
r@r&rCrrrr<module>s"
Back to Directory File Manager