在 Haxe 编译期间访问编译日期
Access the compilation date during compilation in Haxe
我想知道是否可以访问外部信息 - 例如编译期间的当前日期。
然后就可以做这样的事情了:
class MyInfo {
private var buildDate:Int = --- AUTOMATICALLY INSERT THE CURRENT UNIX DATE TIME HERE ---;
public function getInfo():String { // example usage
return "This library was compiled the " + buildDate;
}
}
我考虑过在编译 bat/sh/make 文件中访问此信息,然后也将其传递给编译器。 (类似于“-D”。)但是 Haxe 编译器似乎不支持这样的参数:
haxe --main MyInfo --js test.js -SOMEARG date=$(date)
这样我以后就可以使用可变日期的内容了...
这可以用宏来完成(代码在编译时执行)。
您的日期示例包含在食谱中,here。
您可以找到有关宏的更多信息 in the haxe manual or in the cookbook.
编辑:
最小示例:
class Test {
public static function main() {
trace(getBuildTime());
}
public static macro function getBuildTime() {
var buildTime = Math.floor(Date.now().getTime() / 1000);
return macro $v{buildTime};
}
}
时间将在编译时计算。
我想知道是否可以访问外部信息 - 例如编译期间的当前日期。
然后就可以做这样的事情了:
class MyInfo {
private var buildDate:Int = --- AUTOMATICALLY INSERT THE CURRENT UNIX DATE TIME HERE ---;
public function getInfo():String { // example usage
return "This library was compiled the " + buildDate;
}
}
我考虑过在编译 bat/sh/make 文件中访问此信息,然后也将其传递给编译器。 (类似于“-D”。)但是 Haxe 编译器似乎不支持这样的参数:
haxe --main MyInfo --js test.js -SOMEARG date=$(date)
这样我以后就可以使用可变日期的内容了...
这可以用宏来完成(代码在编译时执行)。
您的日期示例包含在食谱中,here。 您可以找到有关宏的更多信息 in the haxe manual or in the cookbook.
编辑: 最小示例:
class Test {
public static function main() {
trace(getBuildTime());
}
public static macro function getBuildTime() {
var buildTime = Math.floor(Date.now().getTime() / 1000);
return macro $v{buildTime};
}
}
时间将在编译时计算。