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