mirror of
https://github.com/thunderbrewhq/system.git
synced 2026-02-03 16:39:07 +00:00
feat(build): add zig system detection
This commit is contained in:
parent
f886ab5bc3
commit
823f0da277
1 changed files with 162 additions and 0 deletions
162
zig/system.zig
Normal file
162
zig/system.zig
Normal file
|
|
@ -0,0 +1,162 @@
|
||||||
|
const std = @import("std");
|
||||||
|
|
||||||
|
pub fn add_defines(b: *std.Build, compile_step: *std.build.Step.Compile) {
|
||||||
|
const target = b.standardTargetOptions(.{});
|
||||||
|
const t = target.result;
|
||||||
|
|
||||||
|
// define size of pointer
|
||||||
|
var is64Bits = true;
|
||||||
|
var is32Bits = false;
|
||||||
|
|
||||||
|
switch (t.cpu.arch) {
|
||||||
|
.x86 => {
|
||||||
|
is32Bits = true;
|
||||||
|
is64Bits = false;
|
||||||
|
},
|
||||||
|
|
||||||
|
.x86_64 => {
|
||||||
|
is32Bits = false;
|
||||||
|
is64Bits = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (is64Bits) {
|
||||||
|
compile_step.defineCMacro("WHOA_ARCH_64", "1");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (is32Bits) {
|
||||||
|
compile_step.defineCMacro("WHOA_ARCH_32", "1");
|
||||||
|
}
|
||||||
|
|
||||||
|
// define operating system
|
||||||
|
var isDarwin = false;
|
||||||
|
var isLinux = false;
|
||||||
|
var isWindows = false;
|
||||||
|
|
||||||
|
switch (t.os.tag) {
|
||||||
|
.windows => {
|
||||||
|
isWindows = true;
|
||||||
|
},
|
||||||
|
|
||||||
|
.macos => {
|
||||||
|
isDarwin = true;
|
||||||
|
},
|
||||||
|
|
||||||
|
.linux => {
|
||||||
|
isLinux = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isWindows) {
|
||||||
|
compile_step.defineCMacro("WHOA_SYSTEM_WIN", "1");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isDarwin) {
|
||||||
|
compile_step.defineCMacro("WHOA_SYSTEM_MAC", "1");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isLinux) {
|
||||||
|
compile_step.defineCMacro("WHOA_SYSTEM_LINUX", "1");
|
||||||
|
}
|
||||||
|
|
||||||
|
// define operating system version
|
||||||
|
|
||||||
|
const WHOA_WIN_UNK = "9999";
|
||||||
|
const WHOA_WIN_XP = "510";
|
||||||
|
const WHOA_WIN_VISTA = "600";
|
||||||
|
const WHOA_WIN_7 = "610";
|
||||||
|
const WHOA_WIN_8 = "620";
|
||||||
|
const WHOA_WIN_8_1 = "630";
|
||||||
|
const WHOA_WIN_10 = "1000";
|
||||||
|
const WHOA_MAC_UNK = "9999";
|
||||||
|
const WHOA_MAC_10_8 = "1008";
|
||||||
|
const WHOA_MAC_10_9 = "1009";
|
||||||
|
const WHOA_MAC_10_10 = "1010";
|
||||||
|
const WHOA_MAC_10_11 = "1011";
|
||||||
|
const WHOA_MAC_10_12 = "1012";
|
||||||
|
const WHOA_MAC_10_13 = "1013";
|
||||||
|
const WHOA_MAC_10_14 = "1014";
|
||||||
|
const WHOA_MAC_10_15 = "1015";
|
||||||
|
const WHOA_MAC_11_0 = "1100";
|
||||||
|
const WHOA_LINUX_UNK = "9999";
|
||||||
|
|
||||||
|
var system_version = "9999";
|
||||||
|
|
||||||
|
if (isWindows) {
|
||||||
|
switch (t.os.semver.min.major) {
|
||||||
|
5 => {
|
||||||
|
system_version = WHOA_WIN_XP;
|
||||||
|
},
|
||||||
|
|
||||||
|
6 => {
|
||||||
|
system_version = WHOA_WIN_VISTA;
|
||||||
|
},
|
||||||
|
|
||||||
|
7 => {
|
||||||
|
system_version = WHOA_WIN_7;
|
||||||
|
},
|
||||||
|
|
||||||
|
8 => {
|
||||||
|
system_version = WHOA_WIN_8;
|
||||||
|
|
||||||
|
if (t.os.semver.min.minor == 1) {
|
||||||
|
system_version = WHOA_WIN_8_1;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
10 => {
|
||||||
|
system_version = WHOA_WIN_10;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if (isDarwin) {
|
||||||
|
system_version = WHOA_MAC_UNK;
|
||||||
|
|
||||||
|
switch (t.os.semver.min.major) {
|
||||||
|
10 => {
|
||||||
|
system_version = WHOA_MAC_10_8;
|
||||||
|
|
||||||
|
switch (t.os.semver.min.minor) {
|
||||||
|
8 => {
|
||||||
|
system_version = WHOA_MAC_10_8;
|
||||||
|
},
|
||||||
|
|
||||||
|
9 => {
|
||||||
|
system_version = WHOA_MAC_10_9;
|
||||||
|
},
|
||||||
|
|
||||||
|
10 => {
|
||||||
|
system_version = WHOA_MAC_10_10;
|
||||||
|
},
|
||||||
|
|
||||||
|
11 => {
|
||||||
|
system_version = WHOA_MAC_10_11;
|
||||||
|
},
|
||||||
|
|
||||||
|
12 => {
|
||||||
|
system_version = WHOA_MAC_10_12;
|
||||||
|
},
|
||||||
|
|
||||||
|
13 => {
|
||||||
|
system_version = WHOA_MAC_10_13;
|
||||||
|
},
|
||||||
|
|
||||||
|
14 => {
|
||||||
|
system_version = WHOA_MAC_10_14;
|
||||||
|
},
|
||||||
|
|
||||||
|
15 => {
|
||||||
|
system_version = WHOA_MAC_10_15;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
11 => {
|
||||||
|
system_version = WHOA_MAC_11_0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if (isLinux) {
|
||||||
|
system_version = WHOA_LINUX_UNK;
|
||||||
|
}
|
||||||
|
|
||||||
|
compile_step.defineCMacro("WHOA_SYSTEM_VERSION", system_version);
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue