16#define BJ_VERSION_MAJOR(version) (((version) >> 22U) & 0x3FFU)
19#define BJ_VERSION_MINOR(version) (((version) >> 12U) & 0x3FFU)
22#define BJ_VERSION_PATCH(version) ((version) & 0xFFFU)
29#define BJ_MAKE_VERSION(major, minor, patch) \
30 ((((uint32_t)(major)) << 22U) | (((uint32_t)(minor)) << 12U) | ((uint32_t)(patch)))
32#define BJ_VERSION_MAJOR_NUMBER 0
33#define BJ_VERSION_MINOR_NUMBER 1
34#define BJ_VERSION_PATCH_NUMBER 0
37#define BJ_VERSION BJ_MAKE_VERSION(BJ_VERSION_MAJOR_NUMBER, BJ_VERSION_MINOR_NUMBER, BJ_VERSION_PATCH_NUMBER)
40#define BJ_NAME "Banjo"
43#if defined(__EMSCRIPTEN__)
44# define BJ_OS_EMSCRIPTEN
45#elif defined(WIN32) || defined(_WIN32) || defined(__WIN32__)
47#elif defined(__linux__) || defined(__gnu_linux__)
51# include <TargetConditionals.h>
54# elif TARGET_IPHONE_SIMULATOR
56# define BJ_OS_IOS_SIMULATOR
61# define BJ_OS_APPLE_UNKNOWN
72#if defined(__EMSCRIPTEN__)
73 #include <emscripten/version.h>
74 #define BJ_COMPILER_EMSCRIPTEN
75 #define BJ_COMPILER_NAME "Emscripten"
76 #define BJ_COMPILER_VERSION __EMSCRIPTEN_major__
77#elif defined(__GNUC__) && !defined(__clang__)
78 #define BJ_COMPILER_GCC
79 #define BJ_COMPILER_NAME "GCC"
80 #define BJ_COMPILER_VERSION __GNUC__
81#elif defined(__clang__)
82 #define BJ_COMPILER_CLANG
83 #define BJ_COMPILER_NAME "Clang"
84 #define BJ_COMPILER_VERSION __clang_major__
85#elif defined(_MSC_VER)
86 #define BJ_COMPILER_MSVC
87 #define BJ_COMPILER_NAME "MSVC"
88 #define BJ_COMPILER_VERSION _MSC_VER
89#elif defined(__MINGW32__)
90 #define BJ_COMPILER_MINGW
91 #define BJ_COMPILER_NAME "MinGW"
92 #define BJ_COMPILER_VERSION 0
94 #define BJ_COMPILER_UNKNOWN
95 #define BJ_COMPILER_NAME "Unknown"
96 #define BJ_COMPILER_VERSION 0
100# define BJ_BUILD_RELEASE
102# define BJ_BUILD_DEBUG
107# define BANJO_NO_EXPORT
112# define BANJO_EXPORT __declspec(dllexport)
114# define BANJO_EXPORT __declspec( dllexport )
117# ifndef BANJO_NO_EXPORT
118# define BANJO_NO_EXPORT
123# define BANJO_EXPORT __attribute__((visibility("default")))
125# define BANJO_EXPORT __attribute__((visibility("default")))
128# ifndef BANJO_NO_EXPORT
129# define BANJO_NO_EXPORT __attribute__((visibility("hidden")))
154#define BJ_FALSE ((bj_bool)0)
165#define BJ_TRUE ((bj_bool)1)
bj_bool feature_emscripten
Compiled with support for Emscripten.
Definition api.h:175
uint32_t version
Built version (BJ_VERSION)
Definition api.h:170
bj_bool feature_win32
Compiled with support for Win32 windows.
Definition api.h:174
bj_bool feature_x11
Compiled with support for Win32 windows.
Definition api.h:176
const char * compiler_name
Compiler C-String name.
Definition api.h:171
const char * p_name
API Name (BJ_NAME)
Definition api.h:169
bj_bool debug
Built with debug information.
Definition api.h:173
bj_bool config_checks_abort
When checks feature is on, a failed check will abort execution.
Definition api.h:179
bj_bool config_pedantic
Banjo runtime will make costly extra checks.
Definition api.h:182
bj_bool feature_mme
Compiled with support for Windows Multimedia Extension (for audio).
Definition api.h:177
int compiler_version
Compiler version specifier.
Definition api.h:172
bj_bool feature_alsa
Compiled with support for ALSA (for audio).
Definition api.h:178
bj_bool config_checks_log
If checks feature is on, failed check with log.
Definition api.h:180
bj_bool config_log_color
Banjo logs will have colored output.
Definition api.h:181
const bj_build_info * bj_get_build_info(void)
Returns the build information of the runtime Banjo binaries.
uint32_t bj_bool
Boolean type used throughout the BJ codebase.
Definition api.h:143
Structure holding build information of the binary.
Definition api.h:168