DynXX-C
Loading...
Searching...
No Matches
Macro.h
Go to the documentation of this file.
1#pragma once
2
3#if defined(__cplusplus)
4#define DYNXX_EXTERN_C_BEGIN extern "C" {
5#define DYNXX_EXTERN_C_END }
6#define DYNXX_EXPORT extern "C"
7#if defined(__EMSCRIPTEN__)
8 #define DYNXX_EXPORT_AUTO DYNXX_EXPORT EMSCRIPTEN_KEEPALIVE
9#else
10 #define DYNXX_EXPORT_AUTO DYNXX_EXPORT
11#endif
12#else
13#define DYNXX_EXTERN_C_BEGIN
14#define DYNXX_EXTERN_C_END
15#endif
16
17#if defined(_MSC_VER)
18 #define DYNXX_FORCE_USED __pragma(comment(linker, "/include:" __FUNCSIG__))
19 #define DYNXX_EXPORT_SYMBOL __declspec(dllexport)
20#elif defined(__GNUC__) || defined(__clang__)
21 #define DYNXX_FORCE_USED __attribute__((used))
22 #define DYNXX_EXPORT_SYMBOL __attribute__((visibility("default")))
23#else
24 #define DYNXX_FORCE_USED
25 #define DYNXX_EXPORT_SYMBOL
26#endif
27#define DYNXX_DONTSTRIP DYNXX_FORCE_USED DYNXX_EXPORT_SYMBOL
28
29#if defined(_MSC_VER)
30 #define DYNXX_DEPRECATED(msg) __declspec(deprecated(msg))
31#elif defined(__GNUC__) || defined(__clang__)
32 #define DYNXX_DEPRECATED(msg) __attribute__((__deprecated__(msg)))
33#else
34 #define DYNXX_DEPRECATED(msg)
35#endif
36
37#if !defined(DYNXX_OUT)
38#define DYNXX_OUT
39#endif