[英]Can I specify a min Dub or DMD version?
人們一直試圖用Dmd和Dub的舊版本(0.9.2代替1.0.0)來構建我的項目,但是它不起作用。 我可以在dub.json文件中指定所需的最低配音版本嗎?
不幸的是你不能。 有關更多詳細信息,請參見此問題 。 請在那里吵鬧;-)
目前有兩種解決方法。
int main()
{
static if (__VERSION__ < 2069)
{
pragma(msg, "Your DMD version is outdated. Please update");
return 1;
}
...
}
2)使用preGenerateCommands = ['rdmd checkversions.d']
int main()
{
import std.process : execute;
import std.stdio : writeln;
auto ver = execute(["dub", "--version"]);
if (ver.status != 0)
{
writeln("Error: no dub installation found.");
}
else
{
import std.conv : to;
import std.regex : ctRegex, matchFirst;
auto ctr = ctRegex!`version ([0-9]+)[.]([0-9]+)[.]([0-9]+)`;
auto r = ver.output.matchFirst(ctr);
assert(r.length == 4, "version not found");
int major = r[1].to!int, minor = r[2].to!int, patch = r[3].to!int;
if (major < 2)
{
writeln(minor);
return 1;
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.