Browse Source

Added WASM libs for raylib and raygui. Added them to the foreign import blocks, with optional ways to override them. These overrides can be used to use alterantive libs when using for example emscripten.

Karl Zylinski 7 months ago
parent
commit
dc1b75b6c3

+ 5 - 0
vendor/raylib/raygui.odin

@@ -3,6 +3,7 @@ package raylib
 import "core:c"
 import "core:c"
 
 
 RAYGUI_SHARED :: #config(RAYGUI_SHARED, false)
 RAYGUI_SHARED :: #config(RAYGUI_SHARED, false)
+RAYGUI_WASM_LIB :: #config(RAYGUI_WASM_LIB, "wasm/libraygui.a")
 
 
 when ODIN_OS == .Windows {
 when ODIN_OS == .Windows {
 	foreign import lib {
 	foreign import lib {
@@ -22,6 +23,10 @@ when ODIN_OS == .Windows {
 			"macos/libraygui.dylib" when RAYGUI_SHARED else "macos/libraygui.a",
 			"macos/libraygui.dylib" when RAYGUI_SHARED else "macos/libraygui.a",
 		}
 		}
 	}
 	}
+} else when ODIN_ARCH == .wasm32 || ODIN_ARCH == .wasm64p32 {
+	foreign import lib {
+		RAYGUI_WASM_LIB,
+	}
 } else {
 } else {
 	foreign import lib "system:raygui"
 	foreign import lib "system:raygui"
 }
 }

+ 5 - 0
vendor/raylib/raylib.odin

@@ -100,6 +100,7 @@ MAX_TEXT_BUFFER_LENGTH :: #config(RAYLIB_MAX_TEXT_BUFFER_LENGTH, 1024)
 #assert(size_of(rune) == size_of(c.int))
 #assert(size_of(rune) == size_of(c.int))
 
 
 RAYLIB_SHARED :: #config(RAYLIB_SHARED, false)
 RAYLIB_SHARED :: #config(RAYLIB_SHARED, false)
+RAYLIB_WASM_LIB :: #config(RAYLIB_WASM_LIB, "wasm/libraylib.a")
 
 
 when ODIN_OS == .Windows {
 when ODIN_OS == .Windows {
 	@(extra_linker_flags="/NODEFAULTLIB:" + ("msvcrt" when RAYLIB_SHARED else "libcmt"))
 	@(extra_linker_flags="/NODEFAULTLIB:" + ("msvcrt" when RAYLIB_SHARED else "libcmt"))
@@ -127,6 +128,10 @@ when ODIN_OS == .Windows {
 		"system:OpenGL.framework",
 		"system:OpenGL.framework",
 		"system:IOKit.framework",
 		"system:IOKit.framework",
 	} 
 	} 
+} else when ODIN_ARCH == .wasm32 || ODIN_ARCH == .wasm64p32 {
+	foreign import lib {
+		RAYLIB_WASM_LIB,
+	}
 } else {
 } else {
 	foreign import lib "system:raylib"
 	foreign import lib "system:raylib"
 }
 }

+ 5 - 0
vendor/raylib/rlgl/rlgl.odin

@@ -113,6 +113,7 @@ import rl "../."
 VERSION :: "5.0"
 VERSION :: "5.0"
 
 
 RAYLIB_SHARED :: #config(RAYLIB_SHARED, false)
 RAYLIB_SHARED :: #config(RAYLIB_SHARED, false)
+RAYLIB_WASM_LIB :: #config(RAYLIB_WASM_LIB, "../wasm/libraylib.a")
 
 
 // Note: We pull in the full raylib library. If you want a truly stand-alone rlgl, then:
 // Note: We pull in the full raylib library. If you want a truly stand-alone rlgl, then:
 // - Compile a separate rlgl library and use that in the foreign import blocks below.
 // - Compile a separate rlgl library and use that in the foreign import blocks below.
@@ -145,6 +146,10 @@ when ODIN_OS == .Windows {
 		"system:OpenGL.framework",
 		"system:OpenGL.framework",
 		"system:IOKit.framework",
 		"system:IOKit.framework",
 	} 
 	} 
+} else when ODIN_ARCH == .wasm32 || ODIN_ARCH == .wasm64p32 {
+	foreign import lib {
+		RAYLIB_WASM_LIB,
+	}
 } else {
 } else {
 	foreign import lib "system:raylib"
 	foreign import lib "system:raylib"
 }
 }

BIN
vendor/raylib/wasm/libraygui.a


BIN
vendor/raylib/wasm/libraylib.a