Ë
    ±éäg  ã                   ó\   — d dl Z d dlZd dlZddlmZ d„ Z e j                  «       fd„Zd„ Zy)é    Né   )ÚPkgConfigErrorc                 óô   — |j                  «       D ]d  \  }}|| vr|| |<   Œt        | |   t        «      st        d|›d�«      ‚t        |t        «      st        d|›d�«      ‚| |   j	                  |«       Œf | S )z¬Merge values from cffi config flags cfg2 to cf1

    Example:
        merge_flags({"libraries": ["one"]}, {"libraries": ["two"]})
        {"libraries": ["one", "two"]}
    zcfg1[z] should be a list of stringszcfg2[)ÚitemsÚ
isinstanceÚlistÚ	TypeErrorÚextend)Úcfg1Úcfg2ÚkeyÚvalues       úL/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/cffi/pkgconfig.pyÚmerge_flagsr      sz   € ð —j‘j“lò $‰
ˆˆUØ�d‰?ØˆD�ŠIä˜d 3™i¬Ô.ÝÊ#Ð OÓPÐPÜ˜e¤TÔ*ÝÊ#Ð OÓPÐPØ�‰I×Ñ˜UÕ#ð$ð €Kó    c                 óè  — ddg}|j                  |«       |j                  | «       	 t        j                  |t        j                  t        j                  ¬«      }|j                  «       \  }}|j                  dk7  r+	 |j                  |«      }t        |j                  «       «      ‚t        j                  dk\  r"t        |t        «      s	 |j                  |«      }t         j"                  dk7  rd|v rt        d|›d	| ›d|›�«      ‚|S # t        $ r*}t        dt        |«      j                  «       ›�«      ‚d}~ww xY w# t        $ r Y Œ¼w xY w# t        $ r t        d|›d	| ›d
|›d|›�«      ‚w xY w)z5Calls pkg-config and returns the output if found
    z
pkg-configz--print-errors)ÚstdoutÚstderrzcannot run pkg-config: Nr   )é   zpkg-config ú z5 returned bytes that cannot be decoded with encoding z:
ú\z3 returned an unsupported backslash-escaped output:
)ÚappendÚ
subprocessÚPopenÚPIPEÚEnvironmentErrorr   ÚstrÚstripÚcommunicateÚ
returncodeÚdecodeÚ	ExceptionÚsysÚversion_infor   ÚUnicodeDecodeErrorÚosÚaltsep)ÚlibnameÚflagÚencodingÚaÚpcÚeÚboutÚberrs           r   Úcallr0      sZ  € ð 
Ð'Ð(€AØ‡H�HˆT„NØ‡H�HˆWÔðNÜ×Ñ˜a¬
¯©Ä
ÇÁÔPˆð —‘Ó!�J€Dˆ$Ø	‡}�}˜Òð	Ø—;‘;˜xÓ(ˆDô ˜TŸZ™Z›\Ó*Ð*ä
×Ñ˜4Ò¬
°4¼Ô(=ð	BØ—;‘;˜xÓ(ˆDô 
‡y�y�DÒ˜T T™\Ýâ"¢G©Tð3ó 4ð 	4ð €Køô/ ò NÝ¼CÀ»F¿L¹L¼NÐLÓMÐMûðNûô ò 	Ùð	ûô "ò 	BÝ â"&ª²¹4ð"Aó Bð Bð	Bús5   ¨4D Á?E ÃE Ä	D>Ä%D9Ä9D>Å	EÅEÅ!E1c                 ó„   ‡‡‡‡‡	‡
— d„ Šd„ Šd„ Šd„ Šd„ Š	d„ Š
ˆˆˆˆˆ	ˆ
fd„}i }| D ]  } ||«      }t        ||«       Œ |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.
    c                 ór   — | j                  «       D �cg c]  }|j                  d«      sŒ|dd  ‘Œ c}S c c}w )Nú-Ié   ©ÚsplitÚ
startswith©ÚstringÚxs     r   Úget_include_dirsz.flags_from_pkgconfig.<locals>.get_include_dirsK   ó-   € Ø%Ÿ|™|›~ÖD˜!°·±¸dÕ1C��!�"’ÒDÐDùÒDó   “4ª4c                 ór   — | j                  «       D �cg c]  }|j                  d«      sŒ|dd  ‘Œ c}S c c}w )Nú-Lr4   r5   r8   s     r   Úget_library_dirsz.flags_from_pkgconfig.<locals>.get_library_dirsN   r<   r=   c                 ór   — | j                  «       D �cg c]  }|j                  d«      sŒ|dd  ‘Œ c}S c c}w )Nú-lr4   r5   r8   s     r   Úget_librariesz+flags_from_pkgconfig.<locals>.get_librariesQ   r<   r=   c                 ó~   — d„ }| j                  «       D �cg c]  }|j                  d«      sŒ ||«      ‘Œ c}S c c}w )Nc                 óR   — | dd  } d| v rt        | j                  dd«      «      S | d fS )Nr4   ú=r   )Útupler6   )r:   s    r   Ú_macroz8flags_from_pkgconfig.<locals>.get_macros.<locals>._macroV   s3   € Ø�!�"�ˆAØ�a‰xÜ˜QŸW™W S¨!›_Ó-Ð-à˜4�yÐ r   ú-Dr5   )r9   rH   r:   s      r   Ú
get_macrosz(flags_from_pkgconfig.<locals>.get_macrosU   s2   € ò	!ð $*§<¡<£>ÖH˜a°Q·\±\À$Õ5G‘�q•	ÒHÐHùÒHs   –:­
:c                 óŽ   — | j                  «       D �cg c]'  }|j                  d«      rŒ|j                  d«      s|‘Œ) c}S c c}w )Nr3   rI   r5   r8   s     r   Úget_other_cflagsz.flags_from_pkgconfig.<locals>.get_other_cflags^   óB   € Ø!Ÿ<™<›>ö E�a°·±¸dÕ1CØ12·±¸dÔ1Cò ò Eð 	Eùò Eó
   “AªAc                 óŽ   — | j                  «       D �cg c]'  }|j                  d«      rŒ|j                  d«      s|‘Œ) c}S c c}w )Nr?   rB   r5   r8   s     r   Úget_other_libsz,flags_from_pkgconfig.<locals>.get_other_libsb   rM   rN   c                 ó¶   •— t        j                  «       }t        | d«      }t        | d«      } ‰|«       ‰|«       ‰|«       ‰|«       ‰|«       ‰	|«      dœS )Nz--cflagsz--libs)Úinclude_dirsÚlibrary_dirsÚ	librariesÚdefine_macrosÚextra_compile_argsÚextra_link_args)r#   Úgetfilesystemencodingr0   )
r(   ÚfseÚ
all_cflagsÚall_libsr;   rC   r@   rJ   rL   rP   s
       €€€€€€r   Úkwargsz$flags_from_pkgconfig.<locals>.kwargsg   sc   ø€ Ü×'Ñ'Ó)ˆÜ˜' :Ó.ˆ
Ü˜ Ó*ˆá,¨ZÓ8Ù,¨XÓ6Ù& xÓ0Ù'¨
Ó3Ù"2°:Ó">Ù-¨hÓ7ñð 	r   )r   )Úlibsr\   Úretr(   Ú	lib_flagsr;   rC   r@   rJ   rL   rP   s        @@@@@@r   Úflags_from_pkgconfigr`   <   sa   ý€ òEòEòEòIòEòE÷
ñ ð €CØò $ˆÙ˜7“Oˆ	Ü�C˜Õ#ð$ð €Jr   )	r#   r&   r   Úerrorr   r   rX   r0   r`   © r   r   ú<module>rc      s.   ðç Ó å !òð& "; ×!:Ñ!:Ó!<ó óD=r   