Querying runtime build information about the Banjo library.
Querying runtime build information about the Banjo library.This demonstrates how to introspect the Banjo library to discover its version, build configuration, available backends, and compiler information. Useful for debugging, diagnostics, and feature detection.
#include <stdio.h>
#define DESC(mode) printf("%c %s\n", info->mode ? '+' : '-', #mode)
int main(int argc, char* argv[]) {
(void)argc;
(void)argv;
char version_string[32] = {0};
printf("%s version %s (0x%08X) [%s] %s build\n",
info->
debug ?
"Debug" :
"Release"
);
DESC(backend_emscripten);
return 0;
}
General-purpose definitions for Banjo API.
#define DESC(mode)
Definition build_info.c:17
const char * name
API name (see BJ_NAME).
Definition api.h:222
uint32_t version
Packed API version (see BJ_VERSION).
Definition api.h:224
const char * compiler_name
Compiler name string.
Definition api.h:225
const char * variant
API name variant (see BJ_NAME_VARIANT).
Definition api.h:223
bj_bool debug
Non-zero if built with debug info.
Definition api.h:227
int compiler_version
Compiler version number.
Definition api.h:226
const struct bj_build_info * bj_build_information(void)
Get runtime build information for the loaded Banjo binaries.
Structure holding build information of the binary.
Definition api.h:221
Logging utility functions.
Portable main substitution and application callback facilities.
32-bit packed version storage following the SemVer standard.
size_t bj_format_version(char *buffer, size_t bufsize, uint32_t version)
Format a packed version number as a SemVer-compatible string.