U
e5d @ s d Z ddlZddlmZ ddlmZ ddlT zddlmZ W n e k
rX dd ZY nX d d
ddgZ
ejd
dddgZ
ejddddgZdd Zd.ddZd/ddZd0ddZd1ddZd2dd Zd3d!d"Zd4d#d$Zd5d%d&Zd6d'd(Zd7d)d Zd8d*d
Zd+d, Zed-kre dS )9z
dyld emulation
N)framework_info)
dylib_info)*) _dyld_shared_cache_contains_pathc G s t d S )N)NotImplementedError)args r ,/usr/lib64/python3.8/ctypes/macholib/dyld.pyr s r dyld_findframework_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} | |}|d kr$g S |dS )N:)osenvirongetsplit)envvarZrvalr r r dyld_env$ s
r c C s | d krt j} | dS )NZDYLD_IMAGE_SUFFIX)r
r r r r r r dyld_image_suffix, s r c C s
t | dS )NZDYLD_FRAMEWORK_PATHr r r r r dyld_framework_path1 s r c C s
t | dS )NZDYLD_LIBRARY_PATHr r r r r dyld_library_path4 s r c C s
t | dS )NZDYLD_FALLBACK_FRAMEWORK_PATHr r r r r dyld_fallback_framework_path7 s r c C s
t | dS )NZDYLD_FALLBACK_LIBRARY_PATHr r r r r dyld_fallback_library_path: s r c C s( t |}|dkr| S | |fdd}| S )z>For a potential path iterator, add DYLD_IMAGE_SUFFIX semanticsNc s sF | D ]<}| dr0|d td | d V n
|| V |V qd S )Nz.dylib)endswithlen)iteratorsuffixpathr r r _injectB s
z)dyld_image_suffix_search.