module workspaced.info; import Compiler = std.compiler; import OS = std.system; import std.conv; import std.json; static immutable Version = [3, 8, 0]; static immutable string BundledDependencies = "dub, dfmt and dscanner are bundled within (compiled in)"; static immutable latestKnownDCDVersion = [0, 13, 6]; version (Windows) version (DigitalMars) static assert(false, "DMD not supported on Windows. Please use LDC."); string getVersionInfoString() { return Version[0].to!string ~ '.' ~ Version[1].to!string ~ '.' ~ Version[2].to!string ~ " compiled with " ~ Compiler.name ~ " v" ~ Compiler.version_major.to!string ~ "." ~ Compiler.version_minor.to!string ~ " - " ~ OS.os.to!string ~ " " ~ OS.endian.to!string ~ ". " ~ BundledDependencies; } JSONValue getVersionInfoJson() { //dfmt off return JSONValue([ "major": JSONValue(Version[0]), "minor": JSONValue(Version[1]), "patch": JSONValue(Version[2]), "compiler": JSONValue([ "name": JSONValue(Compiler.name), "vendor": JSONValue(Compiler.vendor.to!string), "major": JSONValue(Compiler.version_major.to!string), "minor": JSONValue(Compiler.version_minor.to!string) ]), "os": JSONValue(OS.os.to!string), "endian": JSONValue(OS.endian.to!string), "summary": JSONValue(getVersionInfoString) ]); //dfmt on }