Config files for frameworks (Was: KArchive for Qt4)
Stephen Kelly
steveire at gmail.com
Tue Dec 18 16:27:47 UTC 2012
Alexander Neundorf wrote:
> As providers of a library we should not enforce how people use CMake, i.e.
> whether they use the automatic INSTALL_RPATH_USE_LINK_PATH or whether they
> want to decide manually.
We can
* make the common things easy (we don't need to do anything and people can
use INSTALL_RPATH_USE_LINK_PATH)
* make the less common things possible (We don't need to do anything and
don't prevent anyone from reading the LOCATION property and using
get_filename_component() as you did)
* Minimise the amount of things we put into the Config files (for
maintenance, so people don't bother adding 'missing' variables which are not
useful to the 20+ config files we'll maintain by hand)
* Encourage people to use idiomatic, modern cmake (so we don't have to
support imaginary use-cases).
The choice not to pre-caclulate and maintain unused variables in Config
files is not a choice that enforces how anyone else uses CMake.
> So the LIBRARY_DIR variable should be provided
> for that case.
>
>> Not using them is
>> rare enough that it would be ok to read the LOCATION property from the
>> imported target instead of setting the variable.
>
> Personally I can't judge whether setting the RPATH manually is used rarely
> or not. In KDE we do it automatically, but we are looking outside the KDE
> community now.
Still though, we need to optimize for KDE-projects, and those are going to
use the 'KDE cmake settings'.
That's something we've always done. kde4_add_executable and kde4_add_library
are already making choices about how the user can use cmake with 'KDE
stuff'. There's no precedent, reason or requirement to support imaginary
use-cases.
Let's start with minimal Config files. If we find later (during our
experience of porting applications to use frameworks) that there's something
that really really should be in all the Config files, let's add it then.
Thanks,
Steve.
More information about the Kde-frameworks-devel
mailing list