| ... | ... | @@ -704,156 +704,46 @@ fn cmdFmt(allocator: &Allocator, args: []const []const u8) !void { |
| 704 | 704 | |
| 705 | 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 | 707 | fn cmdTargets(allocator: &Allocator, args: []const []const u8) !void { |
| 839 | 708 | try stdout.write("Architectures:\n"); |
| 840 | | for (arch_list) |arch_tag| { |
| 841 | | const native_str = if (builtin.arch == arch_tag) " (native) " else ""; |
| 842 | | try stdout.print(" {}{}\n", @tagName(arch_tag), native_str); |
| 709 | { |
| 710 | comptime var i: usize = 0; |
| 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 | 720 | try stdout.write("\n"); |
| 845 | 721 | |
| 846 | 722 | try stdout.write("Operating Systems:\n"); |
| 847 | | for (os_list) |os_tag| { |
| 848 | | const native_str = if (builtin.os == os_tag) " (native) " else ""; |
| 849 | | try stdout.print(" {}{}\n", @tagName(os_tag), native_str); |
| 723 | { |
| 724 | comptime var i: usize = 0; |
| 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 | 734 | try stdout.write("\n"); |
| 852 | 735 | |
| 853 | 736 | try stdout.write("Environments:\n"); |
| 854 | | for (environ_list) |environ_tag| { |
| 855 | | const native_str = if (builtin.environ == environ_tag) " (native) " else ""; |
| 856 | | try stdout.print(" {}{}\n", @tagName(environ_tag), native_str); |
| 737 | { |
| 738 | comptime var i: usize = 0; |
| 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 | |