- const exe_options = b.addOptions();
- exe.addOptions("build_options", exe_options);
- const single_threaded = b.option(bool, "single-threaded", "Build a single threaded Executable");
- const pie = b.option(bool, "pie", "Build a Position Independent Executable");
- const enable_tracy = b.option(bool, "enable_tracy", "Whether tracy should be enabled.") orelse false;
- const coverage = b.option(bool, "generate_coverage", "Generate coverage data with kcov") orelse false;
- const coverage_output_dir = b.option([]const u8, "coverage_output_dir", "Output directory for coverage data") orelse b.pathJoin(&.{ b.install_prefix, "kcov" });
- const test_filter = b.option([]const u8, "test-filter", "Skip tests that do not match filter");
- exe_options.addOption(shared.ZigVersion, "data_version", b.option(shared.ZigVersion, "data_version", "The Zig version your compiler is.") orelse .master);
- exe_options.addOption(std.log.Level, "log_level", b.option(std.log.Level, "log_level", "The Log Level to be used.") orelse .info);
- exe_options.addOption(bool, "enable_tracy", enable_tracy);
- exe_options.addOption(bool, "enable_tracy_allocation", b.option(bool, "enable_tracy_allocation", "Enable using TracyAllocator to monitor allocations.") orelse enable_tracy);
- exe_options.addOption(bool, "enable_tracy_callstack", b.option(bool, "enable_tracy_callstack", "Enable callstack graphs.") orelse enable_tracy);
- exe_options.addOption(bool, "enable_failing_allocator", b.option(bool, "enable_failing_allocator", "Whether to use a randomly failing allocator.") orelse false);
- exe_options.addOption(u32, "enable_failing_allocator_likelihood", b.option(u32, "enable_failing_allocator_likelihood", "The chance that an allocation will fail is `1/likelihood`") orelse 256);
- exe_options.addOption(bool, "use_gpa", b.option(bool, "use_gpa", "Good for debugging") orelse (optimize == .Debug));