Cmake生成*.ts文件解决方案重新生成会导致*.ts内容全部丢失
1.分析原因:
cmake中使用了
qt5_create_translation(QM_FILES ${CMKE_CURRENT_SOURCE_DID} ${TsFiles})
add_executable(${TsFiles})
CMake编译QT工程,生成的工程如果进行Clean或者Rebuild,ts文件(翻译文件)的翻译信息会丢失,导致需要经常备份最新翻译文件。
尝试过的解决办法
https://bugreports.qt.io/browse/QTBUG-41736
https://bugreports.qt.io/browse/QTBUG-31860
升级cmake版本无法解决这个问题
2.最终解决办法
在camke中使用lupdate执行文件更新 ts文件
execute_process(
COMMAND ${QTDIR}/bin/lupdate ${CMAKE_CURRENT_SOURCE_DIR} -ts ${TsFiles}
RESUlT_VARIABLE LUPDATE_RESULT
)