From 3bd97595478d1433633873419f07b8eadb34900c Mon Sep 17 00:00:00 2001 From: Michael Zanetti Date: Tue, 7 May 2019 18:12:21 +0200 Subject: [PATCH 1/5] fix make lupdate --- nymea.pro | 3 ++- plugins/plugins.pri | 30 +++++++++++------------------- 2 files changed, 13 insertions(+), 20 deletions(-) diff --git a/nymea.pro b/nymea.pro index 3713aa3e..40ea2eec 100644 --- a/nymea.pro +++ b/nymea.pro @@ -24,9 +24,10 @@ QMAKE_EXTRA_TARGETS += licensecheck # make lupdate to update .ts files CORE_TRANSLATIONS += $$files($${top_srcdir}/translations/*.ts, true) lupdate.commands = lupdate -recursive -no-obsolete $${top_srcdir} -ts $${CORE_TRANSLATIONS}; +lupdate.commands += make -C plugins/mock plugininfo; PLUGIN_TRANSLATIONS += $$files($${top_srcdir}/plugins/mock/translations/*.ts, true) lupdate.commands += lupdate -recursive -no-obsolete $${top_builddir}/plugins/mock/ -ts $${PLUGIN_TRANSLATIONS}; -lupdate.depends = FORCE +lupdate.depends = FORCE qmake_all TRANSLATIONS = $${CORE_TRANSLATIONS} $${PLUGIN_TRANSLATIONS} # make lrelease to compile .ts to .qm diff --git a/plugins/plugins.pri b/plugins/plugins.pri index fd6d752f..2d2919fd 100644 --- a/plugins/plugins.pri +++ b/plugins/plugins.pri @@ -10,28 +10,20 @@ LIBS += -L../../libnymea -lnymea HEADERS += plugininfo.h # Create plugininfo file -JSONFILES = deviceplugin"$$TARGET".json -plugininfo.target = plugininfo.h -plugininfo.output = plugininfo.h -plugininfo.CONFIG = no_link -plugininfo.input = JSONFILES -plugininfo.commands = touch ${QMAKE_FILE_OUT}; $$top_srcdir/plugins/nymea-generateplugininfo \ +plugininfo.target = plugininfo +plugininfo.commands = $$top_srcdir/plugins/nymea-generateplugininfo \ --filetype i \ - --jsonfile ${QMAKE_FILE_NAME} \ - --output ${QMAKE_FILE_OUT} \ - --builddir $$OUT_PWD; - -externplugininfo.target = extern-plugininfo.h -externplugininfo.output = extern-plugininfo.h -externplugininfo.CONFIG = no_link -externplugininfo.input = JSONFILES -externplugininfo.commands = touch ${QMAKE_FILE_OUT}; $$top_srcdir/plugins/nymea-generateplugininfo \ + --jsonfile $$PWD/$$TARGET/deviceplugin"$$TARGET".json \ + --output plugininfo.h \ + --builddir $$OUT_PWD; \ + $$top_srcdir/plugins/nymea-generateplugininfo \ --filetype e \ - --jsonfile ${QMAKE_FILE_NAME} \ - --output ${QMAKE_FILE_OUT} \ + --jsonfile $$PWD/$$TARGET/deviceplugin"$$TARGET".json \ + --output extern-plugininfo.h \ --builddir $$OUT_PWD; -PRE_TARGETDEPS += compiler_plugininfo_make_all compiler_externplugininfo_make_all -QMAKE_EXTRA_COMPILERS += plugininfo externplugininfo +QMAKE_EXTRA_TARGETS += plugininfo + +PRE_TARGETDEPS += plugininfo # Install plugin target.path = $$[QT_INSTALL_LIBS]/nymea/plugins/ From 4c34bcefd5e51d05d0163eb023e579ccd06b1629 Mon Sep 17 00:00:00 2001 From: Michael Zanetti Date: Fri, 10 May 2019 15:34:42 +0200 Subject: [PATCH 2/5] Keep it as a compiler, but also add it as a target --- plugins/plugins.pri | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/plugins/plugins.pri b/plugins/plugins.pri index 2d2919fd..0f7f5ce9 100644 --- a/plugins/plugins.pri +++ b/plugins/plugins.pri @@ -10,7 +10,10 @@ LIBS += -L../../libnymea -lnymea HEADERS += plugininfo.h # Create plugininfo file -plugininfo.target = plugininfo +JSONFILE=$$PWD/$$TARGET/deviceplugin"$$TARGET".json +plugininfo.input = JSONFILE +plugininfo.output = plugininfo.h +plugininfo.CONFIG = no_link target_predeps plugininfo.commands = $$top_srcdir/plugins/nymea-generateplugininfo \ --filetype i \ --jsonfile $$PWD/$$TARGET/deviceplugin"$$TARGET".json \ @@ -21,10 +24,11 @@ plugininfo.commands = $$top_srcdir/plugins/nymea-generateplugininfo \ --jsonfile $$PWD/$$TARGET/deviceplugin"$$TARGET".json \ --output extern-plugininfo.h \ --builddir $$OUT_PWD; +# Add it as a compiler, so it will be called before building like moc +QMAKE_EXTRA_COMPILERS += plugininfo +# But also add it as a target so we can add it separately without building. E.g. for updating translations. QMAKE_EXTRA_TARGETS += plugininfo -PRE_TARGETDEPS += plugininfo - # Install plugin target.path = $$[QT_INSTALL_LIBS]/nymea/plugins/ INSTALLS += target From e1ff0a4ee1c0ac1c43de424e277e40e6f9d4fec5 Mon Sep 17 00:00:00 2001 From: Michael Zanetti Date: Mon, 13 May 2019 18:13:19 +0200 Subject: [PATCH 3/5] Generate external file first. --- plugins/plugins.pri | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/plugins/plugins.pri b/plugins/plugins.pri index 0f7f5ce9..c3268385 100644 --- a/plugins/plugins.pri +++ b/plugins/plugins.pri @@ -15,14 +15,14 @@ plugininfo.input = JSONFILE plugininfo.output = plugininfo.h plugininfo.CONFIG = no_link target_predeps plugininfo.commands = $$top_srcdir/plugins/nymea-generateplugininfo \ - --filetype i \ - --jsonfile $$PWD/$$TARGET/deviceplugin"$$TARGET".json \ - --output plugininfo.h \ - --builddir $$OUT_PWD; \ - $$top_srcdir/plugins/nymea-generateplugininfo \ --filetype e \ --jsonfile $$PWD/$$TARGET/deviceplugin"$$TARGET".json \ --output extern-plugininfo.h \ + --builddir $$OUT_PWD; \ + $$top_srcdir/plugins/nymea-generateplugininfo \ + --filetype i \ + --jsonfile $$PWD/$$TARGET/deviceplugin"$$TARGET".json \ + --output plugininfo.h \ --builddir $$OUT_PWD; # Add it as a compiler, so it will be called before building like moc QMAKE_EXTRA_COMPILERS += plugininfo From 54f5530ac44f90321067feacec548ae125e54949 Mon Sep 17 00:00:00 2001 From: Michael Zanetti Date: Mon, 13 May 2019 23:15:47 +0200 Subject: [PATCH 4/5] add extern-plugininfo.h to precompiler output --- plugins/plugins.pri | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/plugins.pri b/plugins/plugins.pri index c3268385..8b83b61b 100644 --- a/plugins/plugins.pri +++ b/plugins/plugins.pri @@ -12,7 +12,7 @@ HEADERS += plugininfo.h # Create plugininfo file JSONFILE=$$PWD/$$TARGET/deviceplugin"$$TARGET".json plugininfo.input = JSONFILE -plugininfo.output = plugininfo.h +plugininfo.output = plugininfo.h extern-plugininfo.h plugininfo.CONFIG = no_link target_predeps plugininfo.commands = $$top_srcdir/plugins/nymea-generateplugininfo \ --filetype e \ From 7b668e128ec62805a28f7280754d6fb8c0fb849c Mon Sep 17 00:00:00 2001 From: Michael Zanetti Date: Tue, 14 May 2019 10:49:30 +0200 Subject: [PATCH 5/5] Split it into two again... It's not working reliably otherwise --- plugins/plugins.pri | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/plugins/plugins.pri b/plugins/plugins.pri index 8b83b61b..9b106c94 100644 --- a/plugins/plugins.pri +++ b/plugins/plugins.pri @@ -12,22 +12,25 @@ HEADERS += plugininfo.h # Create plugininfo file JSONFILE=$$PWD/$$TARGET/deviceplugin"$$TARGET".json plugininfo.input = JSONFILE -plugininfo.output = plugininfo.h extern-plugininfo.h +plugininfo.output = plugininfo.h plugininfo.CONFIG = no_link target_predeps plugininfo.commands = $$top_srcdir/plugins/nymea-generateplugininfo \ - --filetype e \ - --jsonfile $$PWD/$$TARGET/deviceplugin"$$TARGET".json \ - --output extern-plugininfo.h \ - --builddir $$OUT_PWD; \ - $$top_srcdir/plugins/nymea-generateplugininfo \ --filetype i \ --jsonfile $$PWD/$$TARGET/deviceplugin"$$TARGET".json \ --output plugininfo.h \ --builddir $$OUT_PWD; +extern-plugininfo.input = JSONFILE +extern-plugininfo.output = extern-plugininfo.h +extern-plugininfo.CONFIG = no_link target_predeps +extern-plugininfo.commands = $$top_srcdir/libnymea/plugin/nymea-generateplugininfo \ + --filetype e \ + --jsonfile $$PWD/$$TARGET/deviceplugin"$$TARGET".json \ + --output extern-plugininfo.h \ + --builddir $$OUT_PWD; # Add it as a compiler, so it will be called before building like moc -QMAKE_EXTRA_COMPILERS += plugininfo +QMAKE_EXTRA_COMPILERS += plugininfo extern-plugininfo # But also add it as a target so we can add it separately without building. E.g. for updating translations. -QMAKE_EXTRA_TARGETS += plugininfo +QMAKE_EXTRA_TARGETS += plugininfo extern-plugininfo # Install plugin target.path = $$[QT_INSTALL_LIBS]/nymea/plugins/