Closed kloczek closed 2 years ago
Did you enable shadow support? The shadow support is not enabled on Qt5 builds, because there is missing API for that.
Just checked my qt5-qtbase spec file and in configure of the source tree I se only:
%build
%{set_build_flags} \
MAKEFLAGS="%{?_smp_mflags}" \
./configure \
-archdatadir %{_libdir}/qt5 \
-bindir %{_bindir} \
-datadir %{_datadir}/qt5 \
-docdir %{_docdir}/qch \
-examplesdir %{_libdir}/qt5/examples \
-headerdir %{_includedir}/qt5 \
-importdir %{_libdir}/qt5/imports \
-libdir %{_libdir} \
-libexecdir %{libexecdir} \
-plugindir %{_libdir}/modules/qt5 \
-prefix %{_prefix} \
-sysconfdir %{sysconfdir} \
-translationdir %{_datadir}/qt5/translations \
-accessibility \
-confirm-license \
-dbus-linked \
-dbus-runtime \
-egl \
-fontconfig \
-glib \
-gtk \
-icu \
-journald \
-no-ltcg \
-no-directfb \
-no-feature-relocatable \
-no-pch \
-no-reduce-relocations \
-no-rpath \
-no-separate-debug-info \
-no-strip \
-no-use-gold-linker \
-opensource \
-openssl-linked \
-optimized-qmake \
-platform %{platform} \
-release \
-shared \
-sql-ibase \
-sql-mysql \
-sql-odbc \
-sql-psql \
-sql-sqlite \
-sql-tds \
-system-harfbuzz \
-system-libjpeg \
-system-libpng \
-system-pcre \
-system-sqlite \
-system-zlib \
-verbose \
-xcb \
-xkbcommon \
%ifarch %{ix86}
-no-sse2 \
%endif
QMAKE_AR="$AR cqs" \
QMAKE_CC="$CC" \
QMAKE_CFLAGS_RELEASE="$CFLAGS" \
QMAKE_CXX="$CXX" \
QMAKE_CXXFLAGS_RELEASE="$CXXFLAGS" \
QMAKE_LFLAGS_RELEASE="$LDFLAGS" \
QMAKE_RANLIB="$RANLIB" \
QMAKE_STRIP= \
%{nil}
I've checked as well fedora spec and I don't see anything related to shadow :/ May I ask you to point on hat is missing in above?
There is -DSHADOW_SUPPORT=true
option you can use to enable it when running CMake command while building QGnomePlatform, however, this option will only work if you backport API changes from Qt6. How do you build QGnomePlatform? Why do you build it in the first place? Fedora already has the latest version available in updates repository.
I've added -DSHADOW_SUPPORT=true
to CXXFLAGS but it still does not work ..
Does it mean that 0.8.2 is only fo qt6?
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/QGnomePlatform-0.8.2/x86_64-redhat-linux-gnu'
[ 37%] Building CXX object src/decoration/CMakeFiles/qgnomeplatformdecoration.dir/decorationplugin.cpp.o
cd /home/tkloczko/rpmbuild/BUILD/QGnomePlatform-0.8.2/x86_64-redhat-linux-gnu/src/decoration && /usr/bin/g++ -DDECORATION_SHADOWS_SUPPORT -DQT_CORE_LIB -DQT_DBUS_LIB -DQT_GUI_LIB -DQT_NO_DEBUG -DQT_WAYLANDCLIENT_LIB -DQT_WIDGETS_LIB -DQT_XKBCOMMON_SUPPORT_LIB -Dqgnomeplatformdecoration_EXPORTS -I/home/tkloczko/rpmbuild/BUILD/QGnomePlatform-0.8.2/x86_64-redhat-linux-gnu/src/decoration/qgnomeplatformdecoration_autogen/include -I/home/tkloczko/rpmbuild/BUILD/QGnomePlatform-0.8.2/src/common -isystem /usr/include/qt5 -isystem /usr/include/qt5/QtCore -isystem /usr/lib64/qt5/mkspecs/linux-g++ -isystem /usr/include/qt5/QtDBus -isystem /usr/include/qt5/QtGui/5.15.2 -isystem /usr/include/qt5/QtGui/5.15.2/QtGui -isystem /usr/include/qt5/QtGui -isystem /usr/include/qt5/QtCore/5.15.2 -isystem /usr/include/qt5/QtCore/5.15.2/QtCore -isystem /usr/include/qt5/QtWidgets -isystem /usr/include/gtk-3.0 -isystem /usr/include/pango-1.0 -isystem /usr/include/glib-2.0 -isystem /usr/lib64/glib-2.0/include -isystem /usr/include/harfbuzz -isystem /usr/include/cairo -isystem /usr/include/gdk-pixbuf-2.0 -isystem /usr/include/atk-1.0 -isystem /usr/include/qt5/QtWaylandClient/5.15.2 -isystem /usr/include/qt5/QtWaylandClient/5.15.2/QtWaylandClient -isystem /usr/include/qt5/QtWaylandClient -isystem /usr/include/qt5/QtXkbCommonSupport/5.15.2 -isystem /usr/include/qt5/QtXkbCommonSupport/5.15.2/QtXkbCommonSupport -isystem /usr/include/qt5/QtXkbCommonSupport -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -fno-rtti -fno-exceptions -DSHADOW_SUPPORT=true -DNDEBUG -fPIC -fPIC -std=gnu++11 -MD -MT src/decoration/CMakeFiles/qgnomeplatformdecoration.dir/decorationplugin.cpp.o -MF CMakeFiles/qgnomeplatformdecoration.dir/decorationplugin.cpp.o.d -o CMakeFiles/qgnomeplatformdecoration.dir/decorationplugin.cpp.o -c /home/tkloczko/rpmbuild/BUILD/QGnomePlatform-0.8.2/src/decoration/decorationplugin.cpp
In file included from /home/tkloczko/rpmbuild/BUILD/QGnomePlatform-0.8.2/src/decoration/decorationplugin.cpp:21:
/home/tkloczko/rpmbuild/BUILD/QGnomePlatform-0.8.2/src/decoration/qgnomeplatformdecoration.h:57:22: error: ‘MarginsType’ has not been declared
57 | QMargins margins(MarginsType marginsType = Full) const override;
| ^~~~~~~~~~~
/home/tkloczko/rpmbuild/BUILD/QGnomePlatform-0.8.2/src/decoration/qgnomeplatformdecoration.h:57:14: error: ‘QMargins QGnomePlatformDecoration::margins(int) const’ marked ‘override’, but does not override
57 | QMargins margins(MarginsType marginsType = Full) const override;
| ^~~~~~~
/home/tkloczko/rpmbuild/BUILD/QGnomePlatform-0.8.2/src/decoration/qgnomeplatformdecoration.h:57:48: error: ‘Full’ was not declared in this scope
57 | QMargins margins(MarginsType marginsType = Full) const override;
| ^~~~
/home/tkloczko/rpmbuild/BUILD/QGnomePlatform-0.8.2/src/decoration/decorationplugin.cpp: In member function ‘virtual QtWaylandClient::QWaylandAbstractDecoration* QGnomePlatformDecorationPlugin::create(const QString&, const QStringList&)’:
/home/tkloczko/rpmbuild/BUILD/QGnomePlatform-0.8.2/src/decoration/decorationplugin.cpp:27:45: error: invalid new-expression of abstract class type ‘QGnomePlatformDecoration’
27 | return new QGnomePlatformDecoration();
| ^
In file included from /home/tkloczko/rpmbuild/BUILD/QGnomePlatform-0.8.2/src/decoration/decorationplugin.cpp:21:
/home/tkloczko/rpmbuild/BUILD/QGnomePlatform-0.8.2/src/decoration/qgnomeplatformdecoration.h:49:7: note: because the following virtual functions are pure within ‘QGnomePlatformDecoration’:
49 | class QGnomePlatformDecoration : public QWaylandAbstractDecoration
| ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/tkloczko/rpmbuild/BUILD/QGnomePlatform-0.8.2/src/decoration/qgnomeplatformdecoration.h:23,
from /home/tkloczko/rpmbuild/BUILD/QGnomePlatform-0.8.2/src/decoration/decorationplugin.cpp:21:
/usr/include/qt5/QtWaylandClient/5.15.2/QtWaylandClient/private/qwaylandabstractdecoration_p.h:94:22: note: ‘virtual QMargins QtWaylandClient::QWaylandAbstractDecoration::margins() const’
94 | virtual QMargins margins() const = 0;
| ^~~~~~~
make[2]: *** [src/decoration/CMakeFiles/qgnomeplatformdecoration.dir/build.make:93: src/decoration/CMakeFiles/qgnomeplatformdecoration.dir/decorationplugin.cpp.o] Error 1
How do you build QGnomePlatform? Why do you build it in the first place? Fedora already has the latest version available in updates repository.
Fadora has no many things which has distrinution on which I'm working. I'm building qgnomeplatform with:
%build
%cmake \
-D DECORATION_SHADOWS_SUPPORT=ON \
%{nil}
%cmake_build
Looks like remove DECORATION_SHADOWS_SUPPORT=ON
from cmake options fixed the build issue.
Question only is why cmake is not falagging that using that option is in this case incorrect.
It didn't occur to me that someone would enable it. Even when you enable it, it says it requires Qt 6.2 changes.
IMO if qt6 has not been forund cmake should finish with error.
I'm not able to diagnose what may be wrong. May I ask for some help?