Не получается по нормальному использовать lupdate в связки с cmake.
Использую следующий скрипт найденный в гугле, для извлечения текста из исходников.
C++ (Qt)
MACRO (QT4_WRAP_TS lupdate_outputs lrelease_outputs prefix)
FOREACH (it ${ARGN})
SET(tsfile ${CMAKE_CURRENT_SOURCE_DIR}/i18n/${prefix}_${it}.ts)
ADD_CUSTOM_COMMAND(OUTPUT ${tsfile}
COMMAND ${QT_LUPDATE_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR} -ts ${tsfile}
)
SET(qmfile ${CMAKE_CURRENT_BINARY_DIR}/${prefix}_${it}.qm)
ADD_CUSTOM_COMMAND(OUTPUT ${qmfile}
COMMAND ${QT_LRELEASE_EXECUTABLE} ${tsfile} -qm ${qmfile}
)
SET(${lupdate_outputs} ${${lupdate_outputs}} ${tsfile})
SET(${lrelease_outputs} ${${lrelease_outputs}} ${qmfile})
ENDFOREACH(it)
ENDMACRO (QT4_WRAP_TS)
QT4_WRAP_TS(lupdate_outputs lrelease_outputs
test
ru
)
ADD_CUSTOM_TARGET(lupdate
DEPENDS ${lupdate_outputs}
)
Проблема в том что когда первый раз делаю make lupdate все проходит хорошо.
А вот потом если в программу добавить еще какой то текст, то make lupdate не увидит изменения.
Если снести весь кеш cmake ( в папке сборки rm -rf * ) то make lupdate строчки новые увидит но перетрет все что было переведено до этого.