building KF5 projects against a different Qt5 version (than the one the KF5 frameworks were built against)

David Faure faure at kde.org
Sun Apr 26 15:58:10 BST 2020


On Sunday, April 26, 2020 4:32:46 PM CEST René J.V. Bertin wrote:
> On Sunday April 26 2020 15:46:35 David Faure wrote:
> >Well, yeah, you can't have it all.
> 
> I suppose that the appropriate ECM could provide a function that returns the
> path to the "official" Qt headers (or an expression that evaluates to that
> path) unless something like QT_HEADER_PATH is defined. Idem for linker
> paths. Of course then individual frameworks would still accept to use those
> functions.

None of that would work with imported targets.

> >Or, you can, but you need two full builds.
> 
> Yeah, I don't think that what I was trying is important enough to warrant
> the investment that comes with having another build...

Your choice.

> >There's no such central header in KF5 frameworks (which are more modular,
> >by definition), so you need to include the framework_version.h header.
>
> Don't you think it'd make sense to expect the version to be defined if you
> include the KFoo header if framework Foo provides one (I count 17 that do,
> among the 60+ frameworks I installed)? 

No. There's no "main header" concept. As you say, this would only work for 
17/60 frameworks anyway, not really a good solution.

> As a side-note, I'd even argue that
> it would make sense to provide an all-inclusive header per framework, just
> like Apple's frameworks do.

It's said to improve compilation times with precompiled headers, but in 
practice nobody knows if the person compiling the code has that, so I fail to 
see the point.

Who needs all of <KCoreAddons>? Nobody.

> >We have -Wundef by default.
> 
> Yes, in the compiler settings, which is why I caught the FOO_VERSION not
> defined thing purely by chance rather than because of unexpected behaviour
> at runtime. 

I wouldn't call this "purely by chance". I set -Wundef there for a reason :-)

> KDevelop doesn't include the flag in its options for the
> clang-based parser.

OK, talk to the KDevelop people then :-)

-- 
David Faure, faure at kde.org, http://www.davidfaure.fr
Working on KDE Frameworks 5





More information about the Kde-frameworks-devel mailing list