Message ID | 20200919194857.491282-1-b.bilas@grinn-global.com |
---|---|
State | Changes Requested |
Headers | show |
Series | package/qt5/qt5location: needs qt5declarative quick package | expand |
On Sat, 19 Sep 2020 21:48:57 +0200 Bartosz Bilas <b.bilas@grinn-global.com> wrote: > Simply add the dependency of qt5declarative quick module that > forces Qt OpenGL support which is needed for qt5location component [1]. > > Fixes: > http://autobuild.buildroot.net/results/ddd/ddda7cdb9400f6ca7d548e9b5ada18674fbe42e0/ > http://autobuild.buildroot.net/results/ddb/ddb25ebb591ed6029a7bd4934464171358553936/ > > and many many more... > > [1] https://code.woboq.org/qt5/qtdeclarative/src/quick/scenegraph/coreapi/qsgmaterialshader.h.html#105 > > Signed-off-by: Bartosz Bilas <b.bilas@grinn-global.com> > --- > package/qt5/qt5location/Config.in | 4 ++++ > package/qt5/qt5location/qt5location.mk | 5 +---- > 2 files changed, 5 insertions(+), 4 deletions(-) > > diff --git a/package/qt5/qt5location/Config.in b/package/qt5/qt5location/Config.in > index c68deb1006..207ad5a37a 100644 > --- a/package/qt5/qt5location/Config.in > +++ b/package/qt5/qt5location/Config.in > @@ -1,5 +1,6 @@ > config BR2_PACKAGE_QT5LOCATION > bool "qt5location" > + depends on BR2_PACKAGE_QT5DECLARATIVE_QUICK This looks a bit weird, because src/src.pro looks like this: SUBDIRS += positioning positioning.depends = clip2tri qtHaveModule(quick) { SUBDIRS += positioningquick location positioningquick.depends += positioning location.depends += positioningquick clip2tri plugins.depends += location SUBDIRS += imports imports.depends += positioningquick positioning location } So, the "location" subdirectory should not be built of the quick module is not there. Could you try to see what's going on ? Thanks! Thomas
Hi Thomas, On 19.09.2020 22:08, Thomas Petazzoni wrote: > On Sat, 19 Sep 2020 21:48:57 +0200 > Bartosz Bilas <b.bilas@grinn-global.com> wrote: > >> Simply add the dependency of qt5declarative quick module that >> forces Qt OpenGL support which is needed for qt5location component [1]. >> >> Fixes: >> http://autobuild.buildroot.net/results/ddd/ddda7cdb9400f6ca7d548e9b5ada18674fbe42e0/ >> http://autobuild.buildroot.net/results/ddb/ddb25ebb591ed6029a7bd4934464171358553936/ >> >> and many many more... >> >> [1] https://code.woboq.org/qt5/qtdeclarative/src/quick/scenegraph/coreapi/qsgmaterialshader.h.html#105 >> >> Signed-off-by: Bartosz Bilas <b.bilas@grinn-global.com> >> --- >> package/qt5/qt5location/Config.in | 4 ++++ >> package/qt5/qt5location/qt5location.mk | 5 +---- >> 2 files changed, 5 insertions(+), 4 deletions(-) >> >> diff --git a/package/qt5/qt5location/Config.in b/package/qt5/qt5location/Config.in >> index c68deb1006..207ad5a37a 100644 >> --- a/package/qt5/qt5location/Config.in >> +++ b/package/qt5/qt5location/Config.in >> @@ -1,5 +1,6 @@ >> config BR2_PACKAGE_QT5LOCATION >> bool "qt5location" >> + depends on BR2_PACKAGE_QT5DECLARATIVE_QUICK > This looks a bit weird, because src/src.pro looks like this: > > SUBDIRS += positioning > positioning.depends = clip2tri > > qtHaveModule(quick) { > SUBDIRS += positioningquick location > positioningquick.depends += positioning > location.depends += positioningquick clip2tri > > plugins.depends += location > > SUBDIRS += imports > imports.depends += positioningquick positioning location > } > > So, the "location" subdirectory should not be built of the quick module > is not there. Yes, it's weird - it seems that this condition is always true even though quick module isn't compiled therefore I sent a quick workaround to fix build errors until I find a proper solution ;) > > Could you try to see what's going on ? Yes, I'm doing that now :) > > Thanks! > > Thomas Best Bartek
Hello again, On 19.09.2020 22:34, Bartosz Bilas wrote: > Hi Thomas, > > On 19.09.2020 22:08, Thomas Petazzoni wrote: >> On Sat, 19 Sep 2020 21:48:57 +0200 >> Bartosz Bilas <b.bilas@grinn-global.com> wrote: >> >>> Simply add the dependency of qt5declarative quick module that >>> forces Qt OpenGL support which is needed for qt5location component [1]. >>> >>> Fixes: >>> http://autobuild.buildroot.net/results/ddd/ddda7cdb9400f6ca7d548e9b5ada18674fbe42e0/ >>> http://autobuild.buildroot.net/results/ddb/ddb25ebb591ed6029a7bd4934464171358553936/ >>> >>> and many many more... >>> >>> [1] >>> https://code.woboq.org/qt5/qtdeclarative/src/quick/scenegraph/coreapi/qsgmaterialshader.h.html#105 >>> >>> Signed-off-by: Bartosz Bilas <b.bilas@grinn-global.com> >>> --- >>> package/qt5/qt5location/Config.in | 4 ++++ >>> package/qt5/qt5location/qt5location.mk | 5 +---- >>> 2 files changed, 5 insertions(+), 4 deletions(-) >>> >>> diff --git a/package/qt5/qt5location/Config.in >>> b/package/qt5/qt5location/Config.in >>> index c68deb1006..207ad5a37a 100644 >>> --- a/package/qt5/qt5location/Config.in >>> +++ b/package/qt5/qt5location/Config.in >>> @@ -1,5 +1,6 @@ >>> config BR2_PACKAGE_QT5LOCATION >>> bool "qt5location" >>> + depends on BR2_PACKAGE_QT5DECLARATIVE_QUICK >> This looks a bit weird, because src/src.pro looks like this: >> >> SUBDIRS += positioning >> positioning.depends = clip2tri >> >> qtHaveModule(quick) { >> SUBDIRS += positioningquick location >> positioningquick.depends += positioning >> location.depends += positioningquick clip2tri >> >> plugins.depends += location >> >> SUBDIRS += imports >> imports.depends += positioningquick positioning location >> } >> >> So, the "location" subdirectory should not be built of the quick module >> is not there. > Yes, it's weird - it seems that this condition is always true even > though quick module isn't compiled therefore I sent a quick workaround > to fix build errors until I find a proper solution ;) After a quick investigation it seems that we should drop BR2_PACKAGE_QT5DECLARATIVE_QUICK option and select BR2_PACKAGE_QT5BASE_OPENGL option if BR2_PACKAGE_QT5_GL_AVAILABLE directly when BR2_PACKAGE_QT5DECLARATIVE package is selected because qt5declarative module includes quick subdirectory when gui module is available: qtHaveModule(gui):qtConfig(qml-animation) { SUBDIRS += quick ...snip... } and then we should add dependency of the qt5declarative package in qt5location to solve the issue above. qt5declarative package contains most of quick components enabled by default even though quick module wasn't selected, see: Qt QML: QML network support .................... yes QML debugging and profiling support .... yes QML just-in-time compiler .............. yes QML sequence object .................... yes QML XML http request ................... yes QML Locale ............................. yes Qt QML Models: QML list model ......................... yes QML delegate model ..................... yes Qt Quick: Direct3D 12 ............................ no AnimatedImage item ..................... yes Canvas item ............................ yes Support for Qt Quick Designer .......... yes Flipable item .......................... yes GridView item .......................... yes ListView item .......................... yes TableView item ......................... yes Path support ........................... yes PathView item .......................... yes Positioner items ....................... yes Repeater item .......................... yes ShaderEffect item ...................... yes Sprite item ............................ yes >> >> Could you try to see what's going on ? > Yes, I'm doing that now :) >> >> Thanks! >> >> Thomas > Best > Bartek > _______________________________________________ > buildroot mailing list > buildroot@busybox.net > http://lists.busybox.net/mailman/listinfo/buildroot Best Bartek
Hello Bartek, On Sat, 19 Sep 2020 23:05:00 +0200, Bartosz Bilas <b.bilas@grinn-global.com> wrote: > Hello again, > > On 19.09.2020 22:34, Bartosz Bilas wrote: > > Hi Thomas, > > > > On 19.09.2020 22:08, Thomas Petazzoni wrote: > >> On Sat, 19 Sep 2020 21:48:57 +0200 > >> Bartosz Bilas <b.bilas@grinn-global.com> wrote: > >> > >>> Simply add the dependency of qt5declarative quick module that > >>> forces Qt OpenGL support which is needed for qt5location component [1]. > >>> > >>> Fixes: > >>> http://autobuild.buildroot.net/results/ddd/ddda7cdb9400f6ca7d548e9b5ada18674fbe42e0/ > >>> http://autobuild.buildroot.net/results/ddb/ddb25ebb591ed6029a7bd4934464171358553936/ > >>> > >>> and many many more... > >>> > >>> [1] > >>> https://code.woboq.org/qt5/qtdeclarative/src/quick/scenegraph/coreapi/qsgmaterialshader.h.html#105 > >>> > >>> Signed-off-by: Bartosz Bilas <b.bilas@grinn-global.com> > >>> --- > >>> package/qt5/qt5location/Config.in | 4 ++++ > >>> package/qt5/qt5location/qt5location.mk | 5 +---- > >>> 2 files changed, 5 insertions(+), 4 deletions(-) > >>> > >>> diff --git a/package/qt5/qt5location/Config.in > >>> b/package/qt5/qt5location/Config.in > >>> index c68deb1006..207ad5a37a 100644 > >>> --- a/package/qt5/qt5location/Config.in > >>> +++ b/package/qt5/qt5location/Config.in > >>> @@ -1,5 +1,6 @@ > >>> config BR2_PACKAGE_QT5LOCATION > >>> bool "qt5location" > >>> + depends on BR2_PACKAGE_QT5DECLARATIVE_QUICK > >> This looks a bit weird, because src/src.pro looks like this: > >> > >> SUBDIRS += positioning > >> positioning.depends = clip2tri > >> > >> qtHaveModule(quick) { > >> SUBDIRS += positioningquick location > >> positioningquick.depends += positioning > >> location.depends += positioningquick clip2tri > >> > >> plugins.depends += location > >> > >> SUBDIRS += imports > >> imports.depends += positioningquick positioning location > >> } > >> > >> So, the "location" subdirectory should not be built of the quick module > >> is not there. > > Yes, it's weird - it seems that this condition is always true even > > though quick module isn't compiled therefore I sent a quick workaround > > to fix build errors until I find a proper solution ;) > > After a quick investigation it seems that we should drop > BR2_PACKAGE_QT5DECLARATIVE_QUICK option and select > BR2_PACKAGE_QT5BASE_OPENGL option if BR2_PACKAGE_QT5_GL_AVAILABLE > directly when BR2_PACKAGE_QT5DECLARATIVE package is selected because > qt5declarative module includes quick subdirectory when gui module is > available: > > qtHaveModule(gui):qtConfig(qml-animation) { > SUBDIRS += quick > > ...snip... > } > > and then we should add dependency of the qt5declarative package in > qt5location to solve the issue above. > > qt5declarative package contains most of quick components enabled by > default even though quick module wasn't selected, see: > > Qt QML: > QML network support .................... yes > QML debugging and profiling support .... yes > QML just-in-time compiler .............. yes > QML sequence object .................... yes > QML XML http request ................... yes > QML Locale ............................. yes > Qt QML Models: > QML list model ......................... yes > QML delegate model ..................... yes > Qt Quick: > Direct3D 12 ............................ no > AnimatedImage item ..................... yes > Canvas item ............................ yes > Support for Qt Quick Designer .......... yes > Flipable item .......................... yes > GridView item .......................... yes > ListView item .......................... yes > TableView item ......................... yes > Path support ........................... yes > PathView item .......................... yes > Positioner items ....................... yes > Repeater item .......................... yes > ShaderEffect item ...................... yes > Sprite item ............................ yes I believe your analysis is right (and the conditional installation of the quick library is gone with patch [1], there is no explicit configure option in qtdeclarative for disabling quick)... Regards, Peter [1] https://git.buildroot.net/buildroot/commit/package/qt5/qt5declarative/qt5declarative.mk?id=1bdceb5d735aad5fbf32b35e3a7f573ecb727e20 > > >> > >> Could you try to see what's going on ? > > Yes, I'm doing that now :) > >> > >> Thanks! > >> > >> Thomas > > Best > > Bartek > > _______________________________________________ > > buildroot mailing list > > buildroot@busybox.net > > http://lists.busybox.net/mailman/listinfo/buildroot > Best > Bartek > _______________________________________________ > buildroot mailing list > buildroot@busybox.net > http://lists.busybox.net/mailman/listinfo/buildroot
Hi Peter, On 20.09.2020 17:41, Peter Seiderer wrote: > Hello Bartek, > > On Sat, 19 Sep 2020 23:05:00 +0200, Bartosz Bilas <b.bilas@grinn-global.com> wrote: > >> Hello again, >> >> On 19.09.2020 22:34, Bartosz Bilas wrote: >>> Hi Thomas, >>> >>> On 19.09.2020 22:08, Thomas Petazzoni wrote: >>>> On Sat, 19 Sep 2020 21:48:57 +0200 >>>> Bartosz Bilas <b.bilas@grinn-global.com> wrote: >>>> >>>>> Simply add the dependency of qt5declarative quick module that >>>>> forces Qt OpenGL support which is needed for qt5location component [1]. >>>>> >>>>> Fixes: >>>>> http://autobuild.buildroot.net/results/ddd/ddda7cdb9400f6ca7d548e9b5ada18674fbe42e0/ >>>>> http://autobuild.buildroot.net/results/ddb/ddb25ebb591ed6029a7bd4934464171358553936/ >>>>> >>>>> and many many more... >>>>> >>>>> [1] >>>>> https://code.woboq.org/qt5/qtdeclarative/src/quick/scenegraph/coreapi/qsgmaterialshader.h.html#105 >>>>> >>>>> Signed-off-by: Bartosz Bilas <b.bilas@grinn-global.com> >>>>> --- >>>>> package/qt5/qt5location/Config.in | 4 ++++ >>>>> package/qt5/qt5location/qt5location.mk | 5 +---- >>>>> 2 files changed, 5 insertions(+), 4 deletions(-) >>>>> >>>>> diff --git a/package/qt5/qt5location/Config.in >>>>> b/package/qt5/qt5location/Config.in >>>>> index c68deb1006..207ad5a37a 100644 >>>>> --- a/package/qt5/qt5location/Config.in >>>>> +++ b/package/qt5/qt5location/Config.in >>>>> @@ -1,5 +1,6 @@ >>>>> config BR2_PACKAGE_QT5LOCATION >>>>> bool "qt5location" >>>>> + depends on BR2_PACKAGE_QT5DECLARATIVE_QUICK >>>> This looks a bit weird, because src/src.pro looks like this: >>>> >>>> SUBDIRS += positioning >>>> positioning.depends = clip2tri >>>> >>>> qtHaveModule(quick) { >>>> SUBDIRS += positioningquick location >>>> positioningquick.depends += positioning >>>> location.depends += positioningquick clip2tri >>>> >>>> plugins.depends += location >>>> >>>> SUBDIRS += imports >>>> imports.depends += positioningquick positioning location >>>> } >>>> >>>> So, the "location" subdirectory should not be built of the quick module >>>> is not there. >>> Yes, it's weird - it seems that this condition is always true even >>> though quick module isn't compiled therefore I sent a quick workaround >>> to fix build errors until I find a proper solution ;) >> After a quick investigation it seems that we should drop >> BR2_PACKAGE_QT5DECLARATIVE_QUICK option and select >> BR2_PACKAGE_QT5BASE_OPENGL option if BR2_PACKAGE_QT5_GL_AVAILABLE >> directly when BR2_PACKAGE_QT5DECLARATIVE package is selected because >> qt5declarative module includes quick subdirectory when gui module is >> available: >> >> qtHaveModule(gui):qtConfig(qml-animation) { >> SUBDIRS += quick >> >> ...snip... >> } >> >> and then we should add dependency of the qt5declarative package in >> qt5location to solve the issue above. >> >> qt5declarative package contains most of quick components enabled by >> default even though quick module wasn't selected, see: >> >> Qt QML: >> QML network support .................... yes >> QML debugging and profiling support .... yes >> QML just-in-time compiler .............. yes >> QML sequence object .................... yes >> QML XML http request ................... yes >> QML Locale ............................. yes >> Qt QML Models: >> QML list model ......................... yes >> QML delegate model ..................... yes >> Qt Quick: >> Direct3D 12 ............................ no >> AnimatedImage item ..................... yes >> Canvas item ............................ yes >> Support for Qt Quick Designer .......... yes >> Flipable item .......................... yes >> GridView item .......................... yes >> ListView item .......................... yes >> TableView item ......................... yes >> Path support ........................... yes >> PathView item .......................... yes >> Positioner items ....................... yes >> Repeater item .......................... yes >> ShaderEffect item ...................... yes >> Sprite item ............................ yes > I believe your analysis is right (and the conditional installation > of the quick library is gone with patch [1], there is no > explicit configure option in qtdeclarative for disabling quick)... > > Regards, > Peter > > [1] https://git.buildroot.net/buildroot/commit/package/qt5/qt5declarative/qt5declarative.mk?id=1bdceb5d735aad5fbf32b35e3a7f573ecb727e20 So in that case it explains why qt5location always includes location sub-directory even when quick package isn't selected but qt5declarative is because it always compiles this module ;) Currently I can't see any other solution than my previous one assuming that we are not able to disable/enable quick module as Peter said. Best Bartek >>>> Could you try to see what's going on ? >>> Yes, I'm doing that now :) >>>> Thanks! >>>> >>>> Thomas >>> Best >>> Bartek >>> _______________________________________________ >>> buildroot mailing list >>> buildroot@busybox.net >>> http://lists.busybox.net/mailman/listinfo/buildroot >> Best >> Bartek >> _______________________________________________ >> buildroot mailing list >> buildroot@busybox.net >> http://lists.busybox.net/mailman/listinfo/buildroot
Hello, First of all, thanks for the additional investigation, much appreciated. On Sat, 19 Sep 2020 23:05:00 +0200 Bartosz Bilas <b.bilas@grinn-global.com> wrote: > >> So, the "location" subdirectory should not be built of the quick module > >> is not there. > > Yes, it's weird - it seems that this condition is always true even > > though quick module isn't compiled therefore I sent a quick workaround > > to fix build errors until I find a proper solution ;) > > After a quick investigation it seems that we should drop > BR2_PACKAGE_QT5DECLARATIVE_QUICK option and select > BR2_PACKAGE_QT5BASE_OPENGL option if BR2_PACKAGE_QT5_GL_AVAILABLE > directly when BR2_PACKAGE_QT5DECLARATIVE package is selected because > qt5declarative module includes quick subdirectory when gui module is > available: Could you provide a sample patch? Because I am a bit confused when you say "select BR2_PACKAGE_QT5BASE_OPENGL option if BR2_PACKAGE_QT5_GL_AVAILABLE". Where would you do that? qt5location? qt5declarative? > > qtHaveModule(gui):qtConfig(qml-animation) { What is the qml-animation condition? When is it true/false? > SUBDIRS += quick > > ...snip... > } > > and then we should add dependency of the qt5declarative package in > qt5location to solve the issue above. But, as I have reported, qt5declarative is not mandatory for qt5location, only some parts of qt5location need the quick module from qt5declarative. Could you submit another patch (or patch series, if needed), with more substantial explanations? Thanks a lot! Thomas
Hello Thomas, On 22.09.2020 22:19, Thomas Petazzoni wrote: > Hello, > > First of all, thanks for the additional investigation, much appreciated. > > On Sat, 19 Sep 2020 23:05:00 +0200 > Bartosz Bilas <b.bilas@grinn-global.com> wrote: > >>>> So, the "location" subdirectory should not be built of the quick module >>>> is not there. >>> Yes, it's weird - it seems that this condition is always true even >>> though quick module isn't compiled therefore I sent a quick workaround >>> to fix build errors until I find a proper solution ;) >> After a quick investigation it seems that we should drop >> BR2_PACKAGE_QT5DECLARATIVE_QUICK option and select >> BR2_PACKAGE_QT5BASE_OPENGL option if BR2_PACKAGE_QT5_GL_AVAILABLE >> directly when BR2_PACKAGE_QT5DECLARATIVE package is selected because >> qt5declarative module includes quick subdirectory when gui module is >> available: > Could you provide a sample patch? Because I am a bit confused when you > say "select BR2_PACKAGE_QT5BASE_OPENGL option if > BR2_PACKAGE_QT5_GL_AVAILABLE". Where would you do that? qt5location? > qt5declarative? Sorry for the incomprehension, I meant qt5declarative of course. > >> qtHaveModule(gui):qtConfig(qml-animation) { > What is the qml-animation condition? When is it true/false? tbh. I have no idea - I need to dig deeper into this. > >> SUBDIRS += quick >> >> ...snip... >> } >> >> and then we should add dependency of the qt5declarative package in >> qt5location to solve the issue above. > But, as I have reported, qt5declarative is not mandatory for > qt5location, only some parts of qt5location need the quick module from > qt5declarative. That's right it's not, but due to the fact that qt5declarative is always being compiled with quick support, we have to do that as a mandatory dependency. > > Could you submit another patch (or patch series, if needed), with more > substantial explanations? I'm gonna send v2 this evening. > Thanks a lot! Thomas Best Bartek
diff --git a/package/qt5/qt5location/Config.in b/package/qt5/qt5location/Config.in index c68deb1006..207ad5a37a 100644 --- a/package/qt5/qt5location/Config.in +++ b/package/qt5/qt5location/Config.in @@ -1,5 +1,6 @@ config BR2_PACKAGE_QT5LOCATION bool "qt5location" + depends on BR2_PACKAGE_QT5DECLARATIVE_QUICK select BR2_PACKAGE_QT5BASE_GUI help Qt is a cross-platform application and UI framework for @@ -10,3 +11,6 @@ config BR2_PACKAGE_QT5LOCATION popular location services. http://doc.qt.io/qt-5/qtlocation-index.html + +comment "qt5location needs qt5declarative quick" + depends on !BR2_PACKAGE_QT5DECLARATIVE_QUICK diff --git a/package/qt5/qt5location/qt5location.mk b/package/qt5/qt5location/qt5location.mk index ea741d0df6..e7523cf1ef 100644 --- a/package/qt5/qt5location/qt5location.mk +++ b/package/qt5/qt5location/qt5location.mk @@ -7,13 +7,10 @@ QT5LOCATION_VERSION = $(QT5_VERSION) QT5LOCATION_SITE = $(QT5_SITE) QT5LOCATION_SOURCE = qtlocation-$(QT5_SOURCE_TARBALL_PREFIX)-$(QT5LOCATION_VERSION).tar.xz +QT5LOCATION_DEPENDENCIES += qt5declarative QT5LOCATION_INSTALL_STAGING = YES QT5LOCATION_LICENSE = GPL-2.0+ or LGPL-3.0, GPL-3.0 with exception(tools), GFDL-1.3 (docs) QT5LOCATION_LICENSE_FILES = LICENSE.GPL2 LICENSE.GPL3 LICENSE.GPL3-EXCEPT LICENSE.LGPL3 LICENSE.FDL -ifeq ($(BR2_PACKAGE_QT5DECLARATIVE),y) -QT5LOCATION_DEPENDENCIES += qt5declarative -endif - $(eval $(qmake-package))
Simply add the dependency of qt5declarative quick module that forces Qt OpenGL support which is needed for qt5location component [1]. Fixes: http://autobuild.buildroot.net/results/ddd/ddda7cdb9400f6ca7d548e9b5ada18674fbe42e0/ http://autobuild.buildroot.net/results/ddb/ddb25ebb591ed6029a7bd4934464171358553936/ and many many more... [1] https://code.woboq.org/qt5/qtdeclarative/src/quick/scenegraph/coreapi/qsgmaterialshader.h.html#105 Signed-off-by: Bartosz Bilas <b.bilas@grinn-global.com> --- package/qt5/qt5location/Config.in | 4 ++++ package/qt5/qt5location/qt5location.mk | 5 +---- 2 files changed, 5 insertions(+), 4 deletions(-)