Tôi đang cố gắng sử dụng ANTLR trong dự án C++ của mình. Tôi đã thực hiện một mục tiêu để chạy máy phát điện ANTLR cho ngữ pháp được chỉ định và làm cho prjct chính phụ thuộc vào nó.Làm thế nào để thực hiện mục tiêu CMake được thực hiện cho dù tập tin được chỉ định đã được thay đổi?
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)
Vấn đề là máy phát điện ANTLR chạy mỗi khi tôi xây dựng dự án và tiêu thụ đủ thời gian. Làm thế nào tôi có thể làm cho nó chạy chỉ cho dù ngữ pháp của tôi đã được thay đổi? Hoặc có thể làm cho ANTLR bằng cách nào đó tạo ra trình phân tích cú pháp chỉ cho ngữ pháp lỗi thời.
Dường như không hoạt động. Như tôi đã hiểu, DEPENDS chỉ hoạt động với các mục tiêu, ví dụ: bất cứ khi nào các mục tiêu phụ thuộc đã được thay đổi (libary xây dựng lại, vv) lệnh được thực hiện. – DikobrAz