mirror of https://gitlab.com/basile.b/dexed.git
dastworx, define the bad versions
This commit is contained in:
parent
8cc08276db
commit
b5527845c4
|
@ -50,15 +50,128 @@ q{
|
|||
else version(unittest) log();
|
||||
};
|
||||
|
||||
// TODO: define accurately the list of bad versions
|
||||
version(linux)
|
||||
enum badVersions = ["none", "Windows", "Win32", "Win64", "OSX"];
|
||||
else version(Windows)
|
||||
enum badVersions = ["none", "linux", "OSX", "Posix",
|
||||
"FreeBSD", "Solaris"];
|
||||
else version(OSX)
|
||||
enum badVersions = ["none", "linux", "Windows", "Win32", "Win64"];
|
||||
else static assert(0);
|
||||
immutable string[] badVersions;
|
||||
|
||||
private enum predefinedVersions = [
|
||||
"AArch64",
|
||||
"AIX",
|
||||
"all",
|
||||
"Alpha",
|
||||
"Alpha_HardFloat",
|
||||
"Alpha_SoftFloat",
|
||||
"Android",
|
||||
"ARM",
|
||||
"ARM_HardFloat",
|
||||
"ARM_SoftFloat",
|
||||
"ARM_SoftFP",
|
||||
"ARM_Thumb",
|
||||
"assert",
|
||||
"BigEndian",
|
||||
"BSD",
|
||||
"CRuntime_Bionic",
|
||||
"CRuntime_DigitalMars",
|
||||
"CRuntime_Glibc",
|
||||
"CRuntime_Microsoft",
|
||||
"Cygwin",
|
||||
"DigitalMars",
|
||||
"DragonFlyBSD",
|
||||
"D_Coverage",
|
||||
"D_Ddoc",
|
||||
"D_HardFloat",
|
||||
"D_InlineAsm_X86",
|
||||
"D_InlineAsm_X86_64",
|
||||
"D_LP64",
|
||||
"D_NoBoundsChecks",
|
||||
"D_PIC",
|
||||
"D_SIMD",
|
||||
"D_SoftFloat",
|
||||
"D_Version2",
|
||||
"D_X32",
|
||||
"ELFv1",
|
||||
"ELFv2",
|
||||
"Epiphany",
|
||||
"FreeBSD",
|
||||
"FreeStanding",
|
||||
"GNU",
|
||||
"Haiku",
|
||||
"HPPA",
|
||||
"HPPA64",
|
||||
"Hurd",
|
||||
"IA64",
|
||||
"iOS",
|
||||
"LDC",
|
||||
"linux",
|
||||
"LittleEndian",
|
||||
"MinGW",
|
||||
"MIPS32",
|
||||
"MIPS64",
|
||||
"MIPS_EABI",
|
||||
"MIPS_HardFloat",
|
||||
"MIPS_N32",
|
||||
"MIPS_N64",
|
||||
"MIPS_O32",
|
||||
"MIPS_O64",
|
||||
"MIPS_SoftFloat",
|
||||
"NetBSD",
|
||||
"none",
|
||||
"NVPTX",
|
||||
"NVPTX64",
|
||||
"OpenBSD",
|
||||
"OSX",
|
||||
"PlayStation",
|
||||
"PlayStation4",
|
||||
"Posix",
|
||||
"PPC",
|
||||
"PPC64",
|
||||
"PPC_HardFloat",
|
||||
"PPC_SoftFloat",
|
||||
"S390",
|
||||
"S390X",
|
||||
"SDC",
|
||||
"SH",
|
||||
"SH64",
|
||||
"SkyOS",
|
||||
"Solaris",
|
||||
"SPARC",
|
||||
"SPARC64",
|
||||
"SPARC_HardFloat",
|
||||
"SPARC_SoftFloat",
|
||||
"SPARC_V8Plus",
|
||||
"SystemZ",
|
||||
"SysV3",
|
||||
"SysV4",
|
||||
"TVOS",
|
||||
"unittest",
|
||||
"WatchOS",
|
||||
"Win32",
|
||||
"Win64",
|
||||
"Windows",
|
||||
"X86",
|
||||
"X86_64"
|
||||
];
|
||||
|
||||
static this()
|
||||
{
|
||||
// note: compiler switch -m32/64 can lead to wrong results
|
||||
string addVersionidentifier(string ver)()
|
||||
{
|
||||
return `version(` ~ ver ~ `){} else badVersions ~= "` ~ ver ~ "\";\n";
|
||||
}
|
||||
|
||||
string addVerionIdentifiers()
|
||||
{
|
||||
import std.meta: aliasSeqOf;
|
||||
import std.range: iota;
|
||||
string result;
|
||||
foreach(i; aliasSeqOf!(iota(0, predefinedVersions.length)))
|
||||
{
|
||||
result ~= addVersionidentifier!(predefinedVersions[i]);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
mixin(addVerionIdentifiers);
|
||||
}
|
||||
|
||||
/**
|
||||
* Make a D string compatible with an Object Pascal string literal.
|
||||
|
|
|
@ -137,6 +137,7 @@ version(devel)
|
|||
{
|
||||
version(none) import std.compiler;
|
||||
version(all) import std.uri;
|
||||
version(WatchOS) import std.math;
|
||||
mixin(q{import std.c.time;});
|
||||
// TODO: something
|
||||
// NOTE: there was a bug here...
|
||||
|
|
Loading…
Reference in New Issue