#pragma once
#define EXPOSE_API __attribute__((visibility("default")))
#define SETUP_SYMBOL_FOR_LOAD_LIBRARY(handle, symbol, func_ptr, func_type, \
msg) \
do { \
func_ptr = (func_type)dlsym(handle, symbol); \
const char *dlsym_error = dlerror(); \
if (dlsym_error) { \
LOG(WARN) << "Load fn `" << symbol << "` error in " << msg \
<< dlsym_error; \
is_usable_ = false; \
return; \
} \
} while (0)