관리-도구
편집 파일: pkgconfig.cpython-39.pyc
a ����(�`����������������������@���sH���d�dl�Z�d�dlZd�dlZddlmZ�dd��Ze����fdd�Zdd ��ZdS�) �����N����)�PkgConfigErrorc�����������������C���sj���|����D�]\\}}||�vr"||�|<�qt|�|�t�s>td|f���t|t�sVtd|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����4/usr/lib64/python3.9/site-packages/cffi/pkgconfig.py�merge_flags���s���� r ���c�������������� ���C���s*��ddg}|��|��|��|���ztj|tjtjd�}W�n:�tyn�}�z"tdt|����f���W�Y�d}~n d}~0�0�|���\}}|j dkr�z|� |�}W�n�ty����Y�n0�t|�����tj dkr�t|t�s�z|� |�}W�n&�ty����td||�||f���Y�n0�tjd k�r&d |v��r&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�stripZcommunicate� returncode�decode� Exception�sys�version_infor����UnicodeDecodeError�os�altsep)�libname�flag�encoding�aZpc�eZboutZberrr���r���r����call���s4���� , ��r&���c��������������������sj���dd����dd���dd���dd���d d ���dd����������fd d�}i�}|�D�]}||�}t�||��qN|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�����������������S���s���dd��|�����D��S�)Nc�����������������S���s"���g�|�]}|��d��r|dd���qS�)�-I����N�� startswith��.0�xr���r���r���� <listcomp>L��������zBflags_from_pkgconfig.<locals>.get_include_dirs.<locals>.<listcomp>��split��stringr���r���r����get_include_dirsK���s����z.flags_from_pkgconfig.<locals>.get_include_dirsc�����������������S���s���dd��|�����D��S�)Nc�����������������S���s"���g�|�]}|��d��r|dd���qS�)�-Lr(���Nr)���r+���r���r���r���r.���O���r/���zBflags_from_pkgconfig.<locals>.get_library_dirs.<locals>.<listcomp>r0���r2���r���r���r����get_library_dirsN���s����z.flags_from_pkgconfig.<locals>.get_library_dirsc�����������������S���s���dd��|�����D��S�)Nc�����������������S���s"���g�|�]}|��d��r|dd���qS�)�-lr(���Nr)���r+���r���r���r���r.���R���r/���z?flags_from_pkgconfig.<locals>.get_libraries.<locals>.<listcomp>r0���r2���r���r���r���� get_librariesQ���s����z+flags_from_pkgconfig.<locals>.get_librariesc��������������������s���dd������fdd�|�����D��S�)Nc�����������������S���s0���|�dd���}�d|�v�r$t�|��dd��S�|�d�fS�d�S�)Nr(����=r���)�tupler1���)r-���r���r���r����_macroV���s����z8flags_from_pkgconfig.<locals>.get_macros.<locals>._macroc��������������������s���g�|�]}|��d��r��|��qS�)�-Dr)���r+����r;���r���r���r.���\���r/���z<flags_from_pkgconfig.<locals>.get_macros.<locals>.<listcomp>r0���r2���r���r=���r���� get_macrosU���s����z(flags_from_pkgconfig.<locals>.get_macrosc�����������������S���s���dd��|�����D��S�)Nc�����������������S���s$���g�|�]}|��d��s|��d�s|�qS�)r'���r<���r)���r+���r���r���r���r.���_���s��� �zBflags_from_pkgconfig.<locals>.get_other_cflags.<locals>.<listcomp>r0���r2���r���r���r����get_other_cflags^���s����z.flags_from_pkgconfig.<locals>.get_other_cflagsc�����������������S���s���dd��|�����D��S�)Nc�����������������S���s$���g�|�]}|��d��s|��d�s|�qS�)r5���r7���r)���r+���r���r���r���r.���c���s��� �z@flags_from_pkgconfig.<locals>.get_other_libs.<locals>.<listcomp>r0���r2���r���r���r����get_other_libsb���s����z,flags_from_pkgconfig.<locals>.get_other_libsc��������������������sF���t����}t|�d�}t|�d�}��|��|��|��|��|��|�d�S�)Nz--cflagsz--libs)Zinclude_dirsZlibrary_dirsZ librariesZ define_macrosZextra_compile_argsZextra_link_args)r����getfilesystemencodingr&���)r!���ZfseZ all_cflagsZall_libs�r4���r8���r6���r>���r?���r@���r���r����kwargsg���s���� �z$flags_from_pkgconfig.<locals>.kwargs)r ���)ZlibsrC����retr!���Z lib_flagsr���rB���r����flags_from_pkgconfig<���s���� rE���) r���r���r����errorr���r ���rA���r&���rE���r���r���r���r����<module>���s���"