summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--modules/TDEMacros.cmake9
1 files changed, 8 insertions, 1 deletions
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