miniaudio: add version mismatch check

This commit is contained in:
Laytan Laats
2024-02-14 21:55:15 +01:00
parent a7f0275093
commit e931c82b9b
+30 -1
View File
@@ -14,8 +14,37 @@ when ODIN_OS == .Windows {
foreign import lib "lib/miniaudio.a"
}
handle :: distinct rawptr
BINDINGS_VERSION_MAJOR :: 0
BINDINGS_VERSION_MINOR :: 11
BINDINGS_VERSION_REVISION :: 21
BINDINGS_VERSION :: [3]u32{BINDINGS_VERSION_MAJOR, BINDINGS_VERSION_MINOR, BINDINGS_VERSION_REVISION}
BINDINGS_VERSION_STRING :: "0.11.21"
@(init)
version_check :: proc() {
v: [3]u32
version(&v.x, &v.y, &v.z)
if v != BINDINGS_VERSION {
buf: [1024]byte
n := copy(buf[:], "miniaudio version mismatch: ")
n += copy(buf[n:], "bindings are for version ")
n += copy(buf[n:], BINDINGS_VERSION_STRING)
n += copy(buf[n:], ", but version ")
n += copy(buf[n:], string(version_string()))
n += copy(buf[n:], " is linked, make sure to compile the correct miniaudio version by going to `vendor/miniaudio/src` ")
when ODIN_OS == .Windows {
n += copy(buf[n:], "and executing `build.bat`")
} else {
n += copy(buf[n:], "and executing `make`")
}
panic(string(buf[:n]))
}
}
handle :: distinct rawptr
/* SIMD alignment in bytes. Currently set to 32 bytes in preparation for future AVX optimizations. */
SIMD_ALIGNMENT :: 32