Я пытаюсь использовать ANTLR в моем проекте на С++. Я сделал цель для запуска ANTLR-генератора для указанной грамматики и сделал из нее основную функцию.
ADD_CUSTOM_TARGET(GenerateParser
COMMAND ${ANTLR_COMMAND} ${PROJECT_SOURCE_DIR}/src/MyGrammar.g
-o ${PROJECT_SOURCE_DIR}/src/MyGrammar
)
ADD_LIBRARY(MainProject ${LIBRARY_TYPE} ${TARGET_SOURCES} ${TARGET_OPTIONS})
ADD_DEPENDENCIES(MainProject GenerateParser)
Проблема заключается в том, что генератор ANTLR работает каждый раз, когда я строю проект и потребляет достаточно времени. Как я могу заставить его работать только в том случае, была ли изменена моя грамматика? Или может быть, возможно, что ANTLR каким-то образом генерирует парсер только для устаревшей грамматики.