diff dstep/internal/Version.d @ 16:19885b43130e

Huge update, the bridge actually works now
author Jacob Carlborg <doob@me.com>
date Sun, 03 Jan 2010 22:06:11 +0100
parents 07194b026fa4
children
line wrap: on
line diff
--- a/dstep/internal/Version.d	Mon Aug 03 15:31:48 2009 +0200
+++ b/dstep/internal/Version.d	Sun Jan 03 22:06:11 2010 +0100
@@ -6,4 +6,150 @@
  */
 module dstep.internal.Version;
 
-public import mambo.util.Version;
\ No newline at end of file
+
+template Version (char[] V)
+{
+	mixin(
+	"version(" ~ V ~ ")
+	{
+		const bool Version = true;
+	}
+	else
+	{
+		const bool Version = false;
+	}");
+}
+
+version (GNU)
+{
+	version (darwin)
+		version = OSX;
+	
+	static if ((void*).sizeof > int.sizeof)
+		version = D_LP64;
+}
+
+version (DigitalMars)
+	version (OSX)
+		version = darwin;
+
+//Compiler Vendors
+version (DigitalMars) const bool DigitalMars = true;
+else const bool DigitalMars = false;
+
+version (GNU) const bool GNU = true;
+else const bool GNU = false;
+
+version (LDC) const bool LDC = true;
+else const bool LDC = false;
+
+version (LLVM) const bool LLVM = true;
+else const bool LLVM = false;
+
+
+
+//Processors 
+version (PPC) const bool PPC = true;
+else const bool PPC = false;
+
+version (PPC64) const bool PPC64 = true;
+else const bool PPC64 = false;
+
+version (SPARC) const bool SPARC = true;
+else const bool SPARC = false;
+
+version (SPARC64) const bool SPARC64 = true;
+else const bool SPARC64 = false;
+
+version (X86) const bool X86 = true;
+else const bool X86 = false;
+
+version (X86_64) const bool X86_64 = true;
+else const bool X86_64 = false;
+
+
+
+//Operating Systems
+version (aix) const bool aix = true;
+else const bool aix = false;
+
+version (cygwin) const bool cygwin = true;
+else const bool cygwin = false;
+
+version (darwin) const bool darwin = true;
+else const bool darwin = false;
+
+version (OSX) const bool OSX = true;
+else const bool OSX = false;
+
+version (freebsd) const bool freebsd = true;
+else const bool freebsd = false;
+
+version (linux) const bool linux = true;
+else const bool linux = false;
+
+version (solaris) const bool solaris = true;
+else const bool solaris = false;
+
+version (Unix) const bool Unix = true;
+else const bool Unix = false;
+
+version (Win32) const bool Win32 = true;
+else const bool Win32 = false;
+
+version (Win64) const bool Win64 = true;
+else const bool Win64 = false;
+
+version (Windows) const bool Windows = true;
+else const bool Windows = false;
+
+
+
+//Rest
+version (BigEndian) const bool BigEndian = true;
+else const bool BigEndian = false;
+
+version (LittleEndian) const bool LittleEndian = true;
+else const bool LittleEndian = false;
+
+version (D_Coverage) const bool D_Coverage = true;
+else const bool D_Coverage = false;
+
+version (D_Ddoc) const bool D_Ddoc = true;
+else const bool D_Ddoc = false;
+
+version (D_InlineAsm_X86) const bool D_InlineAsm_X86 = true;
+else const bool D_InlineAsm_X86 = false;
+
+version (D_InlineAsm_X86_64) const bool D_InlineAsm_X86_64 = true;
+else const bool D_InlineAsm_X86_64 = false;
+
+version (D_LP64) const bool D_LP64 = true;
+else const bool D_LP64 = false;
+
+version (D_PIC) const bool D_PIC = true;
+else const bool D_PIC = false;
+
+version (GNU_BitsPerPointer32) const bool GNU_BitsPerPointer32 = true;
+else const bool GNU_BitsPerPointer32 = false;
+
+version (GNU_BitsPerPointer64) const bool GNU_BitsPerPointer64 = true;
+else const bool GNU_BitsPerPointer64 = false;
+
+version (all) const bool all = true;
+else const bool D_InlineAsm_X86_64 = false;
+
+version (none) const bool D_InlineAsm_X86_64 = true;
+else const bool none = false;
+
+version (Tango)
+{
+	const bool Tango = true;
+	const bool Phobos = false;
+}
+
+else
+{
+	const bool Tango = false;
+	const bool Phobos = true; 
+}
\ No newline at end of file