Fixes regression in Qt's CMake translation API. Bug reported here: qt5_create_translation breaks projects with multiple same-named ts files https://bugreports.qt.io/browse/QTBUG-113152 Backport of upstream patch: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=270868#c4 https://people.freebsd.org/~tcberner/patches/0001-Qt-Update-Qt5-to-5.15.9.patch.v2 diff -Nuar a/src/linguist/Qt5LinguistToolsMacros.cmake b/src/linguist/Qt5LinguistToolsMacros.cmake --- a/src/linguist/Qt5LinguistToolsMacros.cmake 2023-05-04 00:46:05.642493619 +0000 +++ b/src/linguist/Qt5LinguistToolsMacros.cmake 2023-05-04 00:46:47.654701946 +0000 @@ -96,6 +96,13 @@ file(WRITE ${_ts_lst_file} "${_lst_file_srcs}") endif() set(stamp_file "${stamp_file_dir}/${_ts_name}.stamp") + file(RELATIVE_PATH _ts_relative_path ${CMAKE_CURRENT_SOURCE_DIR} ${_ts_file}) + string(REPLACE "../" "__/" _ts_relative_path "${_ts_relative_path}") + set(stamp_file "${stamp_file_dir}/${_ts_relative_path}.stamp") + get_filename_component(full_stamp_file_dir "${stamp_file}" DIRECTORY) + if(NOT EXISTS "${full_stamp_file_dir}") + file(MAKE_DIRECTORY "${full_stamp_file_dir}") + endif() add_custom_command(OUTPUT ${stamp_file} COMMAND ${Qt5_LUPDATE_EXECUTABLE} ARGS ${_lupdate_options} "@${_ts_lst_file}" -ts ${_ts_file}