authorgravatar for marc@tiehu.isMarc Tiehuis <marc@tiehu.is> 2018-04-13 20:12:30+12:00
committergravatar for marc@tiehu.isMarc Tiehuis <marc@tiehu.is> 2018-04-13 20:12:30+12:00
logb946982e90c88d0c23cfb2e819f58ce8ff9af617
treea401226da3939a452d78fd7b0b4efee9bca7e322
parent7fe1c7c04fd30e7bf5e95296c634fd04a9c6ec6b

Use builtin Arch/Os/Environ


1 files changed, 30 insertions(+), 140 deletions(-)

src-self-hosted/main.zig+30-140
...@@ -704,156 +704,46 @@ fn cmdFmt(allocator: &Allocator, args: []const []const u8) !void {...@@ -704,156 +704,46 @@ fn cmdFmt(allocator: &Allocator, args: []const []const u8) !void {
704704
705// cmd:targets /////////////////////////////////////////////////////////////////////////////////////705// cmd:targets /////////////////////////////////////////////////////////////////////////////////////
706706
707// TODO: comptime '@fields' for iteration here instead so we are always in sync.
708const Os = builtin.Os;
709pub const os_list = []const Os {
710 Os.freestanding,
711 Os.ananas,
712 Os.cloudabi,
713 Os.dragonfly,
714 Os.freebsd,
715 Os.fuchsia,
716 Os.ios,
717 Os.kfreebsd,
718 Os.linux,
719 Os.lv2,
720 Os.macosx,
721 Os.netbsd,
722 Os.openbsd,
723 Os.solaris,
724 Os.windows,
725 Os.haiku,
726 Os.minix,
727 Os.rtems,
728 Os.nacl,
729 Os.cnk,
730 Os.aix,
731 Os.cuda,
732 Os.nvcl,
733 Os.amdhsa,
734 Os.ps4,
735 Os.elfiamcu,
736 Os.tvos,
737 Os.watchos,
738 Os.mesa3d,
739 Os.contiki,
740 Os.zen,
741};
742
743const Arch = builtin.Arch;
744pub const arch_list = []const Arch {
745 Arch.armv8_2a,
746 Arch.armv8_1a,
747 Arch.armv8,
748 Arch.armv8r,
749 Arch.armv8m_baseline,
750 Arch.armv8m_mainline,
751 Arch.armv7,
752 Arch.armv7em,
753 Arch.armv7m,
754 Arch.armv7s,
755 Arch.armv7k,
756 Arch.armv7ve,
757 Arch.armv6,
758 Arch.armv6m,
759 Arch.armv6k,
760 Arch.armv6t2,
761 Arch.armv5,
762 Arch.armv5te,
763 Arch.armv4t,
764 Arch.aarch64,
765 Arch.aarch64_be,
766 Arch.avr,
767 Arch.bpfel,
768 Arch.bpfeb,
769 Arch.hexagon,
770 Arch.mips,
771 Arch.mipsel,
772 Arch.mips64,
773 Arch.mips64el,
774 Arch.msp430,
775 Arch.nios2,
776 Arch.powerpc,
777 Arch.powerpc64,
778 Arch.powerpc64le,
779 Arch.r600,
780 Arch.amdgcn,
781 Arch.riscv32,
782 Arch.riscv64,
783 Arch.sparc,
784 Arch.sparcv9,
785 Arch.sparcel,
786 Arch.s390x,
787 Arch.tce,
788 Arch.tcele,
789 Arch.thumb,
790 Arch.thumbeb,
791 Arch.i386,
792 Arch.x86_64,
793 Arch.xcore,
794 Arch.nvptx,
795 Arch.nvptx64,
796 Arch.le32,
797 Arch.le64,
798 Arch.amdil,
799 Arch.amdil64,
800 Arch.hsail,
801 Arch.hsail64,
802 Arch.spir,
803 Arch.spir64,
804 Arch.kalimbav3,
805 Arch.kalimbav4,
806 Arch.kalimbav5,
807 Arch.shave,
808 Arch.lanai,
809 Arch.wasm32,
810 Arch.wasm64,
811 Arch.renderscript32,
812 Arch.renderscript64,
813};
814
815const Environ = builtin.Environ;
816pub const environ_list = []const Environ {
817 Environ.unknown,
818 Environ.gnu,
819 Environ.gnuabi64,
820 Environ.gnueabi,
821 Environ.gnueabihf,
822 Environ.gnux32,
823 Environ.code16,
824 Environ.eabi,
825 Environ.eabihf,
826 Environ.android,
827 Environ.musl,
828 Environ.musleabi,
829 Environ.musleabihf,
830 Environ.msvc,
831 Environ.itanium,
832 Environ.cygnus,
833 Environ.amdopencl,
834 Environ.coreclr,
835 Environ.opencl,
836};
837
838fn cmdTargets(allocator: &Allocator, args: []const []const u8) !void {707fn cmdTargets(allocator: &Allocator, args: []const []const u8) !void {
839 try stdout.write("Architectures:\n");708 try stdout.write("Architectures:\n");
840 for (arch_list) |arch_tag| {709 {
841 const native_str = if (builtin.arch == arch_tag) " (native) " else "";710 comptime var i: usize = 0;
842 try stdout.print(" {}{}\n", @tagName(arch_tag), native_str);711 inline while (i < @memberCount(builtin.Arch)) : (i += 1) {
712 comptime const arch_tag = @memberName(builtin.Arch, i);
713 // NOTE: Cannot use empty string, see #918.
714 comptime const native_str =
715 if (comptime mem.eql(u8, arch_tag, @tagName(builtin.arch))) " (native)\n" else "\n";
716
717 try stdout.print(" {}{}", arch_tag, native_str);
718 }
843 }719 }
844 try stdout.write("\n");720 try stdout.write("\n");
845721
846 try stdout.write("Operating Systems:\n");722 try stdout.write("Operating Systems:\n");
847 for (os_list) |os_tag| {723 {
848 const native_str = if (builtin.os == os_tag) " (native) " else "";724 comptime var i: usize = 0;
849 try stdout.print(" {}{}\n", @tagName(os_tag), native_str);725 inline while (i < @memberCount(builtin.Os)) : (i += 1) {
726 comptime const os_tag = @memberName(builtin.Os, i);
727 // NOTE: Cannot use empty string, see #918.
728 comptime const native_str =
729 if (comptime mem.eql(u8, os_tag, @tagName(builtin.os))) " (native)\n" else "\n";
730
731 try stdout.print(" {}{}", os_tag, native_str);
732 }
850 }733 }
851 try stdout.write("\n");734 try stdout.write("\n");
852735
853 try stdout.write("Environments:\n");736 try stdout.write("Environments:\n");
854 for (environ_list) |environ_tag| {737 {
855 const native_str = if (builtin.environ == environ_tag) " (native) " else "";738 comptime var i: usize = 0;
856 try stdout.print(" {}{}\n", @tagName(environ_tag), native_str);739 inline while (i < @memberCount(builtin.Environ)) : (i += 1) {
740 comptime const environ_tag = @memberName(builtin.Environ, i);
741 // NOTE: Cannot use empty string, see #918.
742 comptime const native_str =
743 if (comptime mem.eql(u8, environ_tag, @tagName(builtin.environ))) " (native)\n" else "\n";
744
745 try stdout.print(" {}{}", environ_tag, native_str);
746 }
857 }747 }
858}748}
859749