X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=i18n%2FCMakeLists.txt;h=f3d3ac2c45b394659b42aab0f00321372e9b10a9;hp=909b968f0cecd68257181d1abe8e0173f50ce2e4;hb=ad79428b72613730f61b0b3fdb18afa21eee3cc7;hpb=1514aaae673660c7a3e2a82545b8c3947ea3f9b7 diff --git a/i18n/CMakeLists.txt b/i18n/CMakeLists.txt index 909b968f..f3d3ac2c 100644 --- a/i18n/CMakeLists.txt +++ b/i18n/CMakeLists.txt @@ -1,16 +1,16 @@ # Generate and add translations # The LINGUAS variable can be used to limit that set -if(QT_LRELEASE_EXECUTABLE) - # We always include quassel.ts +if(QT_LCONVERT_EXECUTABLE) + # We always include quassel.po generate_qm(QM quassel) set(qm_files ${QM}) # Find more languages - file(GLOB avail_tsfiles quassel_*.ts) - foreach(TS_FILE ${avail_tsfiles}) - get_filename_component(basename ${TS_FILE} NAME_WE) - string(REGEX REPLACE "quassel_(.+)$" "\\1" lang ${basename}) + file(GLOB avail_pofiles quassel_*.po qt_*.po) + foreach(PO_FILE ${avail_pofiles}) + get_filename_component(basename ${PO_FILE} NAME_WE) + string(REGEX REPLACE "q[^_]+_([a-zA-Z]+)(_.+)?$" "\\1" lang ${basename}) # test if we want this set(flg 1) if(LINGUAS) @@ -18,26 +18,48 @@ if(QT_LRELEASE_EXECUTABLE) endif(LINGUAS) if(flg) generate_qm(QM ${basename}) - set(qm_files ${qm_files} ${QM}) - set(gen_linguas "${gen_linguas} ${lang}") + list(APPEND qm_files ${QM}) + list(APPEND gen_linguas ${lang}) endif(flg) - endforeach(TS_FILE ${avail_tsfiles}) + endforeach(PO_FILE ${avail_pofiles}) + if(gen_linguas) + list(REMOVE_DUPLICATES gen_linguas) + endif(gen_linguas) + message(STATUS "Including languages: ${gen_linguas}") +else(QT_LCONVERT_EXECUTABLE) + message(STATUS "WARNING: lconvert not found, you won't have translations!") +endif(QT_LCONVERT_EXECUTABLE) - # Write resource file - set(resfile ${CMAKE_CURRENT_BINARY_DIR}/i18n.qrc) - file(WRITE ${resfile} "\n" - "\n") - foreach(file ${qm_files}) - get_filename_component(file ${file} NAME) - file(APPEND ${resfile} " ${file}\n") - endforeach(file ${qm_files}) - file(APPEND ${resfile} "\n\n") - add_custom_command(OUTPUT ${resfile} DEPENDS ${qm_files}) - #set_directory_properties(PROPERTIES - # ADDITIONAL_MAKE_CLEAN_FILES "${outfiles} i18n.qrc") - qt4_add_resources(RC_I18N ${resfile}) - add_custom_target(i18n DEPENDS ${RC_I18N}) - message(STATUS "Including languages:${gen_linguas}") -else(QT_LRELEASE_EXECUTABLE) - message(STATUS "WARNING: lrelease not found, you won't have translations!") -endif(QT_LRELEASE_EXECUTABLE) +# For a static build, we need to include Qt translations if available +if(STATIC AND QT_TRANSLATIONS_DIR) + foreach(LANG ${gen_linguas}) + file(GLOB lang_files ${QT_TRANSLATIONS_DIR}/qt_${LANG}*.qm) + foreach(absfile ${lang_files}) + get_filename_component(filename ${absfile} NAME) + message(STATUS "Importing ${filename}") + configure_file(${absfile} ${CMAKE_CURRENT_BINARY_DIR}/${filename} COPYONLY) + list(APPEND qm_files ${CMAKE_CURRENT_BINARY_DIR}/${filename}) + endforeach(absfile ${lang_files}) + endforeach(LANG ${gen_linguas}) +endif(STATIC AND QT_TRANSLATIONS_DIR) + +# Write resource file +set(resfile ${CMAKE_CURRENT_BINARY_DIR}/i18n.qrc) +file(WRITE ${resfile} "\n" + "\n") +foreach(file ${qm_files}) + get_filename_component(file ${file} NAME) + file(APPEND ${resfile} " ${file}\n") +endforeach(file ${qm_files}) +file(APPEND ${resfile} "\n\n") + +#add_custom_command(OUTPUT ${resfile} DEPENDS ${qm_files}) +set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${qm_files};i18n.qrc") + +if(EMBED_DATA) + set(COMMON_RCS ${COMMON_RCS} ${resfile} PARENT_SCOPE) +else(EMBED_DATA) + install(FILES ${qm_files} DESTINATION ${DATA_INSTALL_DIR}/quassel/translations) +endif(EMBED_DATA) + +add_custom_target(i18n DEPENDS ${qm_files})