U ,a@s dZddlZddlmZddlmZddlTzddlmZWne k rXddZYnXd d d d gZ ej d dddgZ ej ddddgZddZd.ddZd/ddZd0ddZd1ddZd2dd Zd3d!d"Zd4d#d$Zd5d%d&Zd6d'd(Zd7d)d Zd8d*d Zd+d,Zed-kredS)9z dyld emulation N)framework_info) dylib_info)*) _dyld_shared_cache_contains_pathcGstdSN)NotImplementedError)argsr 9/opt/alt/python38/lib64/python3.8/ctypes/macholib/dyld.pyr sr dyld_findframework_findrrz~/Library/Frameworksz/Library/Frameworksz/Network/Library/Frameworksz/System/Library/Frameworksz~/libz/usr/local/libz/libz/usr/libcCs.|dkrtj}||}|dkr$gS|dS)N:)osenvirongetsplit)envvarZrvalr r r dyld_env$s  rcCs|dkrtj}|dS)NZDYLD_IMAGE_SUFFIX)rrrrr r r dyld_image_suffix,srcCs t|dS)NZDYLD_FRAMEWORK_PATHrrr r r dyld_framework_path1srcCs t|dS)NZDYLD_LIBRARY_PATHrrr r r dyld_library_path4srcCs t|dS)NZDYLD_FALLBACK_FRAMEWORK_PATHrrr r r dyld_fallback_framework_path7srcCs t|dS)NZDYLD_FALLBACK_LIBRARY_PATHrrr r r dyld_fallback_library_path:srcCs(t|}|dkr|S||fdd}|S)z>For a potential path iterator, add DYLD_IMAGE_SUFFIX semanticsNcssF|D]<}|dr0|dtd |dVn ||V|VqdS)Nz.dylib)endswithlen)iteratorsuffixpathr r r _injectBs   z)dyld_image_suffix_search.._inject)r)rrrr!r r r dyld_image_suffix_search=s r"ccs\t|}|dk r2t|D]}tj||dVqt|D]}tj|tj|Vq:dSNname)rrrr joinrbasename)r$r frameworkr r r r dyld_override_searchKs   r(ccs2|dr.|dk r.tj||tddVdS)Nz@executable_path/) startswithrr r%r)r$executable_pathr r r dyld_executable_path_search\sr+ccs|Vt|}|dk rsL