【发布时间】:2014-07-28 13:09:48
【问题描述】:
我在带有翻译文件 (*.ts) 的目录中有这个 CMakeLists.txt:
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 之后不要丢失它们?
【问题讨论】: