cmake problems in KDELibs4Config

Alexander Neundorf neundorf at kde.org
Wed Jul 24 20:00:32 UTC 2013


On Wednesday 24 July 2013, Sebastian Kügler wrote:
> Hi,
> 
> I'm getting the following two errors when trying to build plasma-framework:
> 
> macro_ensure_version doesn't exist anymore, but is used in
> KDELibs4Config.cmake. Is there a replacement for it?

Hopefully all such changes are documented here:

http://techbase.kde.org/Development/ECM_SourceIncompatChanges#MacroEnsureVersion.cmake

> Then:
> 
> CMake Error at CMakeLists.txt:70 (find_package):
>   Found package configuration file:
> 
>     /home/sebas/kf5/install/lib/x86_64-linux-
> gnu/cmake/KDELibs4/KDELibs4Config.cmake
> 
>   but it set KDELibs4_FOUND to FALSE so package "KDELibs4" is considered to
>   be NOT FOUND.  Reason given by package:
> 
>   The following imported targets are referenced, but are missing:
>   KF5::KDE4Attic


KDELibs4Config.cmake includes KDELibs4LibraryTargets.cmake.
This file contains exported targets for all not yet separated libraries of 
kdelibs, e.g. KDE4Support.
kde4support links against kde4attic.
When exporting the targets, cmake puts the dependency information into the 
file containing the exported targets (KDELibs4LibraryTargets.cmake). So 
kde4support depends on kde4attic.
To make sure everything works once this export-file has been imported again by 
a using project (plasma), cmake puts in a check that all targets exist, which 
are dependencies of targets exported into this file, i.e. it checks whether 
the target "KF5::KDE4Attic" exists, since it is needed by the target for the 
kde4support library.
Here it fails then.

You can have a look into these files, they are more or less fully commented.

What to do...

So, kde4support depends on a lot of stuff in kdelibs.
Some libs in kdelibs still depend on kde4support (at least last week this 
still was the case). That's why kde4support is still not installed separately.

So the KDE4Attic targets needs to exist before KDELibs4 is searched.


> Adding KDE4Attic to the KF5 modules doesn't help, what to do?

What exactly did you do ?

If you add KDE4Attic to the list of known frameworks in extra-cmake-modules, 
and add it to the find_package(KF5 .... ) call as a needed component, it 
should work.

Alex


More information about the Kde-frameworks-devel mailing list