ó
    sñ:i  ã                   ó^   • S SK r S SKrS SKrSSKJr  S r\ R                  " 5       4S jrS rg)é    Né   )ÚPkgConfigErrorc                 ó  • UR                  5        Ho  u  p#X ;  a  X0U'   M  [        X   [        5      (       d  [        SU< S35      e[        U[        5      (       d  [        SU< S35      eX   R	                  U5        Mq     U $ )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       ÚQ/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/cffi/pkgconfig.pyÚmerge_flagsr      sq   € ð —j‘j–l‰
ˆØ‹?Ø�‹Iä˜d™i¬×.Ñ.ÝË#Ð OÓPÐPÜ˜e¤T×*Ñ*ÝË#Ð OÓPÐPØ‰I×Ñ˜UÖ#ñ #ð €Kó    c                 ó  • SS/nUR                  U5        UR                  U 5         [        R                  " U[        R                  [        R                  S9nUR                  5       u  pgUR                  S:w  a+   UR                  U5      n[        UR                  5       5      e[        R                  S:¼  a'  [        U[        5      (       d   UR                  U5      n[         R"                  S:w  a  SU;   a  [        SU< S	U < SU< 35      eU$ ! [         a+  n[        S[        U5      R                  5       < 35      eSnAff = f! [         a     NËf = f! [         a    [        SU< S	U < S
U< SU< 35      ef = f)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      s[  € ð 
Ð'Ð(€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   ¨2D Á=E ÃE Ä
E
Ä&EÅE
Å
EÅEÅ&Fc                 óˆ   ^^^^^	^
• S mS mS mS mS m	S m
UUUUU	U
4S jn0 nU  H  nU" U5      n[        X$5        M     U$ )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                 ó‚   • U R                  5        Vs/ s H  oR                  S5      (       d  M  USS  PM!     sn$ s  snf )Nú-Ié   ©ÚsplitÚ
startswith©ÚstringÚxs     r   Úget_include_dirsÚ.flags_from_pkgconfig.<locals>.get_include_dirsK   ó1   € Ø%Ÿ|™|œ~ÓDš~˜!·±¸d×1C“��!�"“™~ÑDÐDùÒDó   “<°	<c                 ó‚   • U R                  5        Vs/ s H  oR                  S5      (       d  M  USS  PM!     sn$ s  snf )Nú-Lr4   r5   r8   s     r   Úget_library_dirsÚ.flags_from_pkgconfig.<locals>.get_library_dirsN   r=   r>   c                 ó‚   • U R                  5        Vs/ s H  oR                  S5      (       d  M  USS  PM!     sn$ s  snf )Nú-lr4   r5   r8   s     r   Úget_librariesÚ+flags_from_pkgconfig.<locals>.get_librariesQ   r=   r>   c                 óŽ   • S nU R                  5        Vs/ s H"  o"R                  S5      (       d  M  U" U5      PM$     sn$ s  snf )Nc                 óV   • U SS  n SU ;   a  [        U R                  SS5      5      $ U S 4$ )Nr4   Ú=r   )Útupler6   )r:   s    r   Ú_macroÚ8flags_from_pkgconfig.<locals>.get_macros.<locals>._macroV   s3   € Ø�!�"�ˆAØ�a‹xÜ˜QŸW™W S¨!›_Ó-Ð-à˜4�yÐ r   ú-Dr5   )r9   rK   r:   s      r   Ú
get_macrosÚ(flags_from_pkgconfig.<locals>.get_macrosU   s6   € ò	!ð $*§<¡<¤>ÓH¢>˜a·\±\À$×5G“	‘�q–	¡>ÑHÐHùÒHs
   –A³Ac                 ó¬   • U R                  5        Vs/ s H4  oR                  S5      (       a  M  UR                  S5      (       a  M2  UPM6     sn$ s  snf )Nr3   rM   r5   r8   s     r   Úget_other_cflagsÚ.flags_from_pkgconfig.<locals>.get_other_cflags^   óF   € Ø!Ÿ<™<œ>ó Eš>�a·±¸d×1C“Ø12·±¸d×1C÷ ™>ñ Eð 	Eùò Eó   “A°AÁAc                 ó¬   • U R                  5        Vs/ s H4  oR                  S5      (       a  M  UR                  S5      (       a  M2  UPM6     sn$ s  snf )Nr@   rD   r5   r8   s     r   Úget_other_libsÚ,flags_from_pkgconfig.<locals>.get_other_libsb   rS   rT   c                 ó¸   >• [         R                  " 5       n[        U S5      n[        U S5      nT" U5      T" U5      T" U5      T" U5      T" U5      T	" U5      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;   rE   rA   rN   rQ   rV   s
       €€€€€€r   ÚkwargsÚ$flags_from_pkgconfig.<locals>.kwargsg   sc   ø€ Ü×'Ò'Ó)ˆÜ˜' :Ó.ˆ
Ü˜ Ó*ˆá,¨ZÓ8Ù,¨XÓ6Ù& xÓ0Ù'¨
Ó3Ù"2°:Ó">Ù-¨hÓ7ñð 	r   )r   )Úlibsrc   Úretr(   Ú	lib_flagsr;   rE   rA   rN   rQ   rV   s        @@@@@@r   Úflags_from_pkgconfigrh   <   sZ   ý€ òEòEòEòIòEòE÷
ò ð €CÛˆÙ˜7“Oˆ	Ü�CÖ#ñ ð €Jr   )	r#   r&   r   Úerrorr   r   r_   r0   rh   © r   r   Ú<module>rk      s,   ðç Ó å !òð& "%×!:Ò!:Ó!<ô óD=r   