3
\E ã @ sò d Z ddlZddlmZ ddlmZ ddlT dddd gZejj d
ƒddd
gZ
ejj dƒdddgZdd„ Zd+dd„Z
d,dd„Zd-dd„Zd.dd„Zd/dd„Zd0dd„Zd1d d!„Zd2d"d#„Zd3d$d%„Zd4d&d„Zd5d'd„Zd(d)„ Zed*k� rîeƒ dS )6z
dyld emulation
é N)Úframework_info)Ú
dylib_info)Ú*Ú dyld_findÚframework_findr r z~/Library/Frameworksz/Library/Frameworksz/Network/Library/Frameworksz/System/Library/Frameworksz~/libz/usr/local/libz/libz/usr/libc C s. | d krt j} | j|ƒ}|d kr$g S |jdƒS )Nú:)ÚosÚenvironÚgetÚsplit)ÚenvÚvarZrval© r ú,/usr/lib64/python3.6/ctypes/macholib/dyld.pyÚdyld_env s
r c C s | d krt j} | jdƒS )NZDYLD_IMAGE_SUFFIX)r r r
)r r r r Údyld_image_suffix' s r c C s
t | dƒS )NZDYLD_FRAMEWORK_PATH)r )r r r r Údyld_framework_path, s r c C s
t | dƒS )NZDYLD_LIBRARY_PATH)r )r r r r Údyld_library_path/ s r c C s
t | dƒS )NZDYLD_FALLBACK_FRAMEWORK_PATH)r )r r r r Údyld_fallback_framework_path2 s r c C s
t | dƒS )NZDYLD_FALLBACK_LIBRARY_PATH)r )r r r r Údyld_fallback_library_path5 s r c C s( t |ƒ}|dkr| S | |fdd„}|ƒ S )z>For a potential path iterator, add DYLD_IMAGE_SUFFIX semanticsNc s sJ xD| D ]<}|j dƒr2|d tdƒ … | d V n
|| V |V qW d S )Nz.dylib)ÚendswithÚlen)ÚiteratorÚsuffixÚpathr r r Ú_inject= s
z)dyld_image_suffix_search.