[cmake-developers] SONAME on APPLE?

Stephen Kelly steveire at gmail.com
Tue Jul 10 05:55:04 EDT 2012


Brad King wrote:

> On 07/09/2012 01:15 PM, Stephen Kelly wrote:
>> More interesting is that cmake is generating an IMPORTED_SONAME of just
>> 'cmakeqt' when I build the library as a framework (no full path, no
>> version number, no file extension). Is this a bug in CMake?
> 
> There is explicit code for the case here:
> 
>  
http://cmake.org/gitweb?p=cmake.git;a=blob;f=Source/cmTarget.cxx;hb=v2.8.8#l3279
> 
> -Brad

Ok, so what you said earlier:

> > Should I set the IMPORTED_SONAME to these 
> > full paths to the installation location on APPLE? Wouldn't that make the 
> > frameworks non-relocatable, or is that a bug in Qt anyway?
>
> Ideally the IMPORTED_SONAME should match the shared library id of
> the actual library file.  That's what CMake wants to know.


... was not the full story.

The IMPORTED_SONAME should match the shared library id, except for APPLE 
FRAMEWORKS, in which case it should be the outputName? Are there other 
exceptions? 

If creating IMPORTED targets by hand is a valid usecase (I think it is - 
FindQt4 does it too, and there are benefits for other Find modules to do 
so), I could try to document this more clearly.

Thanks,

Steve.





More information about the cmake-developers mailing list