diff --git a/modules/TDEMacros.cmake b/modules/TDEMacros.cmake index 39c44d3..972de94 100644 --- a/modules/TDEMacros.cmake +++ b/modules/TDEMacros.cmake @@ -1876,16 +1876,23 @@ macro( tde_create_translated_desktop ) 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}" ) + # process source file as a configuration file if necessary + if( "${_src}" MATCHES "\\.cmake$" ) + configure_file( ${_src} ${_basename} @ONLY ) + set( ${_src} "${CMAKE_CURRENT_BINARY_DIR}/${_basename}" ) + string( REGEX REPLACE "\\.cmake$" "" _basename "${_basename}" ) + endif() + + # if no output name specified, use the same as source + if( NOT _out_name ) + get_filename_component( _out_name ${_basename} NAME ) + endif( ) + # if no po directory specified, try to determine it if( NOT _po_dir ) if( EXISTS ${CMAKE_SOURCE_DIR}/translations/desktop_files/${_basename} AND @@ -1912,7 +1919,7 @@ macro( tde_create_translated_desktop ) if( _translations ) # prepare a full name for the target - get_filename_component( _target ${_src} ABSOLUTE ) + get_filename_component( _target ${_basename} ABSOLUTE ) file( RELATIVE_PATH _target "${CMAKE_SOURCE_DIR}" "${_target}" ) string( REPLACE "/" "+" _target "${_target}-translated" )