From 7b3eed323b92a21c14482793b6770d25518cddc9 Mon Sep 17 00:00:00 2001 From: "Vladimir Golovnev (Glassez)" Date: Thu, 20 Dec 2018 10:28:49 +0300 Subject: [PATCH] QMake: Compile translations at build time --- qbittorrent.pro | 4 ---- src/app/main.cpp | 2 +- src/lang/lang.pri | 28 ---------------------------- src/src.pro | 21 +++++++++++++++++++++ src/webui/webui.pri | 24 ++---------------------- 5 files changed, 24 insertions(+), 55 deletions(-) delete mode 100644 src/lang/lang.pri diff --git a/qbittorrent.pro b/qbittorrent.pro index 1910dbaef..a7f2a137d 100644 --- a/qbittorrent.pro +++ b/qbittorrent.pro @@ -17,10 +17,6 @@ tarball.commands += rm -fR $${PROJECT_NAME}-$${PROJECT_VERSION} QMAKE_EXTRA_TARGETS += tarball -# Translations included here (at top level) is to avoid regenerating the .qm files -# every time when src.pro is processed -include(src/lang/lang.pri) - # For Qt Creator beautifier DISTFILES += \ uncrustify.cfg diff --git a/src/app/main.cpp b/src/app/main.cpp index 77e6110cc..3d921b82e 100644 --- a/src/app/main.cpp +++ b/src/app/main.cpp @@ -78,7 +78,7 @@ void sigNormalHandler(int signum); void sigAbnormalHandler(int signum); #endif // sys_signame[] is only defined in BSD -const char *sysSigName[] = { +const char *const sysSigName[] = { #if defined(Q_OS_WIN) "", "", "SIGINT", "", "SIGILL", "", "SIGABRT_COMPAT", "", "SIGFPE", "", "", "SIGSEGV", "", "", "", "SIGTERM", "", "", "", "", diff --git a/src/lang/lang.pri b/src/lang/lang.pri deleted file mode 100644 index 504deced2..000000000 --- a/src/lang/lang.pri +++ /dev/null @@ -1,28 +0,0 @@ -TS_FILES += $$files(qbittorrent_*.ts) - -# need to use full path, otherwise running -# `lupdate` will generate *.ts files in project root directory -for(file, TS_FILES) { - TRANSLATIONS += "$${PWD}/$${file}" -} - -isEmpty(QMAKE_LRELEASE) { - win32: QMAKE_LRELEASE = $$[QT_INSTALL_BINS]/lrelease.exe - else: QMAKE_LRELEASE = $$[QT_INSTALL_BINS]/lrelease - unix { - equals(QT_MAJOR_VERSION, 5) { - !exists($$QMAKE_LRELEASE): QMAKE_LRELEASE = lrelease-qt5 - } - } - else { - !exists($$QMAKE_LRELEASE): QMAKE_LRELEASE = lrelease - } -} - -message("Building translations") -TS_FILES_NOEXT = $$replace(TS_FILES, ".ts", "") -for(file, TS_FILES_NOEXT) { - message("Processing $${file}") - system("$$QMAKE_LRELEASE -silent $${file}.ts -qm $${file}.qm") - !exists("$${file}.qm"):error("Building translations failed, cannot continue") -} diff --git a/src/src.pro b/src/src.pro index 3a7d72eb9..65b343ce5 100644 --- a/src/src.pro +++ b/src/src.pro @@ -66,6 +66,27 @@ include(base/base.pri) !nogui: include(gui/gui.pri) !nowebui: include(webui/webui.pri) +isEmpty(QMAKE_LRELEASE) { + win32: QMAKE_LRELEASE = $$[QT_INSTALL_BINS]/lrelease.exe + else: QMAKE_LRELEASE = $$[QT_INSTALL_BINS]/lrelease + unix { + equals(QT_MAJOR_VERSION, 5) { + !exists($$QMAKE_LRELEASE): QMAKE_LRELEASE = lrelease-qt5 + } + } + else { + !exists($$QMAKE_LRELEASE): QMAKE_LRELEASE = lrelease + } +} +lrelease.input = TS_SOURCES +lrelease.output = ${QMAKE_FILE_PATH}/${QMAKE_FILE_BASE}.qm +lrelease.commands = @echo "lrelease ${QMAKE_FILE_NAME}" && $$QMAKE_LRELEASE -silent ${QMAKE_FILE_NAME} -qm ${QMAKE_FILE_OUT} +lrelease.CONFIG += no_link target_predeps +QMAKE_EXTRA_COMPILERS += lrelease + +TRANSLATIONS = $$files($$PWD/lang/qbittorrent_*.ts) +TS_SOURCES += $$TRANSLATIONS + # Resource files QMAKE_RESOURCE_FLAGS += -compress 9 -threshold 5 RESOURCES += \ diff --git a/src/webui/webui.pri b/src/webui/webui.pri index 5088dbb99..1f1135d1a 100644 --- a/src/webui/webui.pri +++ b/src/webui/webui.pri @@ -31,26 +31,6 @@ SOURCES += \ $$PWD/webapplication.cpp \ $$PWD/webui.cpp -RESOURCES += $$PWD/www/webui.qrc $$PWD/www/translations/webui_translations.qrc +TS_SOURCES += $$files($$PWD/www/translations/webui_*.ts) -# WebUI Translation -isEmpty(QMAKE_LRELEASE) { - win32: QMAKE_LRELEASE = $$[QT_INSTALL_BINS]/lrelease.exe - else: QMAKE_LRELEASE = $$[QT_INSTALL_BINS]/lrelease - unix { - equals(QT_MAJOR_VERSION, 5) { - !exists($$QMAKE_LRELEASE): QMAKE_LRELEASE = lrelease-qt5 - } - } - else { - !exists($$QMAKE_LRELEASE): QMAKE_LRELEASE = lrelease - } -} -WEBUI_TRANSLATIONS = $$files(www/translations/webui_*.ts) -WEBUI_TRANSLATIONS_NOEXT = $$replace(WEBUI_TRANSLATIONS, ".ts", "") -message("Building WebUI translations...") -for(L, WEBUI_TRANSLATIONS_NOEXT) { - message("Processing $${L}") - system("$$QMAKE_LRELEASE -silent $${L}.ts -qm $${L}.qm") - !exists("$${L}.qm"): error("Building WebUI translations failed, cannot continue!") -} +RESOURCES += $$PWD/www/webui.qrc $$PWD/www/translations/webui_translations.qrc