--- "Qt5LinguistToolsMacros - Copy.cmake" 2020-03-27 20:21:55.000000000 +0000 +++ Qt5LinguistToolsMacros.cmake 2020-08-21 18:01:36.519699900 +0100 @@ -41,6 +41,17 @@ set(_lupdate_files ${_LUPDATE_UNPARSED_ARGUMENTS}) set(_lupdate_options ${_LUPDATE_OPTIONS}) + if("-extensions" IN_LIST _lupdate_options) + list(FIND ${_lupdate_options} "-extensions" _extensions_index) + math(EXPR _extensions_index "${_extensions_index} + 1") + list(GET ${_lupdate_options} ${_extensions_index} _extensions_list) + string(REPLACE "," ";" _extensions_list "${_extensions_list}") + list(TRANSFORM _extensions_list STRIP) + list(TRANSFORM _extensions_list REPLACE "^\." "") + list(TRANSFORM _extensions_list PREPEND "*.") + else() + set(_extensions_list "*.java;*.jui;*.ui;*.c;*.c++;*.cc;*.cpp;*.cxx;*.ch;*.h;*.h++;*.hh;*.hpp;*.hxx;*.js;*.qs;*.qml;*.qrc") + endif() set(_my_sources) set(_my_tsfiles) foreach(_file ${_lupdate_files}) @@ -59,8 +70,16 @@ get_filename_component(_ts_name ${_ts_file} NAME) set(_ts_lst_file "${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${_ts_name}_lst_file") set(_lst_file_srcs) + set(_dependencies) foreach(_lst_file_src ${_my_sources}) set(_lst_file_srcs "${_lst_file_src}\n${_lst_file_srcs}") + if(IS_DIRECTORY ${_lst_file_src}) + list(TRANSFORM _extensions_list PREPEND "${_lst_file_src}/" OUTPUT_VARIABLE _directory_glob) + file(GLOB_RECURSE _directory_contents CONFIGURE_DEPENDS ${_directory_glob}) + list(APPEND _dependencies ${_directory_contents}) + else() + list(APPEND _dependencies "${_lst_file_src}") + endif() endforeach() get_directory_property(_inc_DIRS INCLUDE_DIRECTORIES) @@ -74,7 +93,7 @@ add_custom_command(OUTPUT ${_ts_file} COMMAND ${Qt5_LUPDATE_EXECUTABLE} ARGS ${_lupdate_options} "@${_ts_lst_file}" -ts ${_ts_file} - DEPENDS ${_my_sources} + DEPENDS ${_dependencies} BYPRODUCTS ${_ts_lst_file} VERBATIM) endforeach() qt5_add_translation(${_qm_files} ${_my_tsfiles})