diff --git a/translations/CMakeLists.txt b/translations/CMakeLists.txt index 6b68afe068e6943c44cff92f9bdf223b31544e02..cc5679e18838235a2312ea23da9a1aa3caae3618 100644 --- a/translations/CMakeLists.txt +++ b/translations/CMakeLists.txt @@ -14,7 +14,6 @@ endfunction() function(add_ts_target target input_file output_file) add_custom_target(${target} - BYPRODUCTS ${output_file} COMMAND ${QT_CMAKE_EXPORT_NAMESPACE}::lupdate -locations relative -no-ui-lines -no-sort "@${input_file}" -ts ${output_file} ) endfunction() @@ -131,6 +130,8 @@ add_dependencies(check-ts ts-all) add_custom_target(updateqm ALL) file(GLOB ts_files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.ts") +file(GLOB en_ts_files "${en_ts_file_dir}/*.ts") +list(APPEND ts_files ${en_ts_files}) if(QT_WILL_INSTALL) set(qm_output_dir "${QT_BUILD_DIR}/${INSTALL_TRANSLATIONSDIR}") @@ -138,30 +139,12 @@ else() set(qm_output_dir "${QT_BUILD_INTERNALS_RELOCATABLE_INSTALL_PREFIX}/${INSTALL_TRANSLATIONSDIR}") endif() -foreach(file IN LISTS ts_files) - string(REGEX REPLACE "\\.ts$" ".qm" qm_file ${file}) - set(output_file "${qm_output_dir}/${qm_file}") - add_custom_target(updateqm-${file} - BYPRODUCTS ${output_file} - COMMAND "${CMAKE_COMMAND}" -E make_directory "${qm_output_dir}" - COMMAND ${QT_CMAKE_EXPORT_NAMESPACE}::lrelease "${CMAKE_CURRENT_SOURCE_DIR}/${file}" -qm "${output_file}" - ) - qt_install(FILES ${output_file} DESTINATION "${INSTALL_TRANSLATIONSDIR}") - add_dependencies(updateqm updateqm-${file}) -endforeach() - -file(GLOB ts_files RELATIVE ${en_ts_file_dir} "${en_ts_file_dir}/*.ts") -foreach(file IN LISTS ts_files) - string(REGEX REPLACE "\\.ts$" ".qm" qm_file ${file}) - set(output_file "${qm_output_dir}/${qm_file}") - add_custom_target(updateqm-${file} - BYPRODUCTS ${output_file} - COMMAND ${QT_CMAKE_EXPORT_NAMESPACE}::lrelease "${en_ts_file_dir}/${file}" -qm "${output_file}" - ) - qt_install(FILES ${output_file} DESTINATION "${INSTALL_TRANSLATIONSDIR}") - add_dependencies(updateqm updateqm-${file}) -endforeach() - +set_source_files_properties(${ts_files} PROPERTIES OUTPUT_LOCATION "${qm_output_dir}") +qt_add_lrelease(updateqm + TS_FILES ${ts_files} + NO_GLOBAL_TARGET + QM_FILES_OUTPUT_VARIABLE qm_files) +qt_install(FILES ${qm_files} DESTINATION "${INSTALL_TRANSLATIONSDIR}") # Custom target to add modified ts files to git add_custom_target(stage-ts