The CMake package contains a modern toolset used for generating Makefiles. It is a successor of the auto-generated configure script and aims to be platform- and compiler-independent. A significant user of CMake is KDE since version 4.
![[Note]](../images/note.png)
Development versions of BLFS may not build or run some packages properly if LFS or dependencies have been updated since the most recent stable versions of the books.
Download (HTTP): https://cmake.org/files/v3.27/cmake-3.27.8.tar.gz
Download MD5 sum: df0e65607c9280a8df68b2c93eac4437
Download size: 10.5 MB
Estimated disk space required: 424 MB (add 1.2 GB for tests)
Estimated build time: 2.2 SBU (add 3.9 SBU for tests, both using parallelism=4)
cURL-8.4.0, libarchive-3.7.2, libuv-1.47.0, and nghttp2-1.58.0
GCC-13.2.0 (for gfortran), git-2.43.0 (for use during tests), Mercurial-6.6 (for use during tests), (Qt-5.15.11 or qt-alternate-5.15.11) or Qt-6.6.1 (for the Qt-based GUI), sphinx-7.2.6 (for building documents), Subversion-1.14.2 (for testing), cppdap, jsoncpp, and rhash
Install CMake by running the following commands:
sed -i '/"lib64"/s/64//' Modules/GNUInstallDirs.cmake &&
./bootstrap --prefix=/usr \
--system-libs \
--mandir=/share/man \
--no-system-jsoncpp \
--no-system-cppdap \
--no-system-librhash \
--docdir=/share/doc/cmake-3.27.8 &&
make
To test the results, issue: LC_ALL=en_US.UTF-8 bin/ctest
-j<N> -O
cmake-3.27.8-test.log, where
<N> is an integer between 1 and the
number of system cores. Setting LC_ALL is needed to
prevent some test failures when some of the locale variables are
set to non English locales.
If you want to investigate a problem with a given "problem1-test",
use bin/ctest -R "problem1-test" and, to omit it, use
bin/ctest -E "problem1-test". These options can be
used together:
bin/ctest -R "problem1-test" -E "problem2-test".
Option -N can be used to display all
available tests, and you can run bin/ctest for a
sub-set of tests by using separated by spaces names or numbers as
options. Option --help can be used to show all options.
Now, as the root user:
make install
sed ... Modules/GNUInstallDirs.cmake: This command disables applications using cmake from attempting to install files in /usr/lib64/.
--system-libs: This switch forces the build system
to link against Zlib,
Bzip2, cURL,
nghttp2,
Expat and libarchive
installed on the system.
--no-system-jsoncpp and
--no-system-cppdap: These switches remove the
JSON-C++ library from the list of system
libraries. A bundled version of that library is used instead.
--no-system-librhash: This switch removes the
librhash library from the list of system
libraries used. A bundled version of that library is used instead.
--no-system-{curl,libarchive,libuv,nghttp2}: Use
the corresponding option in the list for the
bootstrap if one of the recommended dependencies is
not installed. A bundled version of the dependency will be used instead.
--qt-gui: This switch enables building the
Qt-based GUI for
CMake.
--parallel=: This switch enables performing the
CMake bootstrap with multiple jobs
at one time.