1 set(_ParaViewTranslations_cmake_dir
"${CMAKE_CURRENT_LIST_DIR}")
4 @brief Generate a C++ header with input XML labels and UI strings that can be parsed by
5 Qt Linguist tools. It is
using a python utility at
6 Utilities/Localization/XML_translations_header_generator.py
15 * `TARGET`: (Required) The name of the target that generate the translation
17 * `INPUT_FILES`: (Required) The absolute path of the input files.
18 * `RESULT_FILE`: (Required) The absolute path of the desired result file.
21 cmake_parse_arguments(PARSE_ARGV 0 _pv_generate_tr_h
25 if (_pv_generate_tr_h_UNPARSED_ARGUMENTS)
27 "Unrecognized arguments for paraview_generate_translation_header: " 28 "${_pv_generate_tr_h_UNPARSED_ARGUMENTS}.")
30 if (NOT DEFINED _pv_generate_tr_h_RESULT_FILE)
32 "The `RESULT_FILE` argument is required.")
34 if (NOT DEFINED _pv_generate_tr_h_INPUT_FILES)
36 "The `INPUT_FILES` argument is required.")
38 if (NOT DEFINED _pv_generate_tr_h_TARGET)
40 "The `TARGET` argument is required.")
42 find_package(Python3 QUIET REQUIRED COMPONENTS Interpreter)
44 OUTPUT "${_pv_generate_tr_h_RESULT_FILE}
" 45 DEPENDS ${_pv_generate_tr_h_INPUT_FILES} 46 COMMAND "$<TARGET_FILE:Python3::Interpreter>
" 47 "${_ParaViewTranslations_cmake_dir}/XML_translations_header_generator.py
" 48 -o "${_pv_generate_tr_h_RESULT_FILE}
" 49 ${_pv_generate_tr_h_INPUT_FILES} 50 -s "${CMAKE_SOURCE_DIR}/
") 51 add_custom_target("${_pv_generate_tr_h_TARGET}
" 52 DEPENDS "${_pv_generate_tr_h_RESULT_FILE}
") 56 @brief Generate a Qt translation source file from the given source files 59 paraview_create_translation( 61 INPUT_FILES <files...> 65 * `TARGET`: (Required) The name of the target that generate the translation 67 * `INPUT_FILES`: (Required) The source files to search translatable strings in. 68 * `OUTPUT_TS`: (Required) The absolute path of the desired result file. 70 function(paraview_create_translation) 71 cmake_parse_arguments(PARSE_ARGV 0 _pv_create_tr 75 if (_pv_create_tr_UNPARSED_ARGUMENTS) 78 "${_pv_create_tr_UNPARSED_ARGUMENTS}.
") 80 if (NOT DEFINED _pv_create_tr_TARGET) 82 "The `TARGET` argument is required.
") 84 if (NOT DEFINED _pv_create_tr_FILES) 86 "The `FILES` argument is required.
") 88 if (NOT DEFINED _pv_create_tr_OUTPUT_TS) 90 "The `OUTPUT_TS` argument is required.
") 93 # Transforms all relative paths in the provided 94 # FILES by their absolute paths. 95 set(_pv_create_tr_files) 96 foreach (_pv_create_tr_in_file IN LISTS _pv_create_tr_FILES) 97 if (NOT IS_ABSOLUTE "${_pv_create_tr_in_file}
") 98 string(PREPEND _pv_create_tr_in_file 99 "${CMAKE_CURRENT_SOURCE_DIR}/
") 101 list(APPEND _pv_create_tr_files ${_pv_create_tr_in_file}) 103 find_package("Qt${PARAVIEW_QT_MAJOR_VERSION}
" REQUIRED QUIET COMPONENTS LinguistTools) 104 get_filename_component(_pv_create_tr_directory ${_pv_create_tr_OUTPUT_TS} DIRECTORY) 105 file(MAKE_DIRECTORY "${_pv_create_tr_directory}
") 106 # List of files is stored in a .pro file because the command can reach the Windows limit of character 107 set(_pv_create_tr_pro_file "${CMAKE_CURRENT_BINARY_DIR}/${_pv_create_tr_TARGET}.pro
") 108 string(REPLACE ";
" " \\\n
" _translations_files_list "${_pv_create_tr_files}
") 110 "${CMAKE_SOURCE_DIR}/CMake/paraview_translation_files_list.pro.in
" 111 "${_pv_create_tr_pro_file}
") 113 OUTPUT "${_pv_create_tr_OUTPUT_TS}
" 114 COMMAND "$<TARGET_FILE:Qt${PARAVIEW_QT_MAJOR_VERSION}::lupdate>
" 115 "${_pv_create_tr_pro_file}
" 116 DEPENDS ${_pv_create_tr_files} 117 "${_pv_create_tr_pro_file}
") 118 add_custom_target("${_pv_create_tr_TARGET}
" 119 DEPENDS "${_pv_create_tr_OUTPUT_TS}
") function paraview_create_translation()
Generate a Qt translation source file from the given source files.
function paraview_generate_translation_header()
Generate a C++ header with input XML labels and UI strings that can be parsed by Qt Linguist tools...