cmake guideline updates

Orion Poplawski orion at cora.nwra.com
Wed Jul 14 15:58:04 UTC 2010


On 06/28/2010 03:27 PM, Kalev Lember wrote:
> A few packages [2] [3] have recently had problems with the default
> -DBUILD_SHARED_LIBS:BOOL=ON which is part of %cmake macro. Those
> packages didn't pass neither SHARED nor STATIC arguments to
> add_library() call and relied on the cmake usual default to produce
> static libraries. Those static libraries weren't meant to be installed;
> they were just used as "convenience" libraries during the build which
> would be statically linked into the final executable.
>
> However, if BUILD_SHARED_LIBS is defined, we get unversioned shared
> libraries instead of "convenience" libraries. Packagers often don't know
> what to do with such unversioned libraries.
>
> Perhaps it'd be better to completely remove -DBUILD_SHARED_LIBS:BOOL=ON
> from the default %cmake macro? I would imagine that most (all?)
> libraries which are meant to be actually used as shared libraries
> contain explicit add_library(... SHARED) and set_target_properties(...
> PROPERTIES VERSION ... SOVERSION ...) calls, but maybe that's not how it
> is. Any thoughts whether removing BUILD_SHARED_LIBS=ON would break
> existing packages?

Sorry for not replying earlier.

Looking at my existing cmake built packages, I'm a bit leery of this change. 
Most of them don't seem to specify SHARED in add_library.  Has anyone tested 
this out on a large number of packages?  Perhaps it makes sense to request a 
cmake koji build tag for this and rebuild all cmake built packages there.

-- 
Orion Poplawski
Technical Manager                     303-415-9701 x222
NWRA/CoRA Division                    FAX: 303-415-9702
3380 Mitchell Lane                  orion at cora.nwra.com
Boulder, CO 80301              http://www.cora.nwra.com


More information about the kde mailing list