2017-11-26 345 views
8

Zastanawiałem się, czy możliwe jest uzyskanie dostępu do informacji zewnętrznych - takich jak aktualna data podczas kompilacji.Dostęp do daty kompilacji podczas kompilacji w Haxe

byłoby wtedy możliwe zrobić coś takiego:

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

myślałem o dostępie do informacji w kompilacji bat/sh/Make pliku, a następnie przekazać je do kompilatora, too. (Coś podobnego do „D”). Jednak kompilator Haxe nie wydaje się wspierać argument jak:

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

abym mógł korzystać z zawartości zmiennej daty później ...

Odpowiedz

10

ten można zrobić za pomocą makr (kod wykonywany podczas kompilacji).

Twój przykład daty znajduje się w książce kucharskiej, here. Możesz znaleźć więcej informacji na temat makr lub w cookbook.

Edit: Minimal przykład:

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

czas będą obliczane w czasie kompilacji.