Browse Source

Add option to link to glfw3 dynamically

bumbread 2 years ago
parent
commit
0d65c6dcf7
3 changed files with 25 additions and 7 deletions
  1. 17 6
      vendor/glfw/bindings/bindings.odin
  2. 3 0
      vendor/glfw/constants.odin
  3. 5 1
      vendor/glfw/native_windows.odin

+ 17 - 6
vendor/glfw/bindings/bindings.odin

@@ -3,13 +3,24 @@ package glfw_bindings
 import "core:c"
 import vk "vendor:vulkan"
 
+GLFW_DYNAMIC :: #config(GLFW_DYNAMIC, false)
+
 when ODIN_OS == .Windows {
-	foreign import glfw { 
-		"../lib/glfw3_mt.lib",
-		"system:user32.lib", 
-		"system:gdi32.lib", 
-		"system:shell32.lib",
-	} 
+	when GLFW_DYNAMIC {
+		foreign import glfw {
+			"../lib/glfw3dll.lib",
+			"system:user32.lib", 
+			"system:gdi32.lib", 
+			"system:shell32.lib",
+		}
+	} else {
+		foreign import glfw {
+			"../lib/glfw3mt.lib",
+			"system:user32.lib",
+			"system:gdi32.lib",
+			"system:shell32.lib",
+		}
+	}
 } else when ODIN_OS == .Linux {
 	// TODO: Add the billion-or-so static libs to link to in linux
 	foreign import glfw "system:glfw"

+ 3 - 0
vendor/glfw/constants.odin

@@ -1,5 +1,8 @@
 package glfw
 
+/* Config */
+GLFW_DYNAMIC :: #config(GLFW_DYNAMIC, false)
+
 /*** Constants ***/
 /* Versions */
 VERSION_MAJOR    :: 3

+ 5 - 1
vendor/glfw/native_windows.odin

@@ -4,7 +4,11 @@ package glfw
 
 import win32 "core:sys/windows"
 
-foreign import glfw { "lib/glfw3_mt.lib", "system:user32.lib", "system:gdi32.lib", "system:shell32.lib" }
+when GLFW_DYNAMIC {
+    foreign import glfw { "lib/glfw3dll.lib", "system:user32.lib", "system:gdi32.lib", "system:shell32.lib" }
+} else {
+    foreign import glfw { "lib/glfw3_mt.lib", "system:user32.lib", "system:gdi32.lib", "system:shell32.lib" }
+}
 
 @(default_calling_convention="c", link_prefix="glfw")
 foreign glfw {