§
    cÒ³g  ã                   óZ   — 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dS )é    Né   )ÚPkgConfigErrorc                 ó0  — |                      ¦   «         D ]€\  }}|| vr|| |<   Œt          | |         t          ¦  «        st          d|›d�¦  «        ‚t          |t          ¦  «        st          d|›d�¦  «        ‚| |                              |¦  «         Œ�| 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/html/mpstechhub/venv/lib/python3.11/site-packages/cffi/pkgconfig.pyÚmerge_flagsr      s«   € ð —j’j‘l”lð $ð $‰
ˆˆUØ�dˆ?ˆ?ØˆD�‰IˆIå˜d 3œi­Ñ.Ô.ð QÝ�iÈ#È#È#Ð OÑPÔPÐPÝ˜e¥TÑ*Ô*ð QÝ�iÈ#È#È#Ð OÑPÔPÐPØ�ŒI×Ò˜UÑ#Ô#Ð#Ð#Ø€Kó    c                 ó8  — ddg}|                      |¦  «         |                      | ¦  «         	 t          j        |t          j        t          j        ¬¦  «        }nC# t          $ r6}t          dt          |¦  «                             ¦   «         ›�¦  «        ‚d}~ww xY w|                     ¦   «         \  }}|j	        dk    rH	 | 
                    |¦  «        }n# t          $ r Y nw xY wt          |                     ¦   «         ¦  «        ‚t          j        dk    rUt          |t          ¦  «        s@	 | 
                    |¦  «        }n)# t          $ r t          d|›d	| ›d
|›d|›�¦  «        ‚w xY wt           j        dk    rd|v rt          d|›d	| ›d|›�¦  «        ‚|S )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„N€NØ‡H‚HˆWÑÔÐðNÝÔ˜a­
¬Å
ÄÐPÑPÔPˆˆøÝð Nð Nð NÝˆn½CÀ¹F¼F¿LºL¹N¼N¸NÐLÑMÔMÐMøøøøðNøøøð —’Ñ!Ô!�J€Dˆ$Ø	„}˜ÒÐð	Ø—;’;˜xÑ(Ô(ˆDˆDøÝð 	ð 	ð 	ØˆDð	øøøå˜TŸZšZ™\œ\Ñ*Ô*Ð*å
Ô˜4ÒÐ­
°4½Ñ(=Ô(=Ðð	BØ—;’;˜xÑ(Ô(ˆDˆDøÝ!ð 	Bð 	Bð 	BÝ �.à"& $ $¨¨¨°°°¸4¸4ð"Añ Bô Bð Bð	Bøøøõ
 
„y�DÒÐ˜T T˜\˜\Ýˆnà"˜d˜d G G G¨T¨Tð3ñ 4ô 4ð 	4ð €Ks5   °+A Á
BÁ&1BÂBÃC Ã
C%Ã$C%Ä/E Å&E+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                 ó>   — d„ |                       ¦   «         D ¦   «         S )Nc                 óL   — g | ]!}|                      d ¦  «        ¯|dd…         ‘Œ"S )ú-Ié   N©Ú
startswith©Ú.0Úxs     r   ú
<listcomp>zBflags_from_pkgconfig.<locals>.get_include_dirs.<locals>.<listcomp>L   ó1   € ÐDÐDÐD˜!°·²¸dÑ1CÔ1CÐD��!�"�"”ÐDÐDÐDr   ©Úsplit©Ústrings    r   Úget_include_dirsz.flags_from_pkgconfig.<locals>.get_include_dirsK   ó   € ØDÐD˜vŸ|š|™~œ~ÐDÑDÔDÐDr   c                 ó>   — d„ |                       ¦   «         D ¦   «         S )Nc                 óL   — g | ]!}|                      d ¦  «        ¯|dd…         ‘Œ"S )ú-Lr5   Nr6   r8   s     r   r;   zBflags_from_pkgconfig.<locals>.get_library_dirs.<locals>.<listcomp>O   r<   r   r=   r?   s    r   Úget_library_dirsz.flags_from_pkgconfig.<locals>.get_library_dirsN   rB   r   c                 ó>   — d„ |                       ¦   «         D ¦   «         S )Nc                 óL   — g | ]!}|                      d ¦  «        ¯|dd…         ‘Œ"S )ú-lr5   Nr6   r8   s     r   r;   z?flags_from_pkgconfig.<locals>.get_libraries.<locals>.<listcomp>R   r<   r   r=   r?   s    r   Úget_librariesz+flags_from_pkgconfig.<locals>.get_librariesQ   rB   r   c                 óJ   ‡— d„ Šˆfd„|                       ¦   «         D ¦   «         S )Nc                 ól   — | dd …         } d| v r#t          |                      dd¦  «        ¦  «        S | d fS )Nr5   ú=r   )Útupler>   )r:   s    r   Ú_macroz8flags_from_pkgconfig.<locals>.get_macros.<locals>._macroV   s<   € Ø�!�"�"”ˆAØ�aˆxˆxÝ˜QŸWšW S¨!™_œ_Ñ-Ô-Ð-à˜4�yÐ r   c                 óP   •— g | ]"}|                      d ¦  «        ¯ ‰|¦  «        ‘Œ#S )ú-Dr6   )r9   r:   rO   s     €r   r;   z<flags_from_pkgconfig.<locals>.get_macros.<locals>.<listcomp>\   s2   ø€ ÐHÐHÐH˜a°Q·\²\À$Ñ5GÔ5GÐH���q‘	”	ÐHÐHÐHr   r=   )r@   rO   s    @r   Ú
get_macrosz(flags_from_pkgconfig.<locals>.get_macrosU   s7   ø€ ð	!ð 	!ð 	!ð IÐHÐHÐH 6§<¢<¡>¤>ÐHÑHÔHÐHr   c                 ó>   — d„ |                       ¦   «         D ¦   «         S )Nc                 óf   — g | ].}|                      d ¦  «        °|                      d¦  «        °,|‘Œ/S )r4   rQ   r6   r8   s     r   r;   zBflags_from_pkgconfig.<locals>.get_other_cflags.<locals>.<listcomp>_   óS   € ð Eð Eð E�a°·²¸dÑ1CÔ1Cð EØ12·²¸dÑ1CÔ1CðE�ð Eð Eð Er   r=   r?   s    r   Úget_other_cflagsz.flags_from_pkgconfig.<locals>.get_other_cflags^   ó0   € ðEð E˜6Ÿ<š<™>œ>ð Eñ Eô Eð 	Er   c                 ó>   — d„ |                       ¦   «         D ¦   «         S )Nc                 óf   — g | ].}|                      d ¦  «        °|                      d¦  «        °,|‘Œ/S )rE   rI   r6   r8   s     r   r;   z@flags_from_pkgconfig.<locals>.get_other_libs.<locals>.<listcomp>c   rU   r   r=   r?   s    r   Úget_other_libsz,flags_from_pkgconfig.<locals>.get_other_libsb   rW   r   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_libsrA   rJ   rF   rR   rV   rZ   s
       €€€€€€r   Úkwargsz$flags_from_pkgconfig.<locals>.kwargsg   s�   ø€ ÝÔ'Ñ)Ô)ˆÝ˜' :Ñ.Ô.ˆ
Ý˜ Ñ*Ô*ˆà,Ð,¨ZÑ8Ô8Ø,Ð,¨XÑ6Ô6Ø&˜ xÑ0Ô0Ø'˜Z¨
Ñ3Ô3Ø"2Ð"2°:Ñ">Ô">Ø-˜~¨hÑ7Ô7ðð ð 	r   )r   )Úlibsrf   Úretr(   Ú	lib_flagsrA   rJ   rF   rR   rV   rZ   s        @@@@@@r   Úflags_from_pkgconfigrj   <   sá   øøøøøø€ ðEð Eð EðEð Eð EðEð Eð EðIð Ið IðEð Eð EðEð Eð Eð
ð ð ð ð ð ð ð ð ð ð €CØð $ð $ˆØ�F˜7‘O”Oˆ	Ý�C˜Ñ#Ô#Ð#Ð#Ø€Jr   )	r#   r&   r   Úerrorr   r   rb   r0   rj   © r   r   ú<module>rm      sˆ   ðà Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð à !Ð !Ð !Ð !Ð !Ð !ðð ð ð& "; Ô!:Ñ!<Ô!<ð ð ð ð ðD=ð =ð =ð =ð =r   