"Fossies" - the Fresh Open Source Software Archive

Member "dmd2/src/phobos/std/system.d" (20 Nov 2020, 2854 Bytes) of package /linux/misc/dmd.2.094.2.linux.tar.xz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) D source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file.

    1 // Written in the D programming language.
    2 
    3 /**
    4  * Information about the target operating system, environment, and CPU.
    5  *
    6  *  Copyright: Copyright The D Language Foundation 2000 - 2011
    7  *  License:   $(HTTP www.boost.org/LICENSE_1_0.txt, Boost License 1.0).
    8  *  Authors:   $(HTTP digitalmars.com, Walter Bright) and
    9                $(HTTP jmdavisprog.com, Jonathan M Davis)
   10  *  Source:    $(PHOBOSSRC std/system.d)
   11  */
   12 module std.system;
   13 
   14 immutable
   15 {
   16     /++
   17         Operating system.
   18 
   19         Note:
   20             This is for cases where you need a value representing the OS at
   21             runtime. If you're doing something which should compile differently
   22             on different OSes, then please use `version (Windows)`,
   23             `version (linux)`, etc.
   24 
   25         See_Also:
   26             $(DDSUBLINK spec/version,PredefinedVersions, Predefined Versions)
   27       +/
   28     enum OS
   29     {
   30         win32 = 1, /// Microsoft 32 bit Windows systems
   31         win64,     /// Microsoft 64 bit Windows systems
   32         linux,     /// All Linux Systems, except for Android
   33         osx,       /// Mac OS X
   34         iOS,       /// iOS
   35         tvOS,      /// tvOS
   36         watchOS,   /// watchOS
   37         freeBSD,   /// FreeBSD
   38         netBSD,    /// NetBSD
   39         dragonFlyBSD, /// DragonFlyBSD
   40         solaris,   /// Solaris
   41         android,   /// Android
   42         otherPosix /// Other Posix Systems
   43     }
   44 
   45     /// The OS that the program was compiled for.
   46     version (Win32)        OS os = OS.win32;
   47     else version (Win64)   OS os = OS.win64;
   48     else version (Android) OS os = OS.android;
   49     else version (linux)   OS os = OS.linux;
   50     else version (OSX)     OS os = OS.osx;
   51     else version (iOS)     OS os = OS.iOS;
   52     else version (tvOS)    OS os = OS.tvOS;
   53     else version (watchOS) OS os = OS.watchOS;
   54     else version (FreeBSD) OS os = OS.freeBSD;
   55     else version (NetBSD)  OS os = OS.netBSD;
   56     else version (DragonFlyBSD) OS os = OS.dragonFlyBSD;
   57     else version (Posix)   OS os = OS.otherPosix;
   58     else static assert(0, "Unknown OS.");
   59 
   60     /++
   61         Byte order endianness.
   62 
   63         Note:
   64             This is intended for cases where you need to deal with endianness at
   65             runtime. If you're doing something which should compile differently
   66             depending on whether you're compiling on a big endian or little
   67             endian machine, then please use `version (BigEndian)` and
   68             `version (LittleEndian)`.
   69 
   70         See_Also:
   71             $(DDSUBLINK spec/version,PredefinedVersions, Predefined Versions)
   72       +/
   73     enum Endian
   74     {
   75         bigEndian,   /// Big endian byte order
   76         littleEndian /// Little endian byte order
   77     }
   78 
   79     /// The endianness that the program was compiled for.
   80     version (LittleEndian) Endian endian = Endian.littleEndian;
   81     else                  Endian endian = Endian.bigEndian;
   82 }
   83