有没有办法在haxe中获取编译器版本?
Is there a way to get the compiler version in haxe?
我正在尝试使用 haxe 编程语言制作自己的终端。我想知道是否有任何方法可以获得 haxe 编译器版本。我知道您可以在命令提示符下键入 haxe -version
来获取它,但我在代码中需要它。有办法吗?
有一个库可以用来获取编译器版本
https://lib.haxe.org/p/version/
或者只是使用其中的一个宏
class Main {
static public function main() {
trace(StaticExtender.getHaxeCompilerVersion());
}
}
class StaticExtender {
public static macro function getHaxeCompilerVersion():haxe.macro.Expr {
var proc_haxe_version = new sys.io.Process('haxe', [ '-version' ] );
if (proc_haxe_version.exitCode() != 0) {
throw("`haxe -version` failed: " + proc_haxe_version.stderr.readAll().toString());
}
#if (haxe_ver >= 4)
var haxe_ver = proc_haxe_version.stdout.readLine();
#else
var haxe_ver = proc_haxe_version.stderr.readLine();
#end
return macro $v{haxe_ver};
}
}
它也可以作为 compiler define which can be read using macros 使用。 haxe_ver
似乎至少从 3.2 开始可用,您可能需要检查是否需要使用旧的编译器版本。
class Test {
static function main() {
trace(getCompilerVersion());
}
static macro function getCompilerVersion() {
return macro $v{haxe.macro.Context.definedValue("haxe_ver")};
}
}
我正在尝试使用 haxe 编程语言制作自己的终端。我想知道是否有任何方法可以获得 haxe 编译器版本。我知道您可以在命令提示符下键入 haxe -version
来获取它,但我在代码中需要它。有办法吗?
有一个库可以用来获取编译器版本
https://lib.haxe.org/p/version/
或者只是使用其中的一个宏
class Main {
static public function main() {
trace(StaticExtender.getHaxeCompilerVersion());
}
}
class StaticExtender {
public static macro function getHaxeCompilerVersion():haxe.macro.Expr {
var proc_haxe_version = new sys.io.Process('haxe', [ '-version' ] );
if (proc_haxe_version.exitCode() != 0) {
throw("`haxe -version` failed: " + proc_haxe_version.stderr.readAll().toString());
}
#if (haxe_ver >= 4)
var haxe_ver = proc_haxe_version.stdout.readLine();
#else
var haxe_ver = proc_haxe_version.stderr.readLine();
#end
return macro $v{haxe_ver};
}
}
它也可以作为 compiler define which can be read using macros 使用。 haxe_ver
似乎至少从 3.2 开始可用,您可能需要检查是否需要使用旧的编译器版本。
class Test {
static function main() {
trace(getCompilerVersion());
}
static macro function getCompilerVersion() {
return macro $v{haxe.macro.Context.definedValue("haxe_ver")};
}
}