mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-06 15:48:51 +00:00
use #exists to provide good errors for common missing libraries
This commit is contained in:
@@ -8330,6 +8330,7 @@ gb_internal ExprKind check_basic_directive_expr(CheckerContext *c, Operand *o, A
|
|||||||
name == "assert" ||
|
name == "assert" ||
|
||||||
name == "defined" ||
|
name == "defined" ||
|
||||||
name == "config" ||
|
name == "config" ||
|
||||||
|
name == "exists" ||
|
||||||
name == "load" ||
|
name == "load" ||
|
||||||
name == "load_hash" ||
|
name == "load_hash" ||
|
||||||
name == "load_directory" ||
|
name == "load_directory" ||
|
||||||
|
|||||||
Vendored
+18
-4
@@ -1,9 +1,23 @@
|
|||||||
package cgltf
|
package cgltf
|
||||||
|
|
||||||
when ODIN_OS == .Windows { foreign import lib "lib/cgltf.lib" }
|
@(private)
|
||||||
else when ODIN_OS == .Linux { foreign import lib "lib/cgltf.a" }
|
LIB :: (
|
||||||
else when ODIN_OS == .Darwin { foreign import lib "lib/darwin/cgltf.a" }
|
"lib/cgltf.lib" when ODIN_OS == .Windows
|
||||||
else { foreign import lib "system:cgltf" }
|
else "lib/cgltf.a" when ODIN_OS == .Linux
|
||||||
|
else "lib/darwin/cgltf.a" when ODIN_OS == .Darwin
|
||||||
|
else ""
|
||||||
|
)
|
||||||
|
|
||||||
|
when LIB != "" {
|
||||||
|
when !#exists(LIB) {
|
||||||
|
// Windows library is shipped with the compiler, so a Windows specific message should not be needed.
|
||||||
|
#panic("Could not find the compiled cgltf library, it can be compiled by running `make -C \"" + ODIN_ROOT + "vendor/cgltf/src\"`")
|
||||||
|
}
|
||||||
|
|
||||||
|
foreign import lib { LIB }
|
||||||
|
} else {
|
||||||
|
foreign import lib "system:cgltf"
|
||||||
|
}
|
||||||
|
|
||||||
import "core:c"
|
import "core:c"
|
||||||
|
|
||||||
|
|||||||
Vendored
+8
-4
@@ -8,12 +8,16 @@ when MINIAUDIO_SHARED {
|
|||||||
#panic("Shared linking for miniaudio is not supported yet")
|
#panic("Shared linking for miniaudio is not supported yet")
|
||||||
}
|
}
|
||||||
|
|
||||||
when ODIN_OS == .Windows {
|
@(private)
|
||||||
foreign import lib "lib/miniaudio.lib"
|
LIB :: "lib/miniaudio.lib" when ODIN_OS == .Windows else "lib/miniaudio.a"
|
||||||
} else {
|
|
||||||
foreign import lib "lib/miniaudio.a"
|
when !#exists(LIB) {
|
||||||
|
// Windows library is shipped with the compiler, so a Windows specific message should not be needed.
|
||||||
|
#panic("Could not find the compiled miniaudio library, it can be compiled by running `make -C \"" + ODIN_ROOT + "vendor/miniaudio/src\"`")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
foreign import lib { LIB }
|
||||||
|
|
||||||
BINDINGS_VERSION_MAJOR :: 0
|
BINDINGS_VERSION_MAJOR :: 0
|
||||||
BINDINGS_VERSION_MINOR :: 11
|
BINDINGS_VERSION_MINOR :: 11
|
||||||
BINDINGS_VERSION_REVISION :: 21
|
BINDINGS_VERSION_REVISION :: 21
|
||||||
|
|||||||
+1
-5
@@ -2,11 +2,7 @@ package miniaudio
|
|||||||
|
|
||||||
import "core:c"
|
import "core:c"
|
||||||
|
|
||||||
when ODIN_OS == .Windows {
|
foreign import lib { LIB }
|
||||||
foreign import lib "lib/miniaudio.lib"
|
|
||||||
} else {
|
|
||||||
foreign import lib "lib/miniaudio.a"
|
|
||||||
}
|
|
||||||
|
|
||||||
/************************************************************************************************************************************************************
|
/************************************************************************************************************************************************************
|
||||||
*************************************************************************************************************************************************************
|
*************************************************************************************************************************************************************
|
||||||
|
|||||||
Vendored
+1
-5
@@ -2,11 +2,7 @@ package miniaudio
|
|||||||
|
|
||||||
import "core:c"
|
import "core:c"
|
||||||
|
|
||||||
when ODIN_OS == .Windows {
|
foreign import lib { LIB }
|
||||||
foreign import lib "lib/miniaudio.lib"
|
|
||||||
} else {
|
|
||||||
foreign import lib "lib/miniaudio.a"
|
|
||||||
}
|
|
||||||
|
|
||||||
/************************************************************************************************************************************************************
|
/************************************************************************************************************************************************************
|
||||||
|
|
||||||
|
|||||||
+1
-5
@@ -1,10 +1,6 @@
|
|||||||
package miniaudio
|
package miniaudio
|
||||||
|
|
||||||
when ODIN_OS == .Windows {
|
foreign import lib { LIB }
|
||||||
foreign import lib "lib/miniaudio.lib"
|
|
||||||
} else {
|
|
||||||
foreign import lib "lib/miniaudio.a"
|
|
||||||
}
|
|
||||||
|
|
||||||
import "core:c"
|
import "core:c"
|
||||||
|
|
||||||
|
|||||||
Vendored
+1
-5
@@ -2,11 +2,7 @@ package miniaudio
|
|||||||
|
|
||||||
import "core:c"
|
import "core:c"
|
||||||
|
|
||||||
when ODIN_OS == .Windows {
|
foreign import lib { LIB }
|
||||||
foreign import lib "lib/miniaudio.lib"
|
|
||||||
} else {
|
|
||||||
foreign import lib "lib/miniaudio.a"
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Delay
|
Delay
|
||||||
|
|||||||
Vendored
+1
-5
@@ -2,11 +2,7 @@ package miniaudio
|
|||||||
|
|
||||||
import "core:c"
|
import "core:c"
|
||||||
|
|
||||||
when ODIN_OS == .Windows {
|
foreign import lib { LIB }
|
||||||
foreign import lib "lib/miniaudio.lib"
|
|
||||||
} else {
|
|
||||||
foreign import lib "lib/miniaudio.a"
|
|
||||||
}
|
|
||||||
|
|
||||||
/************************************************************************************************************************************************************
|
/************************************************************************************************************************************************************
|
||||||
|
|
||||||
|
|||||||
Vendored
+1
-5
@@ -2,11 +2,7 @@ package miniaudio
|
|||||||
|
|
||||||
import "core:c"
|
import "core:c"
|
||||||
|
|
||||||
when ODIN_OS == .Windows {
|
foreign import lib { LIB }
|
||||||
foreign import lib "lib/miniaudio.lib"
|
|
||||||
} else {
|
|
||||||
foreign import lib "lib/miniaudio.a"
|
|
||||||
}
|
|
||||||
|
|
||||||
/************************************************************************************************************************************************************
|
/************************************************************************************************************************************************************
|
||||||
|
|
||||||
|
|||||||
Vendored
+1
-5
@@ -2,11 +2,7 @@ package miniaudio
|
|||||||
|
|
||||||
import "core:c"
|
import "core:c"
|
||||||
|
|
||||||
when ODIN_OS == .Windows {
|
foreign import lib { LIB }
|
||||||
foreign import lib "lib/miniaudio.lib"
|
|
||||||
} else {
|
|
||||||
foreign import lib "lib/miniaudio.a"
|
|
||||||
}
|
|
||||||
|
|
||||||
/**************************************************************************************************************************************************************
|
/**************************************************************************************************************************************************************
|
||||||
|
|
||||||
|
|||||||
Vendored
+1
-5
@@ -2,11 +2,7 @@ package miniaudio
|
|||||||
|
|
||||||
import "core:c"
|
import "core:c"
|
||||||
|
|
||||||
when ODIN_OS == .Windows {
|
foreign import lib { LIB }
|
||||||
foreign import lib "lib/miniaudio.lib"
|
|
||||||
} else {
|
|
||||||
foreign import lib "lib/miniaudio.a"
|
|
||||||
}
|
|
||||||
|
|
||||||
waveform_type :: enum c.int {
|
waveform_type :: enum c.int {
|
||||||
sine,
|
sine,
|
||||||
|
|||||||
Vendored
+1
-5
@@ -2,11 +2,7 @@ package miniaudio
|
|||||||
|
|
||||||
import "core:c"
|
import "core:c"
|
||||||
|
|
||||||
when ODIN_OS == .Windows {
|
foreign import lib { LIB }
|
||||||
foreign import lib "lib/miniaudio.lib"
|
|
||||||
} else {
|
|
||||||
foreign import lib "lib/miniaudio.a"
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Slot Allocator
|
Slot Allocator
|
||||||
|
|||||||
Vendored
+1
-5
@@ -2,11 +2,7 @@ package miniaudio
|
|||||||
|
|
||||||
import "core:c/libc"
|
import "core:c/libc"
|
||||||
|
|
||||||
when ODIN_OS == .Windows {
|
foreign import lib { LIB }
|
||||||
foreign import lib "lib/miniaudio.lib"
|
|
||||||
} else {
|
|
||||||
foreign import lib "lib/miniaudio.a"
|
|
||||||
}
|
|
||||||
|
|
||||||
MAX_LOG_CALLBACKS :: 4
|
MAX_LOG_CALLBACKS :: 4
|
||||||
|
|
||||||
|
|||||||
Vendored
+1
-5
@@ -2,11 +2,7 @@ package miniaudio
|
|||||||
|
|
||||||
import "core:c"
|
import "core:c"
|
||||||
|
|
||||||
when ODIN_OS == .Windows {
|
foreign import lib { LIB }
|
||||||
foreign import lib "lib/miniaudio.lib"
|
|
||||||
} else {
|
|
||||||
foreign import lib "lib/miniaudio.a"
|
|
||||||
}
|
|
||||||
|
|
||||||
/************************************************************************************************************************************************************
|
/************************************************************************************************************************************************************
|
||||||
|
|
||||||
|
|||||||
+1
-5
@@ -2,11 +2,7 @@ package miniaudio
|
|||||||
|
|
||||||
import "core:c"
|
import "core:c"
|
||||||
|
|
||||||
when ODIN_OS == .Windows {
|
foreign import lib { LIB }
|
||||||
foreign import lib "lib/miniaudio.lib"
|
|
||||||
} else {
|
|
||||||
foreign import lib "lib/miniaudio.a"
|
|
||||||
}
|
|
||||||
|
|
||||||
/************************************************************************************************************************************************************
|
/************************************************************************************************************************************************************
|
||||||
|
|
||||||
|
|||||||
+1
-5
@@ -1,10 +1,6 @@
|
|||||||
package miniaudio
|
package miniaudio
|
||||||
|
|
||||||
when ODIN_OS == .Windows {
|
foreign import lib { LIB }
|
||||||
foreign import lib "lib/miniaudio.lib"
|
|
||||||
} else {
|
|
||||||
foreign import lib "lib/miniaudio.a"
|
|
||||||
}
|
|
||||||
|
|
||||||
@(default_calling_convention="c", link_prefix="ma_")
|
@(default_calling_convention="c", link_prefix="ma_")
|
||||||
foreign lib {
|
foreign lib {
|
||||||
|
|||||||
Vendored
+1
-5
@@ -2,11 +2,7 @@ package miniaudio
|
|||||||
|
|
||||||
import "core:c"
|
import "core:c"
|
||||||
|
|
||||||
when ODIN_OS == .Windows {
|
foreign import lib { LIB }
|
||||||
foreign import lib "lib/miniaudio.lib"
|
|
||||||
} else {
|
|
||||||
foreign import lib "lib/miniaudio.a"
|
|
||||||
}
|
|
||||||
|
|
||||||
@(default_calling_convention="c", link_prefix="ma_")
|
@(default_calling_convention="c", link_prefix="ma_")
|
||||||
foreign lib {
|
foreign lib {
|
||||||
|
|||||||
Vendored
+1
-5
@@ -2,11 +2,7 @@ package miniaudio
|
|||||||
|
|
||||||
import "core:c"
|
import "core:c"
|
||||||
|
|
||||||
when ODIN_OS == .Windows {
|
foreign import lib { LIB }
|
||||||
foreign import lib "lib/miniaudio.lib"
|
|
||||||
} else {
|
|
||||||
foreign import lib "lib/miniaudio.a"
|
|
||||||
}
|
|
||||||
|
|
||||||
/************************************************************************************************************************************************************
|
/************************************************************************************************************************************************************
|
||||||
|
|
||||||
|
|||||||
Vendored
+19
-6
@@ -2,13 +2,26 @@ package stb_image
|
|||||||
|
|
||||||
import c "core:c/libc"
|
import c "core:c/libc"
|
||||||
|
|
||||||
|
@(private)
|
||||||
|
LIB :: (
|
||||||
|
"../lib/stb_image.lib" when ODIN_OS == .Windows
|
||||||
|
else "../lib/stb_image.a" when ODIN_OS == .Linux
|
||||||
|
else "../lib/darwin/stb_image.a" when ODIN_OS == .Darwin
|
||||||
|
else ""
|
||||||
|
)
|
||||||
|
|
||||||
|
when LIB != "" {
|
||||||
|
when !#exists(LIB) {
|
||||||
|
// The STB libraries are shipped with the compiler on Windows so a Windows specific message should not be needed.
|
||||||
|
#panic("Could not find the compiled STB libraries, they can be compiled by running `make -C \"" + ODIN_ROOT + "vendor/stb/src\"`")
|
||||||
|
}
|
||||||
|
|
||||||
|
foreign import stbi { LIB }
|
||||||
|
} else {
|
||||||
|
foreign import stbi "system:stb_image"
|
||||||
|
}
|
||||||
|
|
||||||
#assert(size_of(c.int) == size_of(b32))
|
#assert(size_of(c.int) == size_of(b32))
|
||||||
|
|
||||||
when ODIN_OS == .Windows { foreign import stbi "../lib/stb_image.lib" }
|
|
||||||
else when ODIN_OS == .Linux { foreign import stbi "../lib/stb_image.a" }
|
|
||||||
else when ODIN_OS == .Darwin { foreign import stbi "../lib/darwin/stb_image.a" }
|
|
||||||
else { foreign import stbi "system:stb_image" }
|
|
||||||
|
|
||||||
#assert(size_of(b32) == size_of(c.int))
|
#assert(size_of(b32) == size_of(c.int))
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|||||||
+17
-4
@@ -2,11 +2,24 @@ package stb_image
|
|||||||
|
|
||||||
import c "core:c/libc"
|
import c "core:c/libc"
|
||||||
|
|
||||||
when ODIN_OS == .Windows { foreign import lib "../lib/stb_image_resize.lib" }
|
@(private)
|
||||||
else when ODIN_OS == .Linux { foreign import lib "../lib/stb_image_resize.a" }
|
RESIZE_LIB :: (
|
||||||
else when ODIN_OS == .Darwin { foreign import lib "../lib/darwin/stb_image_resize.a" }
|
"../lib/stb_image_resize.lib" when ODIN_OS == .Windows
|
||||||
else { foreign import lib "system:stb_image_resize" }
|
else "../lib/stb_image_resize.a" when ODIN_OS == .Linux
|
||||||
|
else "../lib/darwin/stb_image_resize.a" when ODIN_OS == .Darwin
|
||||||
|
else ""
|
||||||
|
)
|
||||||
|
|
||||||
|
when RESIZE_LIB != "" {
|
||||||
|
when !#exists(RESIZE_LIB) {
|
||||||
|
// The STB libraries are shipped with the compiler on Windows so a Windows specific message should not be needed.
|
||||||
|
#panic("Could not find the compiled STB libraries, they can be compiled by running `make -C \"" + ODIN_ROOT + "vendor/stb/src\"`")
|
||||||
|
}
|
||||||
|
|
||||||
|
foreign import lib { RESIZE_LIB }
|
||||||
|
} else {
|
||||||
|
foreign import lib "system:stb_image_resize"
|
||||||
|
}
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
|
|||||||
+17
-4
@@ -2,11 +2,24 @@ package stb_image
|
|||||||
|
|
||||||
import c "core:c/libc"
|
import c "core:c/libc"
|
||||||
|
|
||||||
when ODIN_OS == .Windows { foreign import stbiw "../lib/stb_image_write.lib" }
|
@(private)
|
||||||
else when ODIN_OS == .Linux { foreign import stbiw "../lib/stb_image_write.a" }
|
WRITE_LIB :: (
|
||||||
else when ODIN_OS == .Darwin { foreign import stbiw "../lib/darwin/stb_image_write.a" }
|
"../lib/stb_image_write.lib" when ODIN_OS == .Windows
|
||||||
else { foreign import stbiw "system:stb_image_write" }
|
else "../lib/stb_image_write.a" when ODIN_OS == .Linux
|
||||||
|
else "../lib/darwin/stb_image_write.a" when ODIN_OS == .Darwin
|
||||||
|
else ""
|
||||||
|
)
|
||||||
|
|
||||||
|
when WRITE_LIB != "" {
|
||||||
|
when !#exists(WRITE_LIB) {
|
||||||
|
// The STB libraries are shipped with the compiler on Windows so a Windows specific message should not be needed.
|
||||||
|
#panic("Could not find the compiled STB libraries, they can be compiled by running `make -C \"" + ODIN_ROOT + "vendor/stb/src\"`")
|
||||||
|
}
|
||||||
|
|
||||||
|
foreign import stbiw { WRITE_LIB }
|
||||||
|
} else {
|
||||||
|
foreign import stbiw "system:stb_image_write"
|
||||||
|
}
|
||||||
|
|
||||||
write_func :: proc "c" (ctx: rawptr, data: rawptr, size: c.int)
|
write_func :: proc "c" (ctx: rawptr, data: rawptr, size: c.int)
|
||||||
|
|
||||||
|
|||||||
+17
-4
@@ -4,10 +4,23 @@ import "core:c"
|
|||||||
|
|
||||||
#assert(size_of(b32) == size_of(c.int))
|
#assert(size_of(b32) == size_of(c.int))
|
||||||
|
|
||||||
when ODIN_OS == .Windows { foreign import lib "../lib/stb_rect_pack.lib" }
|
@(private)
|
||||||
else when ODIN_OS == .Linux { foreign import lib "../lib/stb_rect_pack.a" }
|
LIB :: (
|
||||||
else when ODIN_OS == .Darwin { foreign import lib "../lib/darwin/stb_rect_pack.a" }
|
"../lib/stb_rect_pack.lib" when ODIN_OS == .Windows
|
||||||
else { foreign import lib "system:stb_rect_pack" }
|
else "../lib/stb_rect_pack.a" when ODIN_OS == .Linux
|
||||||
|
else "../lib/darwin/stb_rect_pack.a" when ODIN_OS == .Darwin
|
||||||
|
else ""
|
||||||
|
)
|
||||||
|
|
||||||
|
when LIB != "" {
|
||||||
|
when !#exists(LIB) {
|
||||||
|
#panic("Could not find the compiled STB libraries, they can be compiled by running `make -C \"" + ODIN_ROOT + "vendor/stb/src\"`")
|
||||||
|
}
|
||||||
|
|
||||||
|
foreign import lib { LIB }
|
||||||
|
} else {
|
||||||
|
foreign import lib "system:stb_rect_pack"
|
||||||
|
}
|
||||||
|
|
||||||
Coord :: distinct c.int
|
Coord :: distinct c.int
|
||||||
_MAXVAL :: max(Coord)
|
_MAXVAL :: max(Coord)
|
||||||
|
|||||||
+16
-4
@@ -3,11 +3,23 @@ package stb_truetype
|
|||||||
import c "core:c"
|
import c "core:c"
|
||||||
import stbrp "vendor:stb/rect_pack"
|
import stbrp "vendor:stb/rect_pack"
|
||||||
|
|
||||||
when ODIN_OS == .Windows { foreign import stbtt "../lib/stb_truetype.lib" }
|
@(private)
|
||||||
else when ODIN_OS == .Linux { foreign import stbtt "../lib/stb_truetype.a" }
|
LIB :: (
|
||||||
else when ODIN_OS == .Darwin { foreign import stbtt "../lib/darwin/stb_truetype.a" }
|
"../lib/stb_truetype.lib" when ODIN_OS == .Windows
|
||||||
else { foreign import stbtt "system:stb_truetype" }
|
else "../lib/stb_truetype.a" when ODIN_OS == .Linux
|
||||||
|
else "../lib/darwin/stb_truetype.a" when ODIN_OS == .Darwin
|
||||||
|
else ""
|
||||||
|
)
|
||||||
|
|
||||||
|
when LIB != "" {
|
||||||
|
when !#exists(LIB) {
|
||||||
|
#panic("Could not find the compiled STB libraries, they can be compiled by running `make -C \"" + ODIN_ROOT + "vendor/stb/src\"`")
|
||||||
|
}
|
||||||
|
|
||||||
|
foreign import stbtt { LIB }
|
||||||
|
} else {
|
||||||
|
foreign import stbtt "system:stb_truetype"
|
||||||
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|||||||
Vendored
+15
-5
@@ -2,13 +2,23 @@ package stb_vorbis
|
|||||||
|
|
||||||
import c "core:c/libc"
|
import c "core:c/libc"
|
||||||
|
|
||||||
|
@(private)
|
||||||
|
LIB :: (
|
||||||
|
"../lib/stb_vorbis.lib" when ODIN_OS == .Windows
|
||||||
|
else "../lib/stb_vorbis.a" when ODIN_OS == .Linux
|
||||||
|
else "../lib/darwin/stb_vorbis.a" when ODIN_OS == .Darwin
|
||||||
|
else ""
|
||||||
|
)
|
||||||
|
|
||||||
when ODIN_OS == .Windows { foreign import lib "../lib/stb_vorbis.lib" }
|
when LIB != "" {
|
||||||
else when ODIN_OS == .Linux { foreign import lib "../lib/stb_vorbis.a" }
|
when !#exists(LIB) {
|
||||||
else when ODIN_OS == .Darwin { foreign import lib "../lib/darwin/stb_vorbis.a" }
|
#panic("Could not find the compiled STB libraries, they can be compiled by running `make -C \"" + ODIN_ROOT + "vendor/stb/src\"`")
|
||||||
else { foreign import lib "system:stb_vorbis" }
|
}
|
||||||
|
|
||||||
|
|
||||||
|
foreign import lib { LIB }
|
||||||
|
} else {
|
||||||
|
foreign import lib "system:stb_vorbis"
|
||||||
|
}
|
||||||
|
|
||||||
/////////// THREAD SAFETY
|
/////////// THREAD SAFETY
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user