Pārlūkot izejas kodu

Utilize `foreign import` constant strings for foreign imports

gingerBill 1 gadu atpakaļ
vecāks
revīzija
606608c02b
3 mainītis faili ar 36 papildinājumiem un 114 dzēšanām
  1. 8 34
      vendor/raylib/raygui.odin
  2. 23 66
      vendor/raylib/raylib.odin
  3. 5 14
      vendor/raylib/rlgl.odin

+ 8 - 34
vendor/raylib/raygui.odin

@@ -5,47 +5,21 @@ import "core:c"
 RAYGUI_SHARED :: #config(RAYGUI_SHARED, false)
 
 when ODIN_OS == .Windows {
-	when RAYGUI_SHARED {
-		foreign import lib {
-			"windows/rayguidll.lib",
-		}
-	} else {
-		foreign import lib {
-			"windows/raygui.lib",
-		}
+	foreign import lib {
+		"windows/rayguidll.lib" when RAYGUI_SHARED else "windows/raygui.lib",
 	}
 } else when ODIN_OS == .Linux  {
-	when RAYGUI_SHARED {
-		foreign import lib "linux/libraygui.so"
-	} else {
-		foreign import lib "linux/libraygui.a"
+	foreign import lib {
+		"linux/libraygui.so" when RAYGUI_SHARED else "linux/libraygui.a"
 	}
 } else when ODIN_OS == .Darwin {
 	when ODIN_ARCH == .arm64 {
-		when RAYGUI_SHARED {
-			foreign import lib {
-				"macos-arm64/libraygui.dylib",
-			}
-		} else {
-			foreign import lib {
-				"macos-arm64/libraygui.a",
-				// "system:Cocoa.framework",
-				// "system:OpenGL.framework",
-				// "system:IOKit.framework",
-			}
+		foreign import lib {
+			"macos-arm64/libraygui.dylib" when RAYGUI_SHARED else "macos-arm64/libraygui.a",
 		}
 	} else {
-		when RAYGUI_SHARED {
-			foreign import lib {
-				"macos/libraygui.dylib",
-			}
-		} else {
-			foreign import lib {
-				"macos/libraygui.a",
-				// "system:Cocoa.framework",
-				// "system:OpenGL.framework",
-				// "system:IOKit.framework",
-			}
+		foreign import lib {
+			"macos/libraygui.dylib" when RAYGUI_SHARED else "macos/libraygui.a",
 		}
 	}
 } else {

+ 23 - 66
vendor/raylib/raylib.odin

@@ -97,76 +97,33 @@ MAX_TEXT_BUFFER_LENGTH :: #config(RAYLIB_MAX_TEXT_BUFFER_LENGTH, 1024)
 RAYLIB_SHARED :: #config(RAYLIB_SHARED, false)
 
 when ODIN_OS == .Windows {
-	when RAYLIB_SHARED {
-		@(extra_linker_flags="/NODEFAULTLIB:msvcrt")
-		foreign import lib {
-			"windows/raylibdll.lib",
-			"system:Winmm.lib",
-			"system:Gdi32.lib",
-			"system:User32.lib",
-			"system:Shell32.lib",
-		}
-	} else {
-		@(extra_linker_flags="/NODEFAULTLIB:libcmt")
-		foreign import lib {
-			"windows/raylib.lib",
-			"system:Winmm.lib",
-			"system:Gdi32.lib",
-			"system:User32.lib",
-			"system:Shell32.lib",
-		}
+	_WINDOWS_LIB :: "windows/raylib" +" dll" when RAYLIB_SHARED else "" + ".lib"
+	@(extra_linker_flags="/NODEFAULTLIB:msvcrt")
+	foreign import lib {
+		"windows/raylibdll.lib" when RAYLIB_SHARED else "windows/raylib.lib" ,
+		"system:Winmm.lib",
+		"system:Gdi32.lib",
+		"system:User32.lib",
+		"system:Shell32.lib",
 	}
 } else when ODIN_OS == .Linux  {
-	when RAYLIB_SHARED {
-		foreign import lib { 
-			// Note(bumbread): I'm not sure why in `linux/` folder there are
-			// multiple copies of raylib.so, but since these bindings are for
-			// particular version of the library, I better specify it. Ideally,
-			// though, it's best specified in terms of major (.so.4)
-			"linux/libraylib.so.500",
-			"system:dl",
-			"system:pthread",
-		}
-	} else {
-		foreign import lib { 
-			"linux/libraylib.a",
-			"system:dl",
-			"system:pthread",
-		}
+	foreign import lib {
+		// Note(bumbread): I'm not sure why in `linux/` folder there are
+		// multiple copies of raylib.so, but since these bindings are for
+		// particular version of the library, I better specify it. Ideally,
+		// though, it's best specified in terms of major (.so.4)
+		"linux/libraylib.so.500" when RAYLIB_SHARED else "linux/libraylib.a",
+		"system:dl",
+		"system:pthread",
 	}
 } else when ODIN_OS == .Darwin {
-	when ODIN_ARCH == .arm64 {
-		when RAYLIB_SHARED {
-			foreign import lib {
-				"macos-arm64/libraylib.500.dylib",
-				"system:Cocoa.framework",
-				"system:OpenGL.framework",
-				"system:IOKit.framework",
-			}
-		} else {
-			foreign import lib {
-				"macos-arm64/libraylib.a",
-				"system:Cocoa.framework",
-				"system:OpenGL.framework",
-				"system:IOKit.framework",
-			}
-		}
-	} else {
-		when RAYLIB_SHARED {
-			foreign import lib {
-				"macos/libraylib.500.dylib",
-				"system:Cocoa.framework",
-				"system:OpenGL.framework",
-				"system:IOKit.framework",
-			}
-		} else {
-			foreign import lib {
-				"macos/libraylib.a",
-				"system:Cocoa.framework",
-				"system:OpenGL.framework",
-				"system:IOKit.framework",
-			}
-		}
+	foreign import lib {
+		"macos" +
+			"-arm64" when ODIN_ARCH == .arm64 else "" +
+			"/libraylib" + ".500.dylib" when RAYLIB_SHARED else ".a",
+		"system:Cocoa.framework",
+		"system:OpenGL.framework",
+		"system:IOKit.framework",
 	}
 } else {
 	foreign import lib "system:raylib"

+ 5 - 14
vendor/raylib/rlgl.odin

@@ -122,20 +122,11 @@ when ODIN_OS == .Windows {
 } else when ODIN_OS == .Linux  {
 	foreign import lib "linux/libraylib.a"
 } else when ODIN_OS == .Darwin {
-	when ODIN_ARCH == .arm64 {
-		foreign import lib {
-			"macos-arm64/libraylib.a",
-			"system:Cocoa.framework",
-			"system:OpenGL.framework",
-			"system:IOKit.framework",
-		}
-	} else {
-		foreign import lib {
-			"macos/libraylib.a",
-			"system:Cocoa.framework",
-			"system:OpenGL.framework",
-			"system:IOKit.framework",
-		}
+	foreign import lib {
+		"macos-arm64/libraylib.a" when ODIN_ARCH == .arm64 else "macos/libraylib.a",
+		"system:Cocoa.framework",
+		"system:OpenGL.framework",
+		"system:IOKit.framework",
 	}
 } else {
 	foreign import lib "system:raylib"