Fwd: KF5 CMake usage question

Shaheed Haque srhaque at theiet.org
Tue May 23 20:45:20 BST 2017

> I don't understand what you're trying to do.

Me neither :-). Let me take a step back to try to provide some
context. It is my assessment that part of the problem with the
maintenance of bindings has been the lack of automation both in
support of the initial development of the bindings, and then ongoing
maintenance. My overall intention is to try to provide the missing
automation. For our present purposes, we can think of that as having
one part to do with the language support (think C++ templates,
exceptions, ...) being mapped to Python, and a second part to do with
how the code is packaged and delivered.

This second part has some complications for which I don't yet have a
clear solution:

- Steve did some cool stuff in ECM but there are aspects of that which
are not as automated as I think can be achieved and which ties the
overall solution firmly to KDE.

- I observe that PyQt has undergone a good deal of enhancement around
thePython end of the packaging; and the latest incarnation based on
something called a "wheel" seems to be widely appreciated. I want to
try to get to the same point.

- In between C++ and Python is SIP. SIP prsently has its own binding
build tooling to solve part of this problem. But it seems planned for
this to die in the near future.

So, the best transition path between the CMake-based build for KF5 and
the Python end of the "wheel" build and deployment process is not at
all clear to me. Part of the problem is that I don't have much
experience of either and none of the comparable solutions out there
(ECM, PyQt) have quite the same aspirations as I stated above.

So, back to the present point. The Cmake documentation is reasnably
detailed, but light on the overall way things work: specifically, I
have not quite understood how build setting/requirements are
propagated from (say) Qt::Core to KF5::whatever and thenceto the

For example, I had hoped that by doing a find package of KF5::Foo, I'd
be able to query from Cmake the needed settingsto compile the
bindings, but that always seems incomplete (e.g. the gnustd++14) I can
make an educated guess as to one possibility: maybe CMake propagates
these things at the point it evaluates the dependencies during a
build, and not before, but the CMake docs I have seen don't actually
seem to explain how the thing works.

So, I'm somewhat in the dark trying to stitch the pieces together.

> You are not supposed to change the definitions Qt5::Core suggests to
> the compiler.

I'm trying to understand how to query the CMake system for what the
settings are supposed to be so that I can - possibly - use some other
build system to achieve it.

> Aleix

More information about the kde-core-devel mailing list