Пример сборки с поддержкой Ahead-of-Time скриптов.
Сборка tutorial02_dasAot
Программа компилирует скрипты на daScript, но полученное дерево симуляции не выполняет, а отдаёт в visitor, который генерирует c++-код, строящий аналогичное дерево симуляции (без парсинга, и компиляции). tutorial02_dasAot — пример кастомной утилиты генерации, в которой можно, например, дописать необходимые игре префиксы/постфиксы вроде путей к заголовочным файлам, инициализации или обёртки в неймспейсы. Собранный по умолчанию daScript с ключом -aot также может сгенерировать из das-файла соотвествующий ему c++-файл.
Генерация из скриптов cpp-файлов
Проект tutorial02_dasAotStub — шаг генерации. Вручную может быть вызван как
В настроенном через cmake проекте сгенерированный файл попадает в папку \daScript\examples\tutorial\_aot_generated\tutorial02_dasAotStub_tutorial02.das.cpp
Сборка игры с подключенной AoT-версией кода
Следующий шаг — сборки хост-приложения с подключенной к нему AoT-версией кода (tutorial02aot).
При этом к программе прилинкован код файла tutorial02_dasAotStub_tutorial02.das.cpp. По коду в нём можно понять, что будет происходить внутри виртуальной машины daScript:
Проверка В скрипт tutorial2.das можно добавить опцию options log_aot=true, чтобы в output проверить, что скрипт использует AoT версию функции