@@ -289,44 +289,6 @@ if(BUILD_GUI_TESTS)
289289 add_subdirectory (test )
290290endif ()
291291
292-
293- # Gets sources to be parsed to gather translatable strings.
294- function (get_translatable_sources var)
295- set (result)
296- set (targets)
297- foreach (dir IN ITEMS ${ARGN} )
298- get_directory_property (dir_targets DIRECTORY ${PROJECT_SOURCE_DIR} /${dir} BUILDSYSTEM_TARGETS)
299- list (APPEND targets ${dir_targets} )
300- endforeach ()
301- foreach (target IN LISTS targets)
302- get_target_property (target_sources ${target} SOURCES )
303- if (target_sources)
304- foreach (source IN LISTS target_sources)
305- # Get an expression from the generator expression, if any.
306- if (source MATCHES ":([^>]+)>$" )
307- set (source ${CMAKE_MATCH_1} )
308- endif ()
309- cmake_path(GET source EXTENSION LAST_ONLY ext )
310- if (ext STREQUAL ".qrc" )
311- continue ()
312- endif ()
313- if (NOT IS_ABSOLUTE source )
314- get_target_property (target_source_dir ${target} SOURCE_DIR)
315- cmake_path(APPEND target_source_dir ${source} OUTPUT_VARIABLE source )
316- endif ()
317- get_property (is_generated
318- SOURCE ${source} TARGET_DIRECTORY ${target}
319- PROPERTY GENERATED
320- )
321- if (NOT is_generated)
322- list (APPEND result ${source} )
323- endif ()
324- endforeach ()
325- endif ()
326- endforeach ()
327- set (${var} ${result} PARENT_SCOPE)
328- endfunction ()
329-
330292find_program (XGETTEXT_EXECUTABLE xgettext)
331293find_program (SED_EXECUTABLE sed)
332294if (NOT XGETTEXT_EXECUTABLE)
@@ -338,20 +300,14 @@ elseif(NOT SED_EXECUTABLE)
338300 COMMAND ${CMAKE_COMMAND} -E echo "Error: GNU sed not found"
339301 )
340302else ()
341- set (translatable_sources_directories src src/qt src/util)
342- if (ENABLE_WALLET)
343- list (APPEND translatable_sources_directories src/wallet)
344- endif ()
345- get_translatable_sources(translatable_sources ${translatable_sources_directories} )
346- get_translatable_sources(qt_translatable_sources src/qt)
347- file (GLOB ui_files ${CMAKE_CURRENT_SOURCE_DIR} /forms/*.ui)
348- add_custom_target (translate
349- COMMAND ${CMAKE_COMMAND} -E env XGETTEXT=${XGETTEXT_EXECUTABLE} COPYRIGHT_HOLDERS=${COPYRIGHT_HOLDERS} $<TARGET_FILE:Python3::Interpreter> ${PROJECT_SOURCE_DIR} /share/qt/extract_strings_qt.py ${translatable_sources}
350- COMMAND Qt6::lupdate -no -obsolete -I ${PROJECT_SOURCE_DIR} /src -locations relative ${CMAKE_CURRENT_SOURCE_DIR} /bitcoinstrings.cpp ${ui_files} ${qt_translatable_sources} -ts ${CMAKE_CURRENT_SOURCE_DIR} /locale/bitcoin_en.ts
351- COMMAND Qt6::lconvert -drop-translations -o ${CMAKE_CURRENT_SOURCE_DIR} /locale/bitcoin_en.xlf -i ${CMAKE_CURRENT_SOURCE_DIR} /locale/bitcoin_en.ts
352- COMMAND ${SED_EXECUTABLE} -i.old -e "s|source-language=\" en\" target-language=\" en\" |source-language=\" en\" |" -e "/<target xml:space=\" preserve\" ><\\ /target>/d" ${CMAKE_CURRENT_SOURCE_DIR} /locale/bitcoin_en.xlf
353- COMMAND ${CMAKE_COMMAND} -E rm ${CMAKE_CURRENT_SOURCE_DIR} /locale/bitcoin_en.xlf.old
354- WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} /src
355- VERBATIM
303+ add_custom_target (translate COMMAND ${CMAKE_COMMAND}
304+ -D "PROJECT_SOURCE_DIR=${PROJECT_SOURCE_DIR} "
305+ -D "COPYRIGHT_HOLDERS=${COPYRIGHT_HOLDERS} "
306+ -D "LCONVERT_EXECUTABLE=$<TARGET_FILE:Qt6::lconvert>"
307+ -D "LUPDATE_EXECUTABLE=$<TARGET_FILE:Qt6::lupdate>"
308+ -D "PYTHON_EXECUTABLE=$<TARGET_FILE:Python3::Interpreter>"
309+ -D "SED_EXECUTABLE=${SED_EXECUTABLE} "
310+ -D "XGETTEXT_EXECUTABLE=${XGETTEXT_EXECUTABLE} "
311+ -P ${PROJECT_SOURCE_DIR} /share/qt/translate.cmake
356312 )
357313endif ()
0 commit comments