X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=cmake%2Fmodules%2FQuasselGenerateTranslations.cmake;fp=cmake%2Fmodules%2FQuasselGenerateTranslations.cmake;h=6330ac58a3eeb5dc77265f4c439b38d8a85e562e;hp=0000000000000000000000000000000000000000;hb=5d4f2b11c300d85ef0030575746db2f187bf21e7;hpb=b84f31a79b8cc8b69db7b21723493224334575b6 diff --git a/cmake/modules/QuasselGenerateTranslations.cmake b/cmake/modules/QuasselGenerateTranslations.cmake new file mode 100644 index 00000000..6330ac58 --- /dev/null +++ b/cmake/modules/QuasselGenerateTranslations.cmake @@ -0,0 +1,66 @@ +# This file contains macros dealing with translation +# files for Quassel IRC. + +# Copyright (C) 2008 by the Quassel Project, devel@quassel-irc.org +# +# Redistribution and use is allowed according to the terms of the BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. + + +macro(quassel_generate_qm outvar basename) + set(input ${CMAKE_SOURCE_DIR}/i18n/${basename}.ts) + set(output ${CMAKE_CURRENT_BINARY_DIR}/${basename}.qm) + add_custom_command(OUTPUT ${output} + COMMAND ${QT_LRELEASE_EXECUTABLE} + ARGS ${input} + -qm ${output} + -silent -compress + DEPENDS ${CMAKE_SOURCE_DIR}/i18n/${basename}.ts) + set(${outvar} ${output}) +endmacro(quassel_generate_qm outvar basename) + +macro(quassel_generate_i18n_resource outvar) + set(linguas ${ARGN}) + if(QT_LRELEASE_EXECUTABLE) + # We always include quassel.ts + quassel_generate_qm(QM quassel) + set(outfiles ${QM}) + + # Find more languages + file(GLOB avail_tsfiles ${CMAKE_SOURCE_DIR}/i18n/quassel_*.ts) + foreach(TS_FILE ${avail_tsfiles}) + get_filename_component(basename ${TS_FILE} NAME_WE) + string(REGEX REPLACE "quassel_(.+)$" "\\1" lang ${basename}) + # test if we want this + set(flg 1) + if(linguas) + string(REGEX MATCH "${lang}" flg ${linguas}) + endif(linguas) + if(flg) + quassel_generate_qm(QM ${basename}) + set(outfiles ${outfiles} ${QM}) + endif(flg) + endforeach(TS_FILE ${avail_tsfiles}) + + # Write resource file + set(resfile ${CMAKE_CURRENT_BINARY_DIR}/i18n.qrc) + file(WRITE ${resfile} "\n" + "\n") + foreach(file ${outfiles}) + get_filename_component(file ${file} NAME) + file(APPEND ${resfile} " ${file}\n") + endforeach(file ${outfiles}) + file(APPEND ${resfile} "\n\n") + add_custom_command(OUTPUT ${resfile} DEPENDS ${outfiles}) + set_directory_properties(PROPERTIES + ADDITIONAL_MAKE_CLEAN_FILES "${outfiles} i18n.qrc") + + # Generate resource + qt4_add_resources(RC_OUT ${resfile}) + set(${outvar} ${RC_OUT}) + + else(QT_LRELEASE_EXECUTABLE) + message(STATUS "WARNING: lrelease not found, you won't have translations!") + endif(QT_LRELEASE_EXECUTABLE) +endmacro(quassel_generate_i18n_resource outvar linguas) +