| ... | @@ -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 { |
| 704 | | 704 | |
| 705 | // cmd:targets ///////////////////////////////////////////////////////////////////////////////////// | 705 | // cmd:targets ///////////////////////////////////////////////////////////////////////////////////// |
| 706 | | 706 | |
| 707 | // TODO: comptime '@fields' for iteration here instead so we are always in sync. | | |
| 708 | const Os = builtin.Os; | | |
| 709 | pub 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 | | | |
| 743 | const Arch = builtin.Arch; | | |
| 744 | pub 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 | | | |
| 815 | const Environ = builtin.Environ; | | |
| 816 | pub 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 | | | |
| 838 | fn cmdTargets(allocator: &Allocator, args: []const []const u8) !void { | 707 | fn 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"); |
| 845 | | 721 | |
| 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"); |
| 852 | | 735 | |
| 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 | } |
| 859 | | 749 | |