Finding kf5 libs (Re: Move kde-config to kde4support.)

David Faure faure+bluesystems at kde.org
Fri Feb 22 17:51:40 UTC 2013


[This is no longer about kde*-config, retitling]

On Friday 22 February 2013 18:38:39 Alexander Neundorf wrote:
> If you do
> find_package(KF5 COMPONENTS kidletime kauth kconfig)
> it will search the kidletime library, and once it has found it, it will
> search kauth and kconfig only in the same prefix.

Surely if it can find kidletime "anywhere" (I assume that's more precisely "in 
CMAKE_PREFIX_PATH"), it can find the others using the same algorithm?

> If KDEDIRS is set, it searches afterwards also in those.

Please get rid of KDEDIRS. Surely setting CMAKE_PREFIX_PATH can do this job 
just the same?

> Or am I wrong with this, will the libraries have potentially completely
> individual version dependencies ?

We will release them all at once, but on a given system, after some apt-
get/zypper usage, you could end up with a different version installed for 
independent libs. Dependent libs should have proper version requirements 
though (kservice 5.1 requires ki18n >= 5.1).

> Imagine the following: my system has kf 5.3 installed, and for some project
> I want to use a subset of the kf5 libraries, let's say sonnet and kconfig,
> with all their dependencies, from 5.5.
> I would want to install those into a separate prefix, e.g.
> /opt/my-kf5-5.5/, and when using it, I would want to make sure I get just
> what is installed there, and not any other versions mixed in.
> 
> This works as it is now:
> find_package(KF5 MODULE COMPONENTS KConfig Sonnet)
> It will find KConfig and Sonnet only from the same directory, which will be
> the prefix I installed them to.
> If I want to mix different prefixes, I can use KDEDIRS (or could be
> KF5DIRS). Or I can use them as independent libraries:
> find_package(Sonnet NO_MODULE)
> find_package(KConfig NO_MODULE)
> 
> IMO this will make using the kf5 libs easier, and keeps us a bit from
> dependency hell. Why should we give this up ?

I agree with the goal. But don't we achieve the same goal with
CMAKE_PREFIX_PATH pointing to /opt/my-kf5-5.5 so that anything that can be 
found there is preferred over anything in /usr ?

-- 
David Faure, faure at kde.org, http://www.davidfaure.fr
Sponsored by BlueSystems and KDAB to work on KDE Frameworks



More information about the Kde-frameworks-devel mailing list