[CMake] Installing and Exporting for multiple configurations
Matthew Woehlke
matthew.woehlke at kitware.com
Fri Apr 5 11:29:34 EDT 2013
On 2013-04-04 19:19, J Decker wrote:
> On Thu, Apr 4, 2013 at 2:25 PM, Matthew Woehlke wrote:
>> On 2013-04-04 17:04, J Decker wrote:
>>> Also, you should install to 'lib${LIB_SUFFIX}', not 'lib'. This will allow
>>>> you (and distros packaging your software) to set LIB_SUFFIX to separate
>>>> arch-specific components of 32- and 64-bit builds. E.g. on Linux,
>>>> lib_suffix is usually ''/'64' or '32'/'', and on Windows might be
>>>> ''/'/amd64'.
>>>
>>> if you're mentioning ${LIB_SUFFIX} you might as well mention ${LIB_PREFIX}
>>> which is the 'lib' prepended on gnuish systems.
>>
>> ?
>>
>> I'm pretty sure my libraries don't get installed to /usr/liblib64... Maybe
> you are thinking of the file name prefix, which is something different?
>
> right...but they do go to
> /usr/lib64/${CMAKE_[SHARED/STATIC]_LIBRARY_PREFIX}...${CMAKE_[SHARED/STATIC]_LIBRARY_SUFFIX}
Like I said... LIB_SUFFIX != CMAKE_{STATIC,SHARED}_LIBRARY_PREFIX.
CMAKE_{STATIC,SHARED}_LIBRARY_PREFIX is a built-in variable that affects
default library file names in the build.
LIB_SUFFIX is a de facto convention (originating from distro packagers I
believe) which is appended to the 'lib' destination directory when
installing things into 'lib', in order to conveniently support
multi-arch aware systems; e.g. things get installed to /usr/lib64
because they are correctly installed to 'DESTINATION lib${LIB_SUFFIX}'
with -DLIB_SUFFIX=64.
--
Matthew
More information about the CMake
mailing list