summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--installerfw.pri10
-rw-r--r--src/sdk/sdk.pro68
-rw-r--r--src/src.pro2
3 files changed, 67 insertions, 13 deletions
diff --git a/installerfw.pri b/installerfw.pri
index e9d41a641..151fd1bde 100644
--- a/installerfw.pri
+++ b/installerfw.pri
@@ -3,6 +3,10 @@
}
IFW_PRI_INCLUDED = 1
+defineReplace(toNativeSeparators) {
+ return($$replace(1, /, $$QMAKE_DIR_SEP))
+}
+
defineReplace(cleanPath) {
win32:1 ~= s|\\\\|/|g
contains(1, ^/.*):pfx = /
@@ -27,6 +31,12 @@ IFW_SOURCE_TREE = $$PWD
IFW_APP_PATH = $$IFW_BUILD_TREE/bin
IFW_LIB_PATH = $$IFW_BUILD_TREE/lib
+RCC = $$cleanPath($$toNativeSeparators($$[QT_INSTALL_BINS]/rcc))
+LRELEASE = $$cleanPath($$toNativeSeparators($$[QT_INSTALL_BINS]/lrelease))
+
+win32:RCC = $${RCC}.exe
+win32:LRELEASE = $${LRELEASE}.exe
+
INCLUDEPATH += \
$$IFW_SOURCE_TREE/src/libs/7zip \
$$IFW_SOURCE_TREE/src/libs/kdtools \
diff --git a/src/sdk/sdk.pro b/src/sdk/sdk.pro
index 44930f7a0..bdf515949 100644
--- a/src/sdk/sdk.pro
+++ b/src/sdk/sdk.pro
@@ -11,21 +11,65 @@ QT += network script
CONFIG -= app_bundle
DESTDIR = $$IFW_APP_PATH
-QM_FILES = qt_de.qm de_de.qm en_us.qm
-defineTest(testQmFiles) {
- for(file, QM_FILES) {
- !exists($$PWD/translations/$$file) {
- message("File $$PWD/translations/$$file not found!")
- return(false)
+if (exists($$LRELEASE)) {
+ QT_LANGUAGES = qt_de
+ IB_LANGUAGES = de_de en_us
+ defineReplace(prependAll) {
+ for(a,$$1):result += $$2$${a}$$3
+ return($$result)
+ }
+
+ defineTest(testFiles) {
+ for(file, $$1) {
+ !exists($$file):return(false)
}
+ return(true)
}
- return(true)
-}
-if (testQmFiles()) {
- RESOURCES += installerbase.qrc
-}
+ SUCCESS = false
+ IB_TRANSLATIONS = $$prependAll(IB_LANGUAGES, $$PWD/translations/,.ts)
+ QT_TRANSLATIONS = $$prependAll(QT_LANGUAGES, $$[QT_INSTALL_TRANSLATIONS]/,.ts)
+ if (!testFiles(QT_TRANSLATIONS)) {
+ QT_COMPILED_TRANSLATIONS = $$prependAll(QT_LANGUAGES, $$[QT_INSTALL_TRANSLATIONS]/,.qm)
+ if (testFiles(QT_COMPILED_TRANSLATIONS)) {
+ SUCCESS = true
+ copyqm.input = QT_COMPILED_TRANSLATIONS
+ copyqm.output = $$PWD/translations/${QMAKE_FILE_BASE}.qm
+ unix:copyqm.commands = $$QMAKE_COPY ${QMAKE_FILE_IN} ${QMAKE_FILE_OUT}
+ win32:copyqm.commands = $$QMAKE_COPY \"${QMAKE_FILE_IN}\" \"${QMAKE_FILE_OUT}\"
+ copyqm.name = COPY ${QMAKE_FILE_IN}
+ copyqm.CONFIG += no_link target_predeps
+ QMAKE_EXTRA_COMPILERS += copyqm
+ }
+ } else {
+ SUCCESS = true
+ IB_TRANSLATIONS += $$QT_TRANSLATIONS
+ }
+
+ if (!isEmpty(SUCCESS)) {
+ updateqm.input = IB_TRANSLATIONS
+ updateqm.output = $$PWD/translations/${QMAKE_FILE_BASE}.qm
+ updateqm.commands = $$LRELEASE ${QMAKE_FILE_IN} -qm ${QMAKE_FILE_OUT}
+ updateqm.name = LRELEASE ${QMAKE_FILE_IN}
+ updateqm.CONFIG += no_link target_predeps
+ QMAKE_EXTRA_COMPILERS += updateqm
+
+ if (exists($$RCC)) {
+ RESOURCE_IB_TRANSLATIONS = $$prependAll(IB_LANGUAGES, $$PWD/translations/,.qm)
+ RESOURCE_QT_TRANSLATIONS = $$prependAll(QT_LANGUAGES, $$PWD/translations/,.qm)
+ RESOURCE = $$PWD/installerbase.qrc
+ runrcc.input = RESOURCE
+ runrcc.output = $$PWD/qrc_installerbase.cpp
+ runrcc.commands = $$RCC -name ${QMAKE_FILE_BASE} ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT}
+ runrcc.name = RCC ${QMAKE_FILE_IN}
+ runrcc.CONFIG += no_link explicit_dependencies
+ runrcc.depends = $$RESOURCE_IB_TRANSLATIONS $$RESOURCE_QT_TRANSLATIONS
+ runrcc.variable_out = SOURCES
+ QMAKE_EXTRA_COMPILERS += runrcc
+ }
+ }
+}
FORMS += settingsdialog.ui
HEADERS += installerbase_p.h \
@@ -41,7 +85,7 @@ SOURCES = installerbase.cpp \
win32:RC_FILE = installerbase.rc
win32-msvc2005 {
- CONFIG += embed_manifest_exe #msvc2008 is doing this automaticaly
+ CONFIG += embed_manifest_exe #msvc2008 is doing this automatically
}
embed_manifest_exe:win32-msvc2005 {
diff --git a/src/src.pro b/src/src.pro
index 02e8eaf85..92ee0cf9b 100644
--- a/src/src.pro
+++ b/src/src.pro
@@ -1,4 +1,4 @@
CONFIG += ordered
TEMPLATE = subdirs
SUBDIRS += libs sdk
-TRANSLATIONS += sdk/translations/de_de.ts sdk/translations/en_us.ts \ No newline at end of file
+TRANSLATIONS += sdk/translations/de_de.ts sdk/translations/en_us.ts