#pragma once
#if defined(ET_USE_LIBDL)
#include <dlfcn.h>
#endif
static constexpr const char* DYNAMIC_LIBRARY_NOT_SUPPORTED = "NOT_SUPPORTED";
static constexpr const char* DYNAMIC_LIBRARY_NOT_FOUND = "NOT_FOUND";
extern "C" {
inline const char* et_pal_get_shared_library_name(const void* addr) {
#if defined(ET_USE_LIBDL)
Dl_info info;
if (dladdr(addr, &info) && info.dli_fname) {
return info.dli_fname;
} else {
return DYNAMIC_LIBRARY_NOT_FOUND;
}
#endif
(void)addr;
return DYNAMIC_LIBRARY_NOT_SUPPORTED;
}
}