Browse Source

sys/info: add easy way of getting the MacOS version

Laytan Laats 1 year ago
parent
commit
e896efdaeb
2 changed files with 11 additions and 4 deletions
  1. 2 0
      core/sys/info/platform_darwin.odin
  2. 9 4
      core/sys/info/sysinfo.odin

+ 2 - 0
core/sys/info/platform_darwin.odin

@@ -76,6 +76,8 @@ init_os_version :: proc () {
 	os_version.minor = rel.darwin.y
 	os_version.patch = rel.darwin.z
 
+	macos_version = transmute(Version)rel.release.version
+
 	strings.write_string(&b, rel.os_name)
 	if match == .Exact || match == .Nearest {
 		strings.write_rune(&b, ' ')

+ 9 - 4
core/sys/info/sysinfo.odin

@@ -8,6 +8,9 @@ os_version: OS_Version
 ram:        RAM
 gpus:       []GPU
 
+// Only on MacOS, contains the actual MacOS version, while the `os_version` contains the kernel version.
+macos_version: Version
+
 OS_Version_Platform :: enum {
 	Unknown,
 	Windows,
@@ -19,12 +22,14 @@ OS_Version_Platform :: enum {
 	NetBSD,
 }
 
+Version :: struct {
+	major, minor, patch: int,
+}
+
 OS_Version :: struct {
 	platform: OS_Version_Platform,
 
-	major:     int,
-	minor:     int,
-	patch:     int,
+	using _:   Version,
 	build:     [2]int,
 	version:   string,
 
@@ -42,4 +47,4 @@ GPU :: struct {
 	vendor_name: string,
 	model_name:  string,
 	total_ram:   int,
-}
+}