Переписан генератор переводов

This commit is contained in:
Andrei Astafev 2019-06-14 08:35:39 +03:00
parent 5a6bef4529
commit 2f8024b670

View File

@ -24,37 +24,32 @@ function(qt_translation)
set(_ts "${_target}_${_lang}.ts") set(_ts "${_target}_${_lang}.ts")
set(_qm "${_target}_${_lang}.qm") set(_qm "${_target}_${_lang}.qm")
list(APPEND _ts_list ${_ts_dir}/${_ts}) list(APPEND _ts_list ${_ts_dir}/${_ts})
if(NOT EXISTS ${_ts_dir}/${_ts}) list(APPEND _l10n_targets "${_target}_l10n_${_lang}")
file(WRITE ${_ts_dir}/${_ts} "<?xml version=\"1.0\" encoding=\"utf-8\"?> string(APPEND L10N_QRC_BODY "<file alias=\"${_qm}\">${CMAKE_BINARY_DIR}/${_qm}</file>\n")
<!DOCTYPE TS>
<TS version=\"2.1\" language=\"${_lang}\"></TS>") add_custom_target(${_target}_l10n_${_lang}
COMMAND ${Qt5_LUPDATE_EXECUTABLE} ${_sources_list} -ts ${_ts_dir}/${_ts} -target-language ${_lang}
DEPENDS ${_sources_list})
if(NOT EXISTS "${_ts_dir}/${_ts}")
add_custom_target(${_ts} DEPENDS ${_target}_l10n_${_lang})
else()
add_custom_target(${_ts} COMMAND echo "Skipping lupdate for ${_ts}")
endif() endif()
string(APPEND L10N_QRC_BODY
"<file alias=\"${_qm}\">${CMAKE_BINARY_DIR}/${_qm}</file>\n")
add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/${_qm} add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/${_qm}
COMMAND ${Qt5_LRELEASE_EXECUTABLE} COMMAND ${Qt5_LRELEASE_EXECUTABLE}
ARGS ${_ts_dir}/${_ts} -qm ARGS ${_ts_dir}/${_ts} -qm ${CMAKE_BINARY_DIR}/${_qm}
${CMAKE_BINARY_DIR}/${_qm} DEPENDS ${_ts})
DEPENDS ${_ts_dir}/${_ts})
endforeach() endforeach()
add_custom_command(OUTPUT ${_ts_list}
COMMAND ${Qt5_LUPDATE_EXECUTABLE}
ARGS ${_sources_list} -ts ${_ts_list}
DEPENDS ${_sources_list})
configure_file(${CMLIB_MODULE_DIR}/qrc/l10n.qrc.in configure_file(${CMLIB_MODULE_DIR}/qrc/l10n.qrc.in
${CMAKE_BINARY_DIR}/${_target}_l10n.qrc) ${CMAKE_BINARY_DIR}/${_target}_l10n.qrc)
qt5_add_resources(_qrc ${CMAKE_BINARY_DIR}/${_target}_l10n.qrc) qt5_add_resources(_qrc ${CMAKE_BINARY_DIR}/${_target}_l10n.qrc)
add_custom_target(_qrc_target DEPENDS ${_qrc}) add_custom_target(${_target}_qrc DEPENDS ${_qrc})
add_custom_target(${_target}_l10n DEPENDS ${_l10n_targets})
foreach(_lang ${_languages}) add_dependencies(${_target} ${_target}_qrc)
set(_ts "${_target}_${_lang}.ts")
set(_qm "${_target}_${_lang}.qm")
endforeach()
add_dependencies(${_target} _qrc_target)
target_sources(${_target} PUBLIC ${_qrc}) target_sources(${_target} PUBLIC ${_qrc})
endfunction() endfunction()