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.
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.31/cmake-3.31.2.tar.gz
Download MD5 sum: 108a2dec6a146e48393230baa2cd6a82
Download size: 12 MB
Estimated disk space required: 479 MB (add 1.3 GB for tests)
Estimated build time: 2.0 SBU (add 4.0 SBU for tests, both using parallelism=4)
cURL-8.11.0, libarchive-3.7.7, libuv-1.49.2, and nghttp2-1.64.0
GCC-14.2.0 (for gfortran), git-2.47.1 (for use during tests), Mercurial-6.9 (for use during tests), OpenJDK-23.0.1 (for use during tests), Qt-6.8.1 (for the Qt-based GUI), sphinx-8.1.3 (for building documents), Subversion-1.14.5 (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.31.2 && make
To test the results, issue: bin/ctest
-j$(nproc)
. Replace
$(nproc)
with an integer
between 1 and the number of system logical cores if you don't want
to use all.
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 the system installed
version for all needed libraries but those explicitly specified via
a --no-system-*
option.
--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. It's not needed if the MAKEFLAGS
variable has been already set for using
multiple processors following Using Multiple Processors.