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/v3.31/cmake-3.31.0.tar.gz
cURL-8.11.0, libarchive, libuv, and nghttp2
This may take a while to build. Feel free to do something else while this is building.
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 \ --no-system-libarchive \ --no-system-libuv \ --no-system-nghttp2 \ --docdir=/share/doc/cmake-3.31.0 && 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 of them.
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-{libarchive,libuv,nghttp2}
:
These switches do the same thing as above but for those packages
listed in these parameters. They are not installed currently.
--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.