const std = @import("std");
/// Zig version. When writing code that supports multiple versions of Zig, prefer
/// feature detection (i.e. with `@hasDecl` or `@hasField`) over version checks.
pub const zig_version = std.SemanticVersion.parse(zig_version_string) catch unreachable;
pub const zig_version_string = "0.11.0";
pub const zig_backend = std.builtin.CompilerBackend.stage2_llvm;

pub const output_mode = std.builtin.OutputMode.Exe;
pub const link_mode = std.builtin.LinkMode.Static;
pub const is_test = true;
pub const single_threaded = false;
pub const abi = std.Target.Abi.musl;
pub const cpu: std.Target.Cpu = .{
    .arch = .aarch64,
    .model = &std.Target.aarch64.cpu.neoverse_n1,
    .features = std.Target.aarch64.featureSet(&[_]std.Target.aarch64.Feature{
        .aes,
        .ccpp,
        .contextidr_el2,
        .crc,
        .crypto,
        .dotprod,
        .el2vmsa,
        .el3,
        .enable_select_opt,
        .fp_armv8,
        .fullfp16,
        .fuse_adrp_add,
        .fuse_aes,
        .lor,
        .lse,
        .lsl_fast,
        .neon,
        .pan,
        .pan_rwv,
        .perfmon,
        .ras,
        .rcpc,
        .rdm,
        .sha2,
        .spe,
        .ssbs,
        .uaops,
        .use_postra_scheduler,
        .v8_1a,
        .v8_2a,
        .v8a,
        .vh,
    }),
};
pub const os = std.Target.Os{
    .tag = .linux,
    .version_range = .{ .linux = .{
        .range = .{
            .min = .{
                .major = 6,
                .minor = 1,
                .patch = 36,
            },
            .max = .{
                .major = 6,
                .minor = 1,
                .patch = 36,
            },
        },
        .glibc = .{
            .major = 2,
            .minor = 19,
            .patch = 0,
        },
    }},
};
pub const target = std.Target{
    .cpu = cpu,
    .os = os,
    .abi = abi,
    .ofmt = object_format,
};
pub const object_format = std.Target.ObjectFormat.elf;
pub const mode = std.builtin.Mode.Debug;
pub const link_libc = false;
pub const link_libcpp = false;
pub const have_error_return_tracing = true;
pub const valgrind_support = true;
pub const sanitize_thread = false;
pub const position_independent_code = false;
pub const position_independent_executable = false;
pub const strip_debug_info = false;
pub const code_model = std.builtin.CodeModel.default;
pub const omit_frame_pointer = false;
pub var test_functions: []const std.builtin.TestFn = undefined; // overwritten later

pub const test_io_mode = .blocking;