C++ projemde ANTLR kullanmaya çalışıyorum. Belirtilen dilbilgisi için ANTLR jeneratörü çalıştırmak için bir hedef yaptım ve buna bağlı ana prjct yaptı.Belirtilen dosyanın değiştirilip değiştirilmediğini CMake hedefi nasıl yapılır?
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)
Sorun projeyi inşa etmek ve yeterli zaman tüketir her zaman çalıştıran ANTLR jeneratör. Sadece dilbilgimin değişip değişmediğini nasıl çalıştırırım? Veya ANTLR'yi bir şekilde yalnızca tarih dilbilgisi dışında ayrıştırıcı üretmesi mümkün olabilir.
Çalışmıyor gibi görünüyor. Anladığım kadarıyla DEPENDS sadece hedeflerle çalışıyor, örn. bağımlı hedef değiştiğinde (kütüphane yeniden oluşturuldu, vb.) komut çalıştırılır. – DikobrAz