Получение целевого языка компиляции в haxe


Я знаю, я могу сделать что-то вроде

public static function getTarget():String {
    #if flash
    return "Flash";
    #elseif java
    return "Java";
    //... some more elseif clauses ...
    #end
}

Для определения целевого языка в haxe (см. http://old.haxe.org/doc/snip/gettarget ). однако всякий раз, когда сообщество добавляет новый целевой язык программирования (ок, это не так часто), мне нужно будет добавить еще одно предложение elseif, чтобы "поддерживать/обнаруживать" этот язык ...

Поэтому мне было интересно, есть ли какой-то предопределенный макрос / функция, которая возвращает целевой язык как строка:

trace("This is a " + getTargetLanguage() + " program!");
1 5

1 ответ:

Я не думаю, что такая вещь существует. Чтобы убедиться, что getTarget() не прерывается молча при добавлении нового целевого объекта (и вы компилируете для него), вы можете заставить его выдать ошибку компилятора в этом случае:

public static function getTarget():String {
    #if flash
    return "Flash";
    #elseif java
    return "Java";
    //... some more elseif clauses ...
    #else
    #error "Missing target name"
    #end
}