Bug 380452 - latest commit in master (Use Q_DECL_OVERRIDE) causes failed builds
Summary: latest commit in master (Use Q_DECL_OVERRIDE) causes failed builds
Status: RESOLVED FIXED
Alias: None
Product: Oxygen
Classification: Plasma
Component: general (show other bugs)
Version: unspecified
Platform: Neon Linux
: NOR normal
Target Milestone: ---
Assignee: Hugo Pereira Da Costa
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-06-02 07:30 UTC by Rik Mills
Modified: 2017-06-02 08:14 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Rik Mills 2017-06-02 07:30:38 UTC
Commit: https://cgit.kde.org/oxygen.git/commit/?id=1bf982f43470c9441287f3fd6a8a3dee834e1483

Causes build failures in both Neon and Kubuntu CI

Builds fails in multiple places with errors such as:

Generating moc_oxygenmenubardata.cpp
In file included from /<<BUILDDIR>>/oxygen-5.10.0+p17.10+git20170602.0107/liboxygen/oxygenitemmodel.cpp:26:0:
/<<BUILDDIR>>/oxygen-5.10.0+p17.10+git20170602.0107/liboxygen/oxygenitemmodel.h:60:73: error: expected ‘;’ at end of member declaration
         void sort( int column, Qt::SortOrder order = Qt::AscendingOrder ) Q_DECL_OVERRIDE;
                                                                         ^
/<<BUILDDIR>>/oxygen-5.10.0+p17.10+git20170602.0107/liboxygen/oxygenitemmodel.h:60:75: error: ‘Q_DECL_OVERRIDE’ does not name a type
         void sort( int column, Qt::SortOrder order = Qt::AscendingOrder ) Q_DECL_OVERRIDE;
                                                                           ^~~~~~~~~~~~~~~
Generating moc_oxygenscrollbarengine.cpp
liboxygen/CMakeFiles/oxygenstyle.dir/build.make:153: recipe for target 'liboxygen/CMakeFiles/oxygenstyle.dir/oxygenitemmodel.cpp.o' failed
make[5]: *** [liboxygen/CMakeFiles/oxygenstyle.dir/oxygenitemmodel.cpp.o] Error 1
make[5]: *** Waiting for unfinished jobs....

Ref:

http://build.neon.kde.org/job/xenial_unstable_plasma_oxygen_bin_amd64/79/console

and

https://launchpadlibrarian.net/322152331/buildlog_ubuntu-artful-amd64.oxygen_4%3A5.10.0+p17.10+git20170602.0107-0_BUILDING.txt.gz

from http://kci.pangea.pub/job/artful_unstable_oxygen/28/
Comment 1 Hugo Pereira Da Costa 2017-06-02 07:49:13 UTC
Yes. I guess it breaks with kde4/qt4 compilation, for which Q_DECL_OVERRIDE does not exist.
Please revert, Laurent, at least partially, to make sure KDE4 build works

(the option for kde4 build  is to add -DUSE_KDE4=1 at cmake stage)
Comment 2 Hugo Pereira Da Costa 2017-06-02 07:51:26 UTC
Note that a proper code review would have prevent this
(idem in breeze).
Comment 3 Hugo Pereira Da Costa 2017-06-02 07:57:58 UTC
Also, I remember a discussion on kcd about how using Q_DECL_OVERRIDE was a pita, and that one should simply use "override". Just checked, that's what kwin and kdecoration does. 

Since at least the decoration part of breeze and oxygen rely on kdecoration, (and thus have the same compiler requirements), I would change Q_DECL_OVERRIDE into override there. 
This also would have prevented the crash (override is defined disregarding the Qt version).
Comment 4 Hugo Pereira Da Costa 2017-06-02 08:13:40 UTC
Git commit 8a4e31bc99ed5ada95f2ebf1eb8151c52a1d5420 by Hugo Pereira Da Costa.
Committed on 02/06/2017 at 08:08.
Pushed by hpereiradacosta into branch 'master'.

Q_DECL_OVERRIDE -> override
Rationale is that oxygen decoration depends on libkdecoration, which uses override directly already.

M  +3    -3    kdecoration/config/oxygenanimationconfigwidget.h
M  +1    -1    kdecoration/config/oxygendetectwidget.h
M  +4    -4    kdecoration/config/oxygenexceptionmodel.h
M  +1    -1    kdecoration/config/oxygenitemmodel.h
M  +1    -1    kdecoration/oxygenbutton.h
M  +1    -1    kdecoration/oxygendecohelper.h

https://commits.kde.org/oxygen/8a4e31bc99ed5ada95f2ebf1eb8151c52a1d5420
Comment 5 Hugo Pereira Da Costa 2017-06-02 08:13:40 UTC
Git commit cbc5fdbd4654118c6ec37776b060420e520c216b by Hugo Pereira Da Costa.
Committed on 02/06/2017 at 08:12.
Pushed by hpereiradacosta into branch 'master'.

Partially revert "Use Q_DECL_OVERRIDE"

The style code can be built with Qt4/kdelibs4 as well, and there is no Q_DECL_OVERRIDE in that case.

This partially reverts commit 1bf982f43470c9441287f3fd6a8a3dee834e1483

M  +2    -2    kstyle/animations/oxygenbusyindicatorengine.h
M  +1    -1    kstyle/animations/oxygendockseparatordata.h
M  +3    -3    kstyle/animations/oxygendockseparatorengine.h
M  +1    -1    kstyle/animations/oxygenenabledata.h
M  +1    -1    kstyle/animations/oxygengenericdata.h
M  +2    -2    kstyle/animations/oxygenheaderviewdata.h
M  +3    -3    kstyle/animations/oxygenheaderviewengine.h
M  +1    -1    kstyle/animations/oxygenmdiwindowdata.h
M  +3    -3    kstyle/animations/oxygenmdiwindowengine.h
M  +5    -5    kstyle/animations/oxygenmenubardata.h
M  +21   -21   kstyle/animations/oxygenmenubarengine.h
M  +7    -7    kstyle/animations/oxygenmenudata.h
M  +21   -21   kstyle/animations/oxygenmenuengine.h
M  +1    -1    kstyle/animations/oxygenprogressbardata.h
M  +3    -3    kstyle/animations/oxygenprogressbarengine.h
M  +2    -2    kstyle/animations/oxygenscrollbardata.h
M  +3    -3    kstyle/animations/oxygenscrollbarengine.h
M  +1    -1    kstyle/animations/oxygenspinboxdata.h
M  +3    -3    kstyle/animations/oxygenspinboxengine.h
M  +3    -3    kstyle/animations/oxygensplitterengine.h
M  +1    -1    kstyle/animations/oxygentabbardata.h
M  +3    -3    kstyle/animations/oxygentabbarengine.h
M  +3    -3    kstyle/animations/oxygentoolbardata.h
M  +4    -4    kstyle/animations/oxygentoolbarengine.h
M  +3    -3    kstyle/animations/oxygentoolboxengine.h
M  +3    -3    kstyle/animations/oxygenwidgetstateengine.h
M  +3    -3    kstyle/config/oxygenanimationconfigwidget.h
M  +2    -2    kstyle/config/oxygenfollowmouseanimationconfigitem.h
M  +1    -1    kstyle/config/oxygenstyleconfig.h
M  +1    -1    kstyle/debug/oxygenwidgetexplorer.h
M  +2    -2    kstyle/demo/oxygendemodialog.h
M  +1    -1    kstyle/demo/oxygensimulator.h
M  +1    -1    kstyle/oxygenaddeventfilter.h
M  +2    -2    kstyle/oxygenblurhelper.h
M  +8    -8    kstyle/oxygenframeshadow.h
M  +2    -2    kstyle/oxygenmdiwindowshadow.h
M  +1    -1    kstyle/oxygenmnemonics.h
M  +1    -1    kstyle/oxygenshadowhelper.h
M  +2    -2    kstyle/oxygensplitterproxy.h
M  +3    -3    kstyle/oxygenstyle.cpp
M  +14   -14   kstyle/oxygenstyle.h
M  +4    -4    kstyle/oxygenstylehelper.h
M  +1    -1    kstyle/oxygenstyleplugin.h
M  +1    -1    kstyle/oxygenwindowmanager.cpp
M  +2    -2    kstyle/oxygenwindowmanager.h
M  +4    -4    kstyle/transitions/oxygencomboboxdata.h
M  +3    -3    kstyle/transitions/oxygencomboboxengine.h
M  +4    -4    kstyle/transitions/oxygenlabeldata.h
M  +3    -3    kstyle/transitions/oxygenlabelengine.h
M  +4    -4    kstyle/transitions/oxygenlineeditdata.h
M  +3    -3    kstyle/transitions/oxygenlineeditengine.h
M  +2    -2    kstyle/transitions/oxygenstackedwidgetdata.h
M  +3    -3    kstyle/transitions/oxygenstackedwidgetengine.h
M  +2    -2    kstyle/transitions/oxygentransitionwidget.h
M  +2    -2    liboxygen/oxygengenericanimationconfigitem.h
M  +26   -26   liboxygen/oxygenitemmodel.h
M  +4    -4    liboxygen/oxygenlistmodel.h

https://commits.kde.org/oxygen/cbc5fdbd4654118c6ec37776b060420e520c216b