我有一个 CMakeLists.txt
文件,位于翻译文件 (*.ts
) 的目录中:
SET(TRANSLATIONS
lang_de.ts
lang_en.ts
)
FIND_PACKAGE(Qt5LinguistTools)
QT5_ADD_TRANSLATION(QM_FILES ${TRANSLATIONS})
SET(QM_FILES ${QM_FILES} PARENT_SCOPE)
ADD_CUSTOM_TARGET (translations ALL DEPENDS ${QM_FILES})
它从指定的*.ts
文件中构建*.qm
文件。
但我想改进它,并获取两个自定义目标,这些目标不会自动构建。
其中一个用于将源中的新字符串附加到ts
文件中,另一个用于刷新ts
。最后一个将从源更新ts
并从ts
中删除过时的字符串。
我尝试在上面的行之后添加此内容:
ADD_CUSTOM_TARGET (
ts_append
COMMAND QT5_CREATE_TRANSLATION(QM_FILES ${CMAKE_SOURCE_DIR}/src/app ${TRANSLATIONS} OPTIONS -I ${CMAKE_SOURCE_DIR}/src)
)
ADD_CUSTOM_TARGET (
ts_refresh
COMMAND QT5_CREATE_TRANSLATION(QM_FILES ${CMAKE_SOURCE_DIR}/src/app ${TRANSLATIONS} OPTIONS -no-obsolete -I ${CMAKE_SOURCE_DIR}/src)
)
但是似乎我不能在自定义目标中使用QT5_CREATE_TRANSLATION
宏,是吗?
也许我走错了路,你会如何解决这个问题:轻松更新ts
并在make clean
后不丢失它们?