2017-11-26 140 views
8

Derleme sırasında mevcut tarihe benzer şekilde harici bilgilere erişmenin mümkün olup olmadığını merak ediyordum.Derleme sırasında derleme tarihine erişme Haxe

Daha sonra böyle bir şey yapmak mümkün olacaktır:

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; 
    } 
} 

Ben de derleyici geçmek sonra derleme yarasa/sh/yapmak dosyasında bu bilgiye erişim ve düşündü. (Benzer bir şey için "-D".) Haxe derleyici gibi bir argümanı desteklemek için görünmüyor Ancak: ...

cevap

10

Bu sonradan değişken tarih içeriğini kullanabileceği Yani

haxe --main MyInfo --js test.js -SOMEARG date=$(date) 

Makrolar ile yapılabilir (derleme zamanında yürütme kodu).

Tarih örneğiniz yemek kitabında, here kapsamındadır. Makrolar veya cookbook ile ilgili daha fazla bilgi edinebilirsiniz.

Düzenleme: Minimal örnek:

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}; 
    } 
} 

zaman derleme zamanında hesaplanacaktır.