From Fedora Project Wiki

m (Fix bad documentation link.)
Line 37: Line 37:


'''NOTE''': cmake has good documentation in two places:
'''NOTE''': cmake has good documentation in two places:
* http://www.cmake.org/HTML/Documentation.html
* http://www.cmake.org/documentation/
* http://www.cmake.org/Wiki/CMake
* http://www.cmake.org/Wiki/CMake


[[Category:Packaging guidelines]]
[[Category:Packaging guidelines]]

Revision as of 00:12, 23 October 2014

Guidelines for cmake

This document provides cmake best-practices for generating Fedora RPMS using cmake


RPM Macros

If cmake is installed, see /etc/rpm/macros.cmake

If kde-filesystem is installed, see /etc/rpm/macros.kde4


Specfile Usage

%build
%cmake .
make %{?_smp_mflags}


%install
rm -rf $RPM_BUILD_ROOT
make install DESTDIR=$RPM_BUILD_ROOT


%check
ctest

Notes

NOTE: -DCMAKE_SKIP_RPATH:BOOL=ON. With recent cmake-2.4, it should not be used. This cmake version should hand RPATHs issues correctly (set them in build-dir, remove them during installation). Setting CMAKE_SKIP_RPATH for this version would avoid RPATHs in build-dir too. This might link binaries against system-libraries (e.g. when a previous version of the package was installed) instead of the libraries which were created by the build.

Nevertheless, RPATH issues might arise when cmake was used improperly. E.g. installing a target with INSTALL(FILES ... RENAME ...) will not strip rpaths; in this case INSTALL(TARGETS ...) must be used in combination with changing the OUTPUT_NAME property.

NOTE: cmake has good documentation in two places: