TEMPLATE = app
INCLUDEPATH += . ..
TARGET = installerbase
include(../../installerfw.pri)
QT += network qml xml widgets
# add the minimal plugin in static build to be able to start the installer headless with:
# installer-binary --platform minimal
# using QT += qpa_minimal_plugin would result in a minimal only compiled version
!win32:CONFIG(static, static|shared) {
QTPLUGIN += qminimal
}
CONFIG(static, static|shared) {
# prevent qmake from automatically linking in imageformats, bearer, qmltooling plugins
QTPLUGIN.imageformats = -
QTPLUGIN.bearer = -
QTPLUGIN.qmltooling = -
}
DESTDIR = $$IFW_APP_PATH
exists($$LRELEASE) {
IB_TRANSLATIONS = $$files($$PWD/translations/??.ts) $$files($$PWD/translations/??_??.ts)
IB_TRANSLATIONS -= $$PWD/translations/en.ts
wd = $$toNativeSeparators($$IFW_SOURCE_TREE)
sources = src
lupdate_opts = -locations relative -no-ui-lines -no-sort
IB_ALL_TRANSLATIONS = $$IB_TRANSLATIONS $$PWD/translations/untranslated.ts
for(file, IB_ALL_TRANSLATIONS) {
lang = $$replace(file, .*/([^/]*)\\.ts, \\1)
v = ts-$${lang}.commands
$$v = cd $$wd && $$LUPDATE $$lupdate_opts $$sources -ts $$file
QMAKE_EXTRA_TARGETS += ts-$$lang
}
ts-all.commands = cd $$wd && $$LUPDATE $$lupdate_opts $$sources -ts $$IB_ALL_TRANSLATIONS
QMAKE_EXTRA_TARGETS += ts-all
isEqual(QMAKE_DIR_SEP, /) {
commit-ts.commands = \
cd $$wd; \
git add -N src/sdk/translations/??.ts src/sdk/translations/??_??.ts && \
for f in `git diff-files --name-only src/sdk/translations/??.ts src/sdk/translations/??_??.ts`; do \
$$LCONVERT -locations none -i \$\$f -o \$\$f; \
done; \
git add src/sdk/translations/??.ts src/sdk/translations/??_??.ts && git commit
} else {
commit-ts.commands = \
cd $$wd && \
git add -N src/sdk/translations/??.ts src/sdk/translations/??_??.ts && \
for /f usebackq %%f in (`git diff-files --name-only src/sdk/translations/??.ts src/sdk/translations/??_??.ts`) do \
$$LCONVERT -locations none -i %%f -o %%f $$escape_expand(\\n\\t) \
cd $$wd && git add src/sdk/translations/??.ts src/sdk/translations/??_??.ts && git commit
}
QMAKE_EXTRA_TARGETS += commit-ts
empty_ts = ""
write_file($$OUT_PWD/translations/en.ts, empty_ts)|error("Aborting.")
IB_TRANSLATIONS += $$OUT_PWD/translations/en.ts
QMAKE_DISTCLEAN += translations/en.ts
qrc_cont = \
"" \
" "
for (file, IB_TRANSLATIONS) {
lang = $$replace(file, .*/([^/]*)\\.ts, \\1)
qfile = $$[QT_INSTALL_TRANSLATIONS]/qtbase_$${lang}.qm
!exists($$qfile) {
qfile = $$[QT_INSTALL_TRANSLATIONS]/qt_$${lang}.qm
!exists($$qfile) {
warning("No Qt translation for '$$lang'; skipping.")
next()
}
}
qrc_cont += \
" translations/$${lang}.qm" \
" $$qfile"
ACTIVE_IB_TRANSLATIONS += $$file
RESOURCE_DEPS += $$qfile translations/$${lang}.qm
}
qrc_cont += \
" " \
""
RESOURCE = $$OUT_PWD/installerbase.qrc
write_file($$RESOURCE, qrc_cont)|error("Aborting.")
QMAKE_DISTCLEAN += $$RESOURCE
!isEmpty(ACTIVE_IB_TRANSLATIONS) {
updateqm.input = ACTIVE_IB_TRANSLATIONS
updateqm.output = 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
exists($$RCC) {
runrcc.input = RESOURCE
runrcc.output = qrc_${QMAKE_FILE_BASE}.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_DEPS
runrcc.variable_out = SOURCES
QMAKE_EXTRA_COMPILERS += runrcc
}
}
}
FORMS += settingsdialog.ui
HEADERS += \
tabcontroller.h \
installerbasecommons.h \
settingsdialog.h \
console.h \
sdkapp.h \
updatechecker.h \
installerbase.h \
constants.h \
commandlineparser.h
SOURCES = \
main.cpp \
installerbase.cpp \
tabcontroller.cpp \
installerbasecommons.cpp \
settingsdialog.cpp \
updatechecker.cpp \
commandlineparser.cpp
win32 {
# Use our own manifest file
CONFIG -= embed_manifest_exe
RC_FILE = installerbase.rc
SOURCES += console_win.cpp
}
macx:include(../../no_app_bundle.pri)
target.path = $$[QT_INSTALL_BINS]
INSTALLS += target