macro(add_tomahawk_translations language) list(APPEND TOMAHAWK_LANGUAGES ${ARGV}) set(tomahawk_i18n_qrc_content "\n") # tomahawk and qt language files set(tomahawk_i18n_qrc_content "${tomahawk_i18n_qrc_content}\n") foreach(lang ${TOMAHAWK_LANGUAGES}) set(tomahawk_i18n_qrc_content "${tomahawk_i18n_qrc_content}tomahawk_${lang}.qm\n") if(NOT lang STREQUAL "en" AND EXISTS ${QT_TRANSLATIONS_DIR}/qt_${lang}.qm) file(COPY ${QT_TRANSLATIONS_DIR}/qt_${lang}.qm DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) set(tomahawk_i18n_qrc_content "${tomahawk_i18n_qrc_content}qt_${lang}.qm\n") endif() # build explicitly enabled languages list(APPEND TS_FILES "${CMAKE_SOURCE_DIR}/lang/tomahawk_${lang}.ts") endforeach() set(tomahawk_i18n_qrc_content "${tomahawk_i18n_qrc_content}\n") set(tomahawk_i18n_qrc_content "${tomahawk_i18n_qrc_content}\n") file(WRITE ${CMAKE_BINARY_DIR}/lang/tomahawk_i18n.qrc "${tomahawk_i18n_qrc_content}" ) QT4_ADD_TRANSLATION(QM_FILES ${TS_FILES}) ## HACK HACK HACK - around rcc limitations to allow out of source-tree building SET( trans_file tomahawk_i18n ) SET( trans_srcfile ${CMAKE_BINARY_DIR}/lang/${trans_file}.qrc) SET( trans_infile ${CMAKE_CURRENT_BINARY_DIR}/${trans_file}.qrc) SET( trans_outfile ${CMAKE_CURRENT_BINARY_DIR}/qrc_${trans_file}.cxx) # Copy the QRC file to the output directory ADD_CUSTOM_COMMAND( OUTPUT ${trans_infile} COMMAND ${CMAKE_COMMAND} -E copy ${trans_srcfile} ${trans_infile} MAIN_DEPENDENCY ${trans_srcfile} ) # Run the resource compiler (rcc_options should already be set) ADD_CUSTOM_COMMAND( OUTPUT ${trans_outfile} COMMAND ${QT_RCC_EXECUTABLE} ARGS ${rcc_options} -name ${trans_file} -o ${trans_outfile} ${trans_infile} MAIN_DEPENDENCY ${trans_infile} DEPENDS ${QM_FILES} ) endmacro()