zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit 5974f95cb75921d973caa38e049deaebc7a7b628 (tree)
parent 0c2dde2fda29e84be25296d0b65bcb92dc9d4946
Author: Andrew Kelley <andrew@ziglang.org>
Date:   Tue, 21 Jan 2020 01:48:25 -0500

add cpus and cpu features to zig targets

Diffstat:
DBRANCH_TODO | 5-----
Msrc-self-hosted/print_targets.zig | 35+++++++++++++++++++++++++++++++++++
2 files changed, 35 insertions(+), 5 deletions(-)

diff --git a/BRANCH_TODO b/BRANCH_TODO @@ -1,5 +0,0 @@ -Finish these thigns before merging teh branch - - * zig targets - - use non-reflection based cpu detection? - diff --git a/src-self-hosted/print_targets.zig b/src-self-hosted/print_targets.zig @@ -177,6 +177,41 @@ pub fn cmdTargets( } try jws.endArray(); + try jws.objectField("cpus"); + try jws.beginObject(); + inline for (@typeInfo(Target.Arch).Union.fields) |field| { + try jws.objectField(field.name); + try jws.beginObject(); + const arch = @unionInit(Target.Arch, field.name, undefined); + for (arch.allCpus()) |cpu| { + try jws.objectField(cpu.name); + try jws.beginArray(); + for (arch.allFeaturesList()) |feature, i| { + if (cpu.features.isEnabled(@intCast(u8, i))) { + try jws.arrayElem(); + try jws.emitString(feature.name); + } + } + try jws.endArray(); + } + try jws.endObject(); + } + try jws.endObject(); + + try jws.objectField("cpuFeatures"); + try jws.beginObject(); + inline for (@typeInfo(Target.Arch).Union.fields) |field| { + try jws.objectField(field.name); + try jws.beginArray(); + const arch = @unionInit(Target.Arch, field.name, undefined); + for (arch.allFeaturesList()) |feature| { + try jws.arrayElem(); + try jws.emitString(feature.name); + } + try jws.endArray(); + } + try jws.endObject(); + try jws.objectField("native"); try jws.beginObject(); {