Orion Poplawski wrote: > I'm moving this to fedora-devel to get more comment. For context, here's the full text of the original proposal sent to kde list a little while back, ------------------------------ Date: Tue, 29 Jun 2010 00:27:05 +0300 From: Kalev Lember <kalev@xxxxxxxxxxxx> To: kde@xxxxxxxxxxxxxxxxxxxxxxx Subject: cmake guideline updates Fedora KDE packaging guidelines have evolved over time, but official Fedora cmake guidelines [1] are still the same that were originally accepted in 2007. I would like to propose a few changes to the example cmake spec file to bring it more in line with KDE spec files: %build -%cmake . -make VERBOSE=1 %{?_smp_mflags} +mkdir -p %{_target_platform} +pushd %{_target_platform} +%{cmake} .. +popd + +make %{?_smp_mflags} -C %{_target_platform} %install rm -rf $RPM_BUILD_ROOT -make install DESTDIR=$RPM_BUILD_ROOT +make install/fast DESTDIR=$RPM_BUILD_ROOT -C %{_target_platform} %check -ctest +make test -C %{_target_platform} 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? Anything else in the guidelines which needs discussion? [1] https://fedoraproject.org/wiki/Packaging:Cmake [2] https://bugzilla.redhat.com/show_bug.cgi?id=539948 [3] http://lists.fedoraproject.org/pipermail/devel/2010-June/13771 -- devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxxx https://admin.fedoraproject.org/mailman/listinfo/devel