Files
fx/core/include/blue/core/misc.h
Max Wash 6c1ae190d3 core: don't use declspec(dllexport) when compiling/linking to static library
this is required due to function names being decorated differently by MSVC when building a .dll file
2024-11-14 21:59:14 +00:00

32 lines
790 B
C

#ifndef BLUELIB_MISB_H_
#define BLUELIB_MISB_H_
#ifndef _Nonnull
#define _Nonnull
#endif
#define b_unbox(type, box, member) \
((type *_Nonnull)((box) ? (uintptr_t)(box) - (offsetof(type, member)) : 0))
#define z__b_merge_(a, b) a##b
#define z__b_label_(a) z__b_merge_(__unique_name_, a)
#define z__b_unique_name() z__b_label_(__LINE__)
#define z__b_numargs(arg_type, ...) \
(sizeof((arg_type[]) {__VA_ARGS__}) / sizeof(arg_type))
#ifdef _MSC_VER
#ifdef BLUELIB_STATIC
#define BLUE_API extern
#else
#ifdef BLUELIB_EXPORT
#define BLUE_API extern __declspec(dllexport)
#else
#define BLUE_API extern __declspec(dllimport)
#endif
#endif
#else
#define BLUE_API extern
#endif
#endif // B_MISB_H_