libqtxdg icon indicating copy to clipboard operation
libqtxdg copied to clipboard

libqtxdg fails to compile against Qt 6.8

Open n3rdopolis opened this issue 1 year ago • 23 comments

While libqtxdg is able to compile against Qt 6.7, it seems something in 6.8 broke source compat

[  0%] Built target Qt6XdgIconLoader_autogen_timestamp_deps
[  2%] Built target Qt6XdgIconLoader_autogen
[  5%] Building CXX object src/xdgiconloader/CMakeFiles/Qt6XdgIconLoader.dir/xdgiconloader.cpp.o
In file included from /var/cache/srcbuild/libqtxdg/src/xdgiconloader/xdgiconloader.cpp:37:
/var/cache/srcbuild/libqtxdg/src/xdgiconloader/xdgiconloader_p.h:66:13: error: ‘QPixmap ScalableFollowsColorEntry::pixmap(const QSize&, QIcon::Mode, QIcon::State)’ marked ‘override’, but does not override
   66 |     QPixmap pixmap(const QSize &size, QIcon::Mode mode, QIcon::State state) override;
      |             ^~~~~~
In file included from /var/cache/srcbuild/libqtxdg/src/xdgiconloader/xdgiconloader_p.h:56:
/opt/include/qt6/QtGui/6.8.0/QtGui/private/qiconloader_p.h:77:13: warning: ‘virtual QPixmap ScalableEntry::pixmap(const QSize&, QIcon::Mode, QIcon::State, qreal)’ was hidden [-Woverloaded-virtual=]
   77 |     QPixmap pixmap(const QSize &size, QIcon::Mode mode, QIcon::State state, qreal scale) override;
      |             ^~~~~~
/var/cache/srcbuild/libqtxdg/src/xdgiconloader/xdgiconloader_p.h:66:13: note:   by ‘QPixmap ScalableFollowsColorEntry::pixmap(const QSize&, QIcon::Mode, QIcon::State)’
   66 |     QPixmap pixmap(const QSize &size, QIcon::Mode mode, QIcon::State state) override;
      |             ^~~~~~
In file included from /opt/include/qt6/QtCore/6.8.0/QtCore/private/qobject_p.h:28,
                 from /opt/include/qt6/QtCore/6.8.0/QtCore/private/qcoreapplication_p.h:29,
                 from /opt/include/qt6/QtGui/6.8.0/QtGui/private/qguiapplication_p.h:24,
                 from /var/cache/srcbuild/libqtxdg/src/xdgiconloader/xdgiconloader.cpp:39:
/opt/include/qt6/QtCore/6.8.0/QtCore/private/qproperty_p.h:311:16: warning: ISO C++ prohibits anonymous structs [-Wpedantic]
  311 |         struct {
      |                ^
/var/cache/srcbuild/libqtxdg/src/xdgiconloader/xdgiconloader.cpp:760:9: error: no declaration matches ‘QPixmap PixmapEntry::pixmap(const QSize&, QIcon::Mode, QIcon::State)’
  760 | QPixmap PixmapEntry::pixmap(const QSize &size, QIcon::Mode mode, QIcon::State state)
      |         ^~~~~~~~~~~
/opt/include/qt6/QtGui/6.8.0/QtGui/private/qiconloader_p.h:83:13: note: candidate is: ‘virtual QPixmap PixmapEntry::pixmap(const QSize&, QIcon::Mode, QIcon::State, qreal)’
   83 |     QPixmap pixmap(const QSize &size, QIcon::Mode mode, QIcon::State state, qreal scale) override;
      |             ^~~~~~
/opt/include/qt6/QtGui/6.8.0/QtGui/private/qiconloader_p.h:81:8: note: ‘struct PixmapEntry’ defined here
   81 | struct PixmapEntry : public QIconLoaderEngineEntry
      |        ^~~~~~~~~~~
/var/cache/srcbuild/libqtxdg/src/xdgiconloader/xdgiconloader.cpp:799:9: error: no declaration matches ‘QPixmap ScalableEntry::pixmap(const QSize&, QIcon::Mode, QIcon::State)’
  799 | QPixmap ScalableEntry::pixmap(const QSize &size, QIcon::Mode mode, QIcon::State state)
      |         ^~~~~~~~~~~~~
/opt/include/qt6/QtGui/6.8.0/QtGui/private/qiconloader_p.h:77:13: note: candidate is: ‘virtual QPixmap ScalableEntry::pixmap(const QSize&, QIcon::Mode, QIcon::State, qreal)’
   77 |     QPixmap pixmap(const QSize &size, QIcon::Mode mode, QIcon::State state, qreal scale) override;
      |             ^~~~~~
/opt/include/qt6/QtGui/6.8.0/QtGui/private/qiconloader_p.h:75:8: note: ‘struct ScalableEntry’ defined here
   75 | struct ScalableEntry : public QIconLoaderEngineEntry
      |        ^~~~~~~~~~~~~
/var/cache/srcbuild/libqtxdg/src/xdgiconloader/xdgiconloader.cpp: In member function ‘virtual QPixmap XdgIconLoaderEngine::pixmap(const QSize&, QIcon::Mode, QIcon::State)’:
/var/cache/srcbuild/libqtxdg/src/xdgiconloader/xdgiconloader.cpp:944:29: error: no matching function for call to ‘QIconLoaderEngineEntry::pixmap(const QSize&, QIcon::Mode&, QIcon::State&)’
  944 |         return entry->pixmap(size, mode, state);
      |                ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
/opt/include/qt6/QtGui/6.8.0/QtGui/private/qiconloader_p.h:67:21: note: candidate: ‘virtual QPixmap QIconLoaderEngineEntry::pixmap(const QSize&, QIcon::Mode, QIcon::State, qreal)’
   67 |     virtual QPixmap pixmap(const QSize &size,
      |                     ^~~~~~
/opt/include/qt6/QtGui/6.8.0/QtGui/private/qiconloader_p.h:67:21: note:   candidate expects 4 arguments, 3 provided
/var/cache/srcbuild/libqtxdg/src/xdgiconloader/xdgiconloader.cpp: In member function ‘virtual QPixmap XdgIconLoaderEngine::scaledPixmap(const QSize&, QIcon::Mode, QIcon::State, qreal)’:
/var/cache/srcbuild/libqtxdg/src/xdgiconloader/xdgiconloader.cpp:971:33: error: no matching function for call to ‘QIconLoaderEngineEntry::pixmap(const QSize&, QIcon::Mode&, QIcon::State&)’
  971 |     return entry ? entry->pixmap(size, mode, state) : QPixmap();
      |                    ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
/opt/include/qt6/QtGui/6.8.0/QtGui/private/qiconloader_p.h:67:21: note: candidate: ‘virtual QPixmap QIconLoaderEngineEntry::pixmap(const QSize&, QIcon::Mode, QIcon::State, qreal)’
   67 |     virtual QPixmap pixmap(const QSize &size,
      |                     ^~~~~~
/opt/include/qt6/QtGui/6.8.0/QtGui/private/qiconloader_p.h:67:21: note:   candidate expects 4 arguments, 3 provided
make[2]: *** [src/xdgiconloader/CMakeFiles/Qt6XdgIconLoader.dir/build.make:96: src/xdgiconloader/CMakeFiles/Qt6XdgIconLoader.dir/xdgiconloader.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:155: src/xdgiconloader/CMakeFiles/Qt6XdgIconLoader.dir/all] Error 2
make: *** [Makefile:136: all] Error 2
PackageInstallSource finished in 2 seconds with result 2

n3rdopolis avatar Sep 12 '24 19:09 n3rdopolis

Thanks for the report.

The latest stable Qt is 6.7.2 up to this time. We'll investigate it if the issue exists when 6.8 gets stable.

tsujan avatar Sep 12 '24 21:09 tsujan

Understood

n3rdopolis avatar Sep 12 '24 21:09 n3rdopolis

I downloaded the source of 6.8.0-beta4 and saw that indeed there's a backward incompatible change in qiconloader_p.h, which should make the compilation fail.

I'll try to adjust the code tomorrow but couldn't test anything until a stable version of Qt 6.8 comes to my distro. I might make a WIP PR for you to test.

tsujan avatar Sep 12 '24 22:09 tsujan

@n3rdopolis I made https://github.com/lxqt/libqtxdg/pull/307 "blindly", as a start point. Since I don't have Qt 6.8, it may very likely have problems. Your test would be appreciated.

tsujan avatar Sep 13 '24 00:09 tsujan

That seems to bring it further, seems I get an odd linker error now

Build libqtxdg (1 of 1):   311 |         struct {
  Build libqtxdg (1 of 1):       |                ^
  Build libqtxdg (1 of 1): [ 11%] Linking CXX shared library libQt6XdgIconLoader.so
  Build libqtxdg (1 of 1): /usr/bin/ld: CMakeFiles/Qt6XdgIconLoader.dir/xdgiconloader.cpp.o: in function `PixmapEntry::pixmap(QSize const&, QIcon::Mode, QIcon::State, double)':
  Build libqtxdg (1 of 1): xdgiconloader.cpp:(.text+0xe59): undefined reference to `QIconPrivate::pixmapDevicePixelRatio(double, QSize const&, QSize const&)'
  Build libqtxdg (1 of 1): collect2: error: ld returned 1 exit status
  Build libqtxdg (1 of 1): make[2]: *** [src/xdgiconloader/CMakeFiles/Qt6XdgIconLoader.dir/build.make:124: src/xdgiconloader/libQt6XdgIconLoader.so.4.0.0] Error 1
  Build libqtxdg (1 of 1): make[1]: *** [CMakeFiles/Makefile2:155: src/xdgiconloader/CMakeFiles/Qt6XdgIconLoader.dir/all] Error 2
  Build libqtxdg (1 of 1): make: *** [Makefile:136: all] Error 2
  Build libqtxdg (1 of 1): [  0%] Built target Qt6XdgIconLoader_autogen_timestamp_deps
  Build libqtxdg (1 of 1): [  2%] Built target Qt6XdgIconLoader_autogen
  Build libqtxdg (1 of 1): [  5%] Linking CXX shared library libQt6XdgIconLoader.so
  Build libqtxdg (1 of 1): /usr/bin/ld: CMakeFiles/Qt6XdgIconLoader.dir/xdgiconloader.cpp.o: in function `PixmapEntry::pixmap(QSize const&, QIcon::Mode, QIcon::State, double)':
  Build libqtxdg (1 of 1): xdgiconloader.cpp:(.text+0xe59): undefined reference to `QIconPrivate::pixmapDevicePixelRatio(double, QSize const&, QSize const&)'
  Build libqtxdg (1 of 1): collect2: error: ld returned 1 exit status
  Build libqtxdg (1 of 1): make[2]: *** [src/xdgiconloader/CMakeFiles/Qt6XdgIconLoader.dir/build.make:124: src/xdgiconloader/libQt6XdgIconLoader.so.4.0.0] Error 1
  Build libqtxdg (1 of 1): make[1]: *** [CMakeFiles/Makefile2:155: src/xdgiconloader/CMakeFiles/Qt6XdgIconLoader.dir/all] Error 2
  Build libqtxdg (1 of 1): make: *** [Makefile:136: all] Error 2

n3rdopolis avatar Sep 13 '24 11:09 n3rdopolis

seems I get an odd linker error now

One of those likely problems I mentioned above ;) Added a commit; please test again.

tsujan avatar Sep 13 '24 13:09 tsujan

Thanks. That gets it further to ~34%

[ 34%] Building CXX object src/qtxdg/CMakeFiles/Qt6Xdg.dir/xdgmimetype.cpp.o
In file included from /var/cache/srcbuild/libqtxdg/src/qtxdg/xdgmimetype.cpp:21:
/var/cache/srcbuild/libqtxdg/src/qtxdg/xdgmimetype.h: In member function ‘bool XdgMimeType::operator==(const XdgMimeType&) const’:
/var/cache/srcbuild/libqtxdg/src/qtxdg/xdgmimetype.h:75:27: error: ‘operator==’ is not a member of ‘QMimeType’
   75 |         return QMimeType::operator==(other);
      |                           ^~~~~~~~~~
/var/cache/srcbuild/libqtxdg/src/qtxdg/xdgmimetype.h: In member function ‘bool XdgMimeType::operator!=(const XdgMimeType&) const’:
/var/cache/srcbuild/libqtxdg/src/qtxdg/xdgmimetype.h:80:28: error: ‘operator==’ is not a member of ‘QMimeType’
   80 |         return !QMimeType::operator==(other);
      |                            ^~~~~~~~~~
make[2]: *** [src/qtxdg/CMakeFiles/Qt6Xdg.dir/build.make:290: src/qtxdg/CMakeFiles/Qt6Xdg.dir/xdgmimetype.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:315: src/qtxdg/CMakeFiles/Qt6Xdg.dir/all] Error 2
make: *** [Makefile:136: all] Error 2

n3rdopolis avatar Sep 13 '24 13:09 n3rdopolis

OK, this one is related to a different part of the code; that's quite a good progress :) I'll look into it soon and request another test from you.

Thanks for your tests and patience!

tsujan avatar Sep 13 '24 13:09 tsujan

Does the latest commit have effect?

tsujan avatar Sep 13 '24 15:09 tsujan

94%!

[ 91%] Building CXX object src/qtxdg/CMakeFiles/Qt6Xdg.dir/xdgdefaultapps.cpp.o
[ 94%] Building CXX object src/qtxdg/CMakeFiles/Qt6Xdg.dir/application_interface.cpp.o
In file included from /opt/include/qt6/QtCore/6.8.0/QtCore/private/qobject_p.h:28,
                 from /var/cache/srcbuild/libqtxdg/src/qtxdg/xdgmimeapps_p.h:24,
                 from /var/cache/srcbuild/libqtxdg/src/qtxdg/xdgmimeapps.cpp:22:
/opt/include/qt6/QtCore/6.8.0/QtCore/private/qproperty_p.h:311:16: warning: ISO C++ prohibits anonymous structs [-Wpedantic]
  311 |         struct {
      |                ^
/var/cache/srcbuild/libqtxdg/src/qtxdg/xdgmenureader.cpp: In member function ‘bool XdgMenuReader::load(const QString&, const QString&)’:
/var/cache/srcbuild/libqtxdg/src/qtxdg/xdgmenureader.cpp:86:25: warning: ‘bool QDomDocument::setContent(QIODevice*, bool, QString*, int*, int*)’ is deprecated: Use the overload taking ParseOptions instead. [-Wdeprecated-declarations]
   86 |     if (!mXml.setContent(&file, true, &errorStr, &errorLine, &errorColumn))
      |          ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /opt/include/qt6/QtXml/QDomDocument:1,
                 from /var/cache/srcbuild/libqtxdg/src/qtxdg/xdgmenureader.h:34,
                 from /var/cache/srcbuild/libqtxdg/src/qtxdg/xdgmenureader.cpp:28:
/opt/include/qt6/QtXml/qdom.h:324:10: note: declared here
  324 |     bool setContent(QIODevice *dev, bool namespaceProcessing, QString *errorMsg = nullptr, int *errorLine = nullptr, int *errorColumn = nullptr);
      |          ^~~~~~~~~~
In file included from /var/cache/srcbuild/libqtxdg/src/qtxdg/xdgmimetype.cpp:21:
/var/cache/srcbuild/libqtxdg/src/qtxdg/xdgmimetype.h: In member function ‘bool XdgMimeType::operator==(const XdgMimeType&) const’:
/var/cache/srcbuild/libqtxdg/src/qtxdg/xdgmimetype.h:76:27: error: ‘operator==’ is not a member of ‘QMimeType’
   76 |         return QMimeType::operator==(*this, other);
      |                           ^~~~~~~~~~
/var/cache/srcbuild/libqtxdg/src/qtxdg/xdgmimetype.h: In member function ‘bool XdgMimeType::operator!=(const XdgMimeType&) const’:
/var/cache/srcbuild/libqtxdg/src/qtxdg/xdgmimetype.h:85:27: error: ‘operator!=’ is not a member of ‘QMimeType’
   85 |         return QMimeType::operator!=(*this, other);
      |                           ^~~~~~~~~~
/var/cache/srcbuild/libqtxdg/src/qtxdg/xdgmenu.cpp: In member function ‘void XdgMenuPrivate::load(const QString&)’:
/var/cache/srcbuild/libqtxdg/src/qtxdg/xdgmenu.cpp:230:20: warning: ‘bool QDomDocument::setContent(QIODevice*, bool, QString*, int*, int*)’ is deprecated: Use the overload taking ParseOptions instead. [-Wdeprecated-declarations]
  230 |     mXml.setContent(&file, true);
      |     ~~~~~~~~~~~~~~~^~~~~~~~~~~~~
In file included from /opt/include/qt6/QtXml/QDomDocument:1,
                 from /var/cache/srcbuild/libqtxdg/src/qtxdg/xdgmenu.h:35,
                 from /var/cache/srcbuild/libqtxdg/src/qtxdg/xdgmenu.cpp:28:
/opt/include/qt6/QtXml/qdom.h:324:10: note: declared here
  324 |     bool setContent(QIODevice *dev, bool namespaceProcessing, QString *errorMsg = nullptr, int *errorLine = nullptr, int *errorColumn = nullptr);
      |          ^~~~~~~~~~
make[2]: *** [src/qtxdg/CMakeFiles/Qt6Xdg.dir/build.make:290: src/qtxdg/CMakeFiles/Qt6Xdg.dir/xdgmimetype.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [CMakeFiles/Makefile2:315: src/qtxdg/CMakeFiles/Qt6Xdg.dir/all] Error 2
make: *** [Makefile:136: all] Error 2

n3rdopolis avatar Sep 13 '24 16:09 n3rdopolis

94%!

And now?

We can ignore deprecation warnings for now, but please attach them too, as you did above.

tsujan avatar Sep 13 '24 17:09 tsujan

Seems like it's at 94%

[ 94%] Building CXX object src/qtxdg/CMakeFiles/Qt6Xdg.dir/application_interface.cpp.o
In file included from /opt/include/qt6/QtCore/6.8.0/QtCore/private/qobject_p.h:28,
                 from /var/cache/srcbuild/libqtxdg/src/qtxdg/xdgmimeapps_p.h:24,
                 from /var/cache/srcbuild/libqtxdg/src/qtxdg/xdgmimeapps.cpp:22:
/opt/include/qt6/QtCore/6.8.0/QtCore/private/qproperty_p.h:311:16: warning: ISO C++ prohibits anonymous structs [-Wpedantic]
  311 |         struct {
      |                ^
In file included from /var/cache/srcbuild/libqtxdg/src/qtxdg/xdgmimetype.cpp:21:
/var/cache/srcbuild/libqtxdg/src/qtxdg/xdgmimetype.h: In member function ‘bool XdgMimeType::operator==(const XdgMimeType&) const’:
/var/cache/srcbuild/libqtxdg/src/qtxdg/xdgmimetype.h:76:26: error: no matching function for call to ‘XdgMimeType::operator==(const XdgMimeType&, const XdgMimeType&) const’
   76 |         return operator==(*this, other);
      |                ~~~~~~~~~~^~~~~~~~~~~~~~
/var/cache/srcbuild/libqtxdg/src/qtxdg/xdgmimetype.h:73:10: note: candidate: ‘bool XdgMimeType::operator==(const XdgMimeType&) const’
   73 |     bool operator==(const XdgMimeType &other) const
      |          ^~~~~~~~
/var/cache/srcbuild/libqtxdg/src/qtxdg/xdgmimetype.h:73:10: note:   candidate expects 1 argument, 2 provided
/var/cache/srcbuild/libqtxdg/src/qtxdg/xdgmimetype.h: In member function ‘bool XdgMimeType::operator!=(const XdgMimeType&) const’:
/var/cache/srcbuild/libqtxdg/src/qtxdg/xdgmimetype.h:85:26: error: no matching function for call to ‘XdgMimeType::operator!=(const XdgMimeType&, const XdgMimeType&) const’
   85 |         return operator!=(*this, other);
      |                ~~~~~~~~~~^~~~~~~~~~~~~~
/var/cache/srcbuild/libqtxdg/src/qtxdg/xdgmimetype.h:82:17: note: candidate: ‘bool XdgMimeType::operator!=(const XdgMimeType&) const’
   82 |     inline bool operator!=(const XdgMimeType &other) const
      |                 ^~~~~~~~
/var/cache/srcbuild/libqtxdg/src/qtxdg/xdgmimetype.h:82:17: note:   candidate expects 1 argument, 2 provided
make[2]: *** [src/qtxdg/CMakeFiles/Qt6Xdg.dir/build.make:290: src/qtxdg/CMakeFiles/Qt6Xdg.dir/xdgmimetype.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
/var/cache/srcbuild/libqtxdg/src/qtxdg/xdgmenu.cpp: In member function ‘void XdgMenuPrivate::load(const QString&)’:
/var/cache/srcbuild/libqtxdg/src/qtxdg/xdgmenu.cpp:230:20: warning: ‘bool QDomDocument::setContent(QIODevice*, bool, QString*, int*, int*)’ is deprecated: Use the overload taking ParseOptions instead. [-Wdeprecated-declarations]
  230 |     mXml.setContent(&file, true);
      |     ~~~~~~~~~~~~~~~^~~~~~~~~~~~~
In file included from /opt/include/qt6/QtXml/QDomDocument:1,
                 from /var/cache/srcbuild/libqtxdg/src/qtxdg/xdgmenu.h:35,
                 from /var/cache/srcbuild/libqtxdg/src/qtxdg/xdgmenu.cpp:28:
/opt/include/qt6/QtXml/qdom.h:324:10: note: declared here
  324 |     bool setContent(QIODevice *dev, bool namespaceProcessing, QString *errorMsg = nullptr, int *errorLine = nullptr, int *errorColumn = nullptr);
      |          ^~~~~~~~~~
/var/cache/srcbuild/libqtxdg/src/qtxdg/xdgmenureader.cpp: In member function ‘bool XdgMenuReader::load(const QString&, const QString&)’:
/var/cache/srcbuild/libqtxdg/src/qtxdg/xdgmenureader.cpp:86:25: warning: ‘bool QDomDocument::setContent(QIODevice*, bool, QString*, int*, int*)’ is deprecated: Use the overload taking ParseOptions instead. [-Wdeprecated-declarations]
   86 |     if (!mXml.setContent(&file, true, &errorStr, &errorLine, &errorColumn))
      |          ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /opt/include/qt6/QtXml/QDomDocument:1,
                 from /var/cache/srcbuild/libqtxdg/src/qtxdg/xdgmenureader.h:34,
                 from /var/cache/srcbuild/libqtxdg/src/qtxdg/xdgmenureader.cpp:28:
/opt/include/qt6/QtXml/qdom.h:324:10: note: declared here
  324 |     bool setContent(QIODevice *dev, bool namespaceProcessing, QString *errorMsg = nullptr, int *errorLine = nullptr, int *errorColumn = nullptr);
      |          ^~~~~~~~~~
make[1]: *** [CMakeFiles/Makefile2:315: src/qtxdg/CMakeFiles/Qt6Xdg.dir/all] Error 2
make: *** [Makefile:136: all] Error 2

n3rdopolis avatar Sep 13 '24 17:09 n3rdopolis

Seems like it's at 94%

Yes, my last two commits about XdgMimeType didn't make sense :( The fix should be easy though...

tsujan avatar Sep 13 '24 18:09 tsujan

Took a straightforward approach. Now we should pass 94%.

tsujan avatar Sep 13 '24 21:09 tsujan

That works. 100%! Thanks!

n3rdopolis avatar Sep 13 '24 21:09 n3rdopolis

Thank you for taking my hand when I was groping.

Now the question is: does it work fine? I'm especially interested in knowing whether QT_SCALE_FACTOR=2 APP in a terminal makes APP having sharp scaled icons with SVG icon sets.

tsujan avatar Sep 13 '24 21:09 tsujan

I think wayfire config manager is an svg icon

Default under Wayland on qemu for configuration center: image

x2 under Wayland for configuration center: image

And a bonus, here is x4 because I was curious image

n3rdopolis avatar Sep 13 '24 22:09 n3rdopolis

They all look fine. Thanks!

The important thing is that we'll be ready for the stable Qt 6.8. Probable minor issues could be fixed later, although I don't think there is any. In the meanwhile, I'll double check the differences between 6.7.2 and 6.8.0.

tsujan avatar Sep 13 '24 23:09 tsujan

Since the new QDomDocument::setContent method was introduced in Qt 6.5 and we require 6.6, I updated it. In this way, those compilation warnings should also be silenced with Qt 6.8.

tsujan avatar Sep 14 '24 13:09 tsujan

I only get two warnings now

[  0%] Built target Qt6XdgIconLoader_autogen_timestamp_deps
[  2%] Automatic MOC for target Qt6XdgIconLoader
[  2%] Built target Qt6XdgIconLoader_autogen
[  5%] Building CXX object src/xdgiconloader/CMakeFiles/Qt6XdgIconLoader.dir/Qt6XdgIconLoader_autogen/mocs_compilation.cpp.o
[  8%] Building CXX object src/xdgiconloader/CMakeFiles/Qt6XdgIconLoader.dir/xdgiconloader.cpp.o
In file included from /opt/include/qt6/QtCore/6.8.0/QtCore/private/qobject_p.h:28,
                 from /opt/include/qt6/QtCore/6.8.0/QtCore/private/qcoreapplication_p.h:29,
                 from /opt/include/qt6/QtGui/6.8.0/QtGui/private/qguiapplication_p.h:24,
                 from /var/cache/srcbuild/libqtxdg/src/xdgiconloader/xdgiconloader.cpp:39:
/opt/include/qt6/QtCore/6.8.0/QtCore/private/qproperty_p.h:311:16: warning: ISO C++ prohibits anonymous structs [-Wpedantic]
  311 |         struct {
      |                ^
[ 11%] Linking CXX shared library libQt6XdgIconLoader.so
[ 14%] Built target Qt6XdgIconLoader
[ 14%] Built target Qt6Xdg_autogen_timestamp_deps
[ 14%] Built target Qt6XdgIconPlugin_autogen_timestamp_deps
[ 17%] Automatic MOC for target Qt6Xdg
[ 20%] Automatic MOC for target Qt6XdgIconPlugin
[ 20%] Built target Qt6XdgIconPlugin_autogen
[ 22%] Building CXX object src/xdgiconloader/plugin/CMakeFiles/Qt6XdgIconPlugin.dir/Qt6XdgIconPlugin_autogen/mocs_compilation.cpp.o
[ 25%] Building CXX object src/xdgiconloader/plugin/CMakeFiles/Qt6XdgIconPlugin.dir/xdgiconengineplugin.cpp.o
[ 28%] Linking CXX shared module libQt6XdgIconPlugin.so
[ 31%] Built target Qt6XdgIconPlugin
[ 31%] Built target Qt6Xdg_autogen
[ 34%] Generating application_interface.cpp, application_interface.h
[ 37%] Generating moc_application_interface.cpp
[ 40%] Building CXX object src/qtxdg/CMakeFiles/Qt6Xdg.dir/Qt6Xdg_autogen/mocs_compilation.cpp.o
[ 42%] Building CXX object src/qtxdg/CMakeFiles/Qt6Xdg.dir/xdgaction.cpp.o
[ 51%] Building CXX object src/qtxdg/CMakeFiles/Qt6Xdg.dir/xdgdirs.cpp.o
[ 51%] Building CXX object src/qtxdg/CMakeFiles/Qt6Xdg.dir/qtxdglogging.cpp.o
[ 51%] Building CXX object src/qtxdg/CMakeFiles/Qt6Xdg.dir/xdgdesktopfile.cpp.o
[ 54%] Building CXX object src/qtxdg/CMakeFiles/Qt6Xdg.dir/xdgmenuapplinkprocessor.cpp.o
[ 62%] Building CXX object src/qtxdg/CMakeFiles/Qt6Xdg.dir/xdgmenulayoutprocessor.cpp.o
[ 62%] Building CXX object src/qtxdg/CMakeFiles/Qt6Xdg.dir/xdgmenu.cpp.o
[ 62%] Building CXX object src/qtxdg/CMakeFiles/Qt6Xdg.dir/xdgicon.cpp.o
[ 68%] Building CXX object src/qtxdg/CMakeFiles/Qt6Xdg.dir/xdgmenurules.cpp.o
[ 68%] Building CXX object src/qtxdg/CMakeFiles/Qt6Xdg.dir/xdgmenureader.cpp.o
[ 74%] Building CXX object src/qtxdg/CMakeFiles/Qt6Xdg.dir/xdgmenuwidget.cpp.o
[ 74%] Building CXX object src/qtxdg/CMakeFiles/Qt6Xdg.dir/xmlhelper.cpp.o
[ 77%] Building CXX object src/qtxdg/CMakeFiles/Qt6Xdg.dir/xdgmimetype.cpp.o
[ 80%] Building CXX object src/qtxdg/CMakeFiles/Qt6Xdg.dir/xdgautostart.cpp.o
[ 82%] Building CXX object src/qtxdg/CMakeFiles/Qt6Xdg.dir/xdgmimeapps.cpp.o
[ 88%] Building CXX object src/qtxdg/CMakeFiles/Qt6Xdg.dir/xdgmimeappsglibbackend.cpp.o
[ 85%] Building CXX object src/qtxdg/CMakeFiles/Qt6Xdg.dir/xdgmimeappsbackendinterface.cpp.o
[ 91%] Building CXX object src/qtxdg/CMakeFiles/Qt6Xdg.dir/xdgdefaultapps.cpp.o
[ 94%] Building CXX object src/qtxdg/CMakeFiles/Qt6Xdg.dir/application_interface.cpp.o
In file included from /opt/include/qt6/QtCore/6.8.0/QtCore/private/qobject_p.h:28,
                 from /var/cache/srcbuild/libqtxdg/src/qtxdg/xdgmimeapps_p.h:24,
                 from /var/cache/srcbuild/libqtxdg/src/qtxdg/xdgmimeapps.cpp:22:
/opt/include/qt6/QtCore/6.8.0/QtCore/private/qproperty_p.h:311:16: warning: ISO C++ prohibits anonymous structs [-Wpedantic]
  311 |         struct {
      |                ^
[ 97%] Linking CXX shared library libQt6Xdg.so
[100%] Built target Qt6Xdg

n3rdopolis avatar Sep 14 '24 15:09 n3rdopolis

I only get two warnings now

They're about Qt itself and happen with Qt 6.7 too.

tsujan avatar Sep 14 '24 16:09 tsujan

Sweet. Looks like this is all set?

n3rdopolis avatar Sep 14 '24 16:09 n3rdopolis

Looks like this is all set?

I think so. Will make the PR ready for review soon.

tsujan avatar Sep 14 '24 16:09 tsujan