Making writing Config.cmake files easier - updated example
Alexander Neundorf
neundorf at kde.org
Tue Jan 17 19:43:04 UTC 2012
On Tuesday 17 January 2012, Yury G. Kudryashov wrote:
> Alexander Neundorf wrote:
> > On Tuesday 17 January 2012, Yury G. Kudryashov wrote:
> >> so we need to ensure (or document?) that the
> >> same directory used while writing MyLibConfig.cmake and installing it.
> >
> > Hmm, I don't understand exactly what you mean, can you please explain a
> > bit more ?
>
> Look at the following code:
>
> set(CMAKECONFIG_INSTALL_DIR lib/cmake/MyLib)
> #MyLibConfig hardcodes $prefix/lib/cmake/MyLib
> configure_file(MyLibConfig.cmake.in MyLibConfig.cmake)
> #but is actually installed to a different directory
> install(FILES ${CMAKE_CURRENT_BINARY_DIR}/MyLibConig.cmake DESTINATION
> lib/cmake)
>
> My points are:
> 1. The contents of MyLibConfigVersion.cmake does not depend on the
> DESTINATION argument that will be passed to install(FILES).
> 2. MyLibConfig.cmake content does.
I guess you want to show me that the example above is buggy, i.e. splitting
creating and installing can lead to buggy cmake code, while combining it makes
this impossible ?
> 3. Writing MyLibConfig.cmake to ${CMAKE_CURRENT_BINARY_DIR} is an
> implementation detail, not a part of "public" API. We can hide this file by
> placing it to CMakeFiles subdirectory.
As I said before, I wouldn't hide this file too much from the user. It should
be easy for the developer to have a look at the file, IMO it shouldn't be
hidden in a subdirectory.
> So, the macro should be called 'install_basic_config_file()'.
Before going too far in one direction, please post a proposal to cmake-
developers.
Btw., I added you here: http://community.kde.org/Frameworks/Epics/CMake :-)
which is the KDE frameworks cmake planning page, linked from here
http://community.kde.org/Frameworks/Epics
Thanks
Alex
More information about the Kde-buildsystem
mailing list