From c3b52f0e804a75c535f56c550354c0f894d7e960 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sl=C3=A1vek=20Banko?= Date: Wed, 10 Jun 2020 20:59:30 +0200 Subject: [PATCH] tde_create_translated_desktop: For working files in a binary directory, use the relative path according to the source directory instead of the base file names. This will prevent potential base file name collisions and allow the creation of common rules. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Slávek Banko --- modules/TDEMacros.cmake | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/modules/TDEMacros.cmake b/modules/TDEMacros.cmake index 2182844..9ffcfa0 100644 --- a/modules/TDEMacros.cmake +++ b/modules/TDEMacros.cmake @@ -1834,13 +1834,20 @@ macro( tde_create_translated_desktop ) if( NOT _src ) tde_message_fatal( "no source desktop file specified" ) endif( ) - get_filename_component( _basename ${_src} NAME ) + get_filename_component( _basename ${_src} ABSOLUTE ) + get_filename_component( _basedir ${_basename} PATH ) + file( RELATIVE_PATH _basename "${CMAKE_CURRENT_SOURCE_DIR}" "${_basename}" ) # if no output name specified, use the same as source if( NOT _out_name ) get_filename_component( _out_name ${_src} NAME ) endif( ) + # prepare the binary directory according to source directory + file( RELATIVE_PATH _binary_basedir "${CMAKE_CURRENT_SOURCE_DIR}" "${_basedir}" ) + set( _binary_basedir "${CMAKE_CURRENT_BINARY_DIR}/${_binary_basedir}" ) + file( MAKE_DIRECTORY "${_binary_basedir}" ) + # if no po directory specified, try to determine it if( NOT _po_dir ) if( EXISTS ${CMAKE_SOURCE_DIR}/translations/desktop_files/${_basename} AND