mirror of
https://github.com/dlang/phobos.git
synced 2025-04-27 13:40:20 +03:00
73 lines
2.3 KiB
D
73 lines
2.3 KiB
D
// Written in the D programming language.
|
|
|
|
/**
|
|
* Information about the target operating system, environment, and CPU.
|
|
*
|
|
* Macros:
|
|
* WIKI = Phobos/StdSystem
|
|
*
|
|
* Copyright: Copyright Digital Mars 2000 - 2011
|
|
* License: $(WEB www.boost.org/LICENSE_1_0.txt, Boost License 1.0).
|
|
* Authors: $(WEB digitalmars.com, Walter Bright) and Jonathan M Davis
|
|
* Source: $(PHOBOSSRC std/_system.d)
|
|
*/
|
|
module std.system;
|
|
|
|
immutable
|
|
{
|
|
/++
|
|
Operating system.
|
|
|
|
Note:
|
|
This is for cases where you need a value representing the OS at
|
|
runtime. If you're doing something which should compile differently
|
|
on different OSes, then please use $(D version(Windows)),
|
|
$(D version(linux)), etc.
|
|
|
|
See_Also:
|
|
<a href="../version.html#PredefinedVersions">Predefined Versions</a>
|
|
+/
|
|
enum OS
|
|
{
|
|
win32 = 1, /// Microsoft 32 bit Windows systems
|
|
win64, /// Microsoft 64 bit Windows systems
|
|
linux, /// All Linux Systems
|
|
osx, /// Mac OS X
|
|
freeBSD, /// FreeBSD
|
|
solaris, /// Solaris
|
|
otherPosix /// Other Posix Systems
|
|
}
|
|
|
|
/// The OS that the program was compiled for.
|
|
version(Win32) OS os = OS.win32;
|
|
else version(Win64) OS os = OS.win64;
|
|
else version(linux) OS os = OS.linux;
|
|
else version(OSX) OS os = OS.osx;
|
|
else version(FreeBSD) OS os = OS.freeBSD;
|
|
else version(Posix) OS os = OS.otherPosix;
|
|
else static assert(0, "Unknown OS.");
|
|
|
|
/++
|
|
Byte order endianness.
|
|
|
|
Note:
|
|
This is intended for cases where you need to deal with endianness at
|
|
runtime. If you're doing something which should compile differently
|
|
depending on whether you're compiling on a big endian or little
|
|
endian machine, then please use $(D version(BigEndian)) and
|
|
$(D version(LittleEndian)).
|
|
|
|
See_Also:
|
|
<a href="../version.html#PredefinedVersions">Predefined Versions</a>
|
|
+/
|
|
enum Endian
|
|
{
|
|
bigEndian, /// Big endian byte order
|
|
littleEndian /// Little endian byte order
|
|
}
|
|
|
|
/// The endianness that the program was compiled for.
|
|
version(LittleEndian) Endian endian = Endian.littleEndian;
|
|
else Endian endian = Endian.bigEndian;
|
|
}
|
|
|