[CMake] How to installing cmake Config.cmake files under Debian multiarch ?

Brad King brad.king at kitware.com
Wed Aug 3 11:56:40 EDT 2011


On 8/3/2011 11:41 AM, Alexander Neundorf wrote:
> On Tuesday 02 August 2011, Hendrik Sattler wrote:
>> If you use cmake 2.8.5, you can use GNUInstalldirs.cmake and let the user
>> specify the multiarch directory to install in (or solve it once in that
>> cmake module).
>
> You mean having the user adjust the lib install dir correctly manually ?
> Hmm, I think it is not realistic to expect that users will know about that.
> There must be a way to do this so that it is works automatically, at least so
> that a cmake on the same system will find what was installed.

See discussion here on why we can't transform the install() DESTINATION
options magically:

   http://www.cmake.org/Bug/view.php?id=11964#c25884

The conclusion was that user code that intends to support such cases
must reference a variable in its install destinations.  The
GNUInstallDirs module provides a good variable to reference:

   http://cmake.org/gitweb?p=cmake.git;a=blob;f=Modules/GNUInstallDirs.cmake;hb=v2.8.5#l71

   install(... DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/Foo)

However, as noted in the comments it still needs to be taught about
multiarch.  Even though that it doesn't do it in CMake 2.8.5 the variable
is a cache entry so packagers can fix it at build time.

The find_package command in CMake 2.8.5 is multiarch-aware and will
search the right place under each installation prefix.

-Brad


More information about the CMake mailing list