1 # This file contains macros dealing with translation
2 # files for Quassel IRC.
4 # Copyright (C) 2008 by the Quassel Project, devel@quassel-irc.org
6 # Redistribution and use is allowed according to the terms of the BSD license.
7 # For details see the accompanying COPYING-CMAKE-SCRIPTS file.
10 macro(quassel_generate_qm outvar basename)
11 set(input ${CMAKE_SOURCE_DIR}/i18n/${basename}.ts)
12 set(output ${CMAKE_CURRENT_BINARY_DIR}/${basename}.qm)
13 add_custom_command(OUTPUT ${output}
14 COMMAND ${QT_LRELEASE_EXECUTABLE}
18 DEPENDS ${CMAKE_SOURCE_DIR}/i18n/${basename}.ts)
19 set(${outvar} ${output})
20 endmacro(quassel_generate_qm outvar basename)
22 macro(quassel_generate_i18n_resource outvar)
24 if(QT_LRELEASE_EXECUTABLE)
25 # We always include quassel.ts
26 quassel_generate_qm(QM quassel)
30 file(GLOB avail_tsfiles ${CMAKE_SOURCE_DIR}/i18n/quassel_*.ts)
31 foreach(TS_FILE ${avail_tsfiles})
32 get_filename_component(basename ${TS_FILE} NAME_WE)
33 string(REGEX REPLACE "quassel_(.+)$" "\\1" lang ${basename})
34 # test if we want this
37 string(REGEX MATCH "${lang}" flg ${linguas})
40 quassel_generate_qm(QM ${basename})
41 set(outfiles ${outfiles} ${QM})
42 set(gen_linguas "${gen_linguas} ${lang}")
44 endforeach(TS_FILE ${avail_tsfiles})
47 set(resfile ${CMAKE_CURRENT_BINARY_DIR}/i18n.qrc)
48 file(WRITE ${resfile} "<!DOCTYPE RCC><RCC version=\"1.0\">\n"
49 "<qresource prefix=\"/i18n\">\n")
50 foreach(file ${outfiles})
51 get_filename_component(file ${file} NAME)
52 file(APPEND ${resfile} " <file>${file}</file>\n")
53 endforeach(file ${outfiles})
54 file(APPEND ${resfile} "</qresource>\n</RCC>\n")
55 add_custom_command(OUTPUT ${resfile} DEPENDS ${outfiles})
56 set_directory_properties(PROPERTIES
57 ADDITIONAL_MAKE_CLEAN_FILES "${outfiles} i18n.qrc")
60 qt4_add_resources(RC_OUT ${resfile})
61 set(${outvar} ${RC_OUT})
63 message(STATUS "Including languages:${gen_linguas}")
64 else(QT_LRELEASE_EXECUTABLE)
65 message(STATUS "WARNING: lrelease not found, you won't have translations!")
66 endif(QT_LRELEASE_EXECUTABLE)
67 endmacro(quassel_generate_i18n_resource outvar)