| ... | @@ -448,6 +448,15 @@ const Emit = union(enum) { | ... | @@ -448,6 +448,15 @@ const Emit = union(enum) { |
| 448 | } | 448 | } |
| 449 | }; | 449 | }; |
| 450 | | 450 | |
| | 451 | fn optionalBoolEnvVar(arena: *Allocator, name: []const u8) !bool { |
| | 452 | if (std.process.getEnvVarOwned(arena, name)) |value| { |
| | 453 | return true; |
| | 454 | } else |err| switch (err) { |
| | 455 | error.EnvironmentVariableNotFound => return false, |
| | 456 | else => |e| return e, |
| | 457 | } |
| | 458 | } |
| | 459 | |
| 451 | fn optionalStringEnvVar(arena: *Allocator, name: []const u8) !?[]const u8 { | 460 | fn optionalStringEnvVar(arena: *Allocator, name: []const u8) !?[]const u8 { |
| 452 | if (std.process.getEnvVarOwned(arena, name)) |value| { | 461 | if (std.process.getEnvVarOwned(arena, name)) |value| { |
| 453 | return value; | 462 | return value; |
| ... | @@ -482,8 +491,8 @@ fn buildOutputType( | ... | @@ -482,8 +491,8 @@ fn buildOutputType( |
| 482 | var single_threaded = false; | 491 | var single_threaded = false; |
| 483 | var function_sections = false; | 492 | var function_sections = false; |
| 484 | var watch = false; | 493 | var watch = false; |
| 485 | var verbose_link = false; | 494 | var verbose_link = try optionalBoolEnvVar(arena, "ZIG_VERBOSE_LINK"); |
| 486 | var verbose_cc = false; | 495 | var verbose_cc = try optionalBoolEnvVar(arena, "ZIG_VERBOSE_CC"); |
| 487 | var verbose_tokenize = false; | 496 | var verbose_tokenize = false; |
| 488 | var verbose_ast = false; | 497 | var verbose_ast = false; |
| 489 | var verbose_ir = false; | 498 | var verbose_ir = false; |