forked from qt-creator/qt-creator
Build: Simplify add_translation_targets
Deduplicate the _create_ts_custom_target calls by splitting the creation of .ts and .qm targets. For both targets, one can specify a different set of languages by passing TS_LANGUAGES or QM_LANGUAGES. This is currently used for the "en" language that merely serves as a typo hotfix translation. Change-Id: I83bd10033188d4adf3dc0f78ecd81bcafc68ccaa Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
@@ -161,7 +161,7 @@ function(add_translation_targets file_prefix)
|
|||||||
|
|
||||||
cmake_parse_arguments(_arg ""
|
cmake_parse_arguments(_arg ""
|
||||||
"OUTPUT_DIRECTORY;INSTALL_DESTINATION;TS_TARGET_PREFIX;QM_TARGET_PREFIX;ALL_QM_TARGET"
|
"OUTPUT_DIRECTORY;INSTALL_DESTINATION;TS_TARGET_PREFIX;QM_TARGET_PREFIX;ALL_QM_TARGET"
|
||||||
"LANGUAGES;TARGETS;SOURCES;INCLUDES" ${ARGN})
|
"TS_LANGUAGES;QM_LANGUAGES;TARGETS;SOURCES;INCLUDES" ${ARGN})
|
||||||
if (_arg_UNPARSED_ARGUMENTS)
|
if (_arg_UNPARSED_ARGUMENTS)
|
||||||
message(FATAL_ERROR "Invalid parameters to add_translation_targets: ${_arg_UNPARSED_ARGUMENTS}.")
|
message(FATAL_ERROR "Invalid parameters to add_translation_targets: ${_arg_UNPARSED_ARGUMENTS}.")
|
||||||
endif()
|
endif()
|
||||||
@@ -194,8 +194,20 @@ function(add_translation_targets file_prefix)
|
|||||||
INCLUDES ${_to_process_includes} ${_arg_INCLUDES}
|
INCLUDES ${_to_process_includes} ${_arg_INCLUDES}
|
||||||
)
|
)
|
||||||
|
|
||||||
_create_ts_custom_target(untranslated
|
set(ts_languages untranslated ${_arg_TS_LANGUAGES})
|
||||||
FILE_PREFIX "${file_prefix}" TS_TARGET_PREFIX "${_arg_TS_TARGET_PREFIX}"
|
foreach(language IN LISTS ts_languages)
|
||||||
|
_create_ts_custom_target(${language}
|
||||||
|
FILE_PREFIX "${file_prefix}" TS_TARGET_PREFIX "${_arg_TS_TARGET_PREFIX}"
|
||||||
|
LUPDATE_RESPONSE_FILE "${lupdate_response_file}"
|
||||||
|
DEPENDS ${_arg_SOURCES}
|
||||||
|
)
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
# Create ts_all* targets.
|
||||||
|
_create_ts_custom_target(all
|
||||||
|
LANGUAGES ${ts_languages}
|
||||||
|
FILE_PREFIX "${file_prefix}"
|
||||||
|
TS_TARGET_PREFIX "${_arg_TS_TARGET_PREFIX}"
|
||||||
LUPDATE_RESPONSE_FILE "${lupdate_response_file}"
|
LUPDATE_RESPONSE_FILE "${lupdate_response_file}"
|
||||||
DEPENDS ${_arg_SOURCES}
|
DEPENDS ${_arg_SOURCES}
|
||||||
)
|
)
|
||||||
@@ -206,17 +218,10 @@ function(add_translation_targets file_prefix)
|
|||||||
|
|
||||||
file(MAKE_DIRECTORY ${_arg_OUTPUT_DIRECTORY})
|
file(MAKE_DIRECTORY ${_arg_OUTPUT_DIRECTORY})
|
||||||
|
|
||||||
foreach(l IN ITEMS ${_arg_LANGUAGES})
|
foreach(l IN LISTS _arg_QM_LANGUAGES)
|
||||||
set(_ts_file "${CMAKE_CURRENT_SOURCE_DIR}/${file_prefix}_${l}.ts")
|
set(_ts_file "${CMAKE_CURRENT_SOURCE_DIR}/${file_prefix}_${l}.ts")
|
||||||
set(_qm_file "${_arg_OUTPUT_DIRECTORY}/${file_prefix}_${l}.qm")
|
set(_qm_file "${_arg_OUTPUT_DIRECTORY}/${file_prefix}_${l}.qm")
|
||||||
|
|
||||||
_create_ts_custom_target("${l}"
|
|
||||||
FILE_PREFIX "${file_prefix}"
|
|
||||||
TS_TARGET_PREFIX "${_arg_TS_TARGET_PREFIX}"
|
|
||||||
LUPDATE_RESPONSE_FILE "${lupdate_response_file}"
|
|
||||||
DEPENDS ${_arg_SOURCES}
|
|
||||||
)
|
|
||||||
|
|
||||||
add_custom_command(OUTPUT "${_qm_file}"
|
add_custom_command(OUTPUT "${_qm_file}"
|
||||||
COMMAND Qt::lrelease "${_ts_file}" -qm "${_qm_file}"
|
COMMAND Qt::lrelease "${_ts_file}" -qm "${_qm_file}"
|
||||||
MAIN_DEPENDENCY "${_ts_file}"
|
MAIN_DEPENDENCY "${_ts_file}"
|
||||||
@@ -228,14 +233,4 @@ function(add_translation_targets file_prefix)
|
|||||||
|
|
||||||
add_dependencies("${_arg_ALL_QM_TARGET}" "${_arg_QM_TARGET_PREFIX}${l}")
|
add_dependencies("${_arg_ALL_QM_TARGET}" "${_arg_QM_TARGET_PREFIX}${l}")
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
# Create ts_all* targets.
|
|
||||||
set(languages_for_all_target untranslated ${_arg_LANGUAGES})
|
|
||||||
list(REMOVE_ITEM languages_for_all_target en)
|
|
||||||
_create_ts_custom_target(all
|
|
||||||
LANGUAGES ${languages_for_all_target}
|
|
||||||
FILE_PREFIX "${file_prefix}"
|
|
||||||
TS_TARGET_PREFIX "${_arg_TS_TARGET_PREFIX}"
|
|
||||||
LUPDATE_RESPONSE_FILE "${lupdate_response_file}"
|
|
||||||
)
|
|
||||||
endfunction()
|
endfunction()
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
set(languages cs da de en fr hr ja pl ru sl uk zh_CN zh_TW)
|
set(languages cs da de fr hr ja pl ru sl uk zh_CN zh_TW)
|
||||||
set(bad_languages hu) # Fix these before including them in languages!
|
set(bad_languages hu) # Fix these before including them in languages!
|
||||||
|
|
||||||
find_package(Python3 COMPONENTS Interpreter)
|
find_package(Python3 COMPONENTS Interpreter)
|
||||||
@@ -45,7 +45,8 @@ else()
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_translation_targets(qtcreator
|
add_translation_targets(qtcreator
|
||||||
LANGUAGES ${languages}
|
TS_LANGUAGES ${languages}
|
||||||
|
QM_LANGUAGES ${languages} en
|
||||||
OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${IDE_DATA_PATH}/translations"
|
OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${IDE_DATA_PATH}/translations"
|
||||||
INSTALL_DESTINATION "${IDE_DATA_PATH}/translations"
|
INSTALL_DESTINATION "${IDE_DATA_PATH}/translations"
|
||||||
TARGETS "${__QTC_LIBRARIES}" "${__QTC_PLUGINS}"
|
TARGETS "${__QTC_LIBRARIES}" "${__QTC_PLUGINS}"
|
||||||
|
Reference in New Issue
Block a user