From e931c82b9bbb977bd9e19b941e86d8603a571d79 Mon Sep 17 00:00:00 2001 From: Laytan Laats Date: Wed, 14 Feb 2024 21:55:15 +0100 Subject: [PATCH] miniaudio: add version mismatch check --- vendor/miniaudio/common.odin | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/vendor/miniaudio/common.odin b/vendor/miniaudio/common.odin index abc108cf9..b38599d96 100644 --- a/vendor/miniaudio/common.odin +++ b/vendor/miniaudio/common.odin @@ -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