diff --git a/modules/TDEMacros.cmake b/modules/TDEMacros.cmake index 913c854..6215f9f 100644 --- a/modules/TDEMacros.cmake +++ b/modules/TDEMacros.cmake @@ -2017,15 +2017,14 @@ macro( tde_create_translated_desktop ) else( ) - # create template for intltool-merge - file( READ ${_src} _src_data ) + # prepare keywords for intltool string( REPLACE ";" "|" _keywords_match "(${_keywords_desktop})" ) - string( REGEX REPLACE "(^|\n)${_keywords_match}[ ]*=[ ]*" "\\1_\\2=" _src_data "${_src_data}" ) - file( WRITE ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.in "${_src_data}" ) # merge translations command + get_filename_component( _src ${_src} ABSOLUTE ) add_custom_command( OUTPUT ${_basename}${_binsuffix} + COMMAND ${PERL_EXECUTABLE} -p -e "'s/^${_keywords_match}[ ]*=[ ]*/_\\1=/'" < ${_src} > ${_basename}.in COMMAND ${PERL_EXECUTABLE} ${INTLTOOL_MERGE_EXECUTABLE} -q -d ${_po_dir} ${_basename}.in ${_basename}${_binsuffix} DEPENDS ${_src} COMMENT "Merging translations into ${_sourcename}"