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.
Download (HTTP): https://cmake.org/files/v4.1/cmake-4.1.3.tar.gz
Download SHA256 Sum: 765879a53d178bf1e1509768de4c9a672dabaa20047a9f3809571558e783be88
Download MD5 sum: cf1d0fa7f9e88afaddf379a7b1ce65f0
Download size: 11 MB
Estimated disk space required: 490 MB (add 1.4 GB for tests)
Estimated build time: 2.3 SBU (add 4.3 SBU for tests, both using parallelism=4)
cURL-8.17.0, the section called “Libarchive-3.8.1”, libuv-1.51.0, and "nghttp2"
the section called “GCC-15.2.0” rebuilt for gfortran", git-2.52.0 (for use during tests), "mercurial" (for use during tests), "openjdk" (for use during tests), "Qt6" (for the Qt-based GUI), "sphinx" (for building documents), "subversion" (for testing), cppdap, jsoncpp, and rhash
Prepare CMake by running the following commands:
sed -i '/"lib64"/s/64//' Modules/GNUInstallDirs.cmake
Now configure, issue:
./bootstrap --prefix=/usr \
--system-libs \
--mandir=/share/man \
--no-system-jsoncpp \
--no-system-cppdap \
--no-system-librhash \
--no-system-nghttp2 \
--docdir=/share/doc/cmake-4.1.3Now build, issue:
make
Replace $(nproc) with an integer between 1 and the
number of system logical cores if you don't want to use all.
To test the results, issue:
bin/ctest -j$(nproc)
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
'parallel-builds'.