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.
This package is known to build and work properly using an LFS 12.1 platform.
Download (HTTP): https://cmake.org/files/v3.28/cmake-3.28.3.tar.gz
Download MD5 sum: 6b16c82b81e1fd80b63bee9696846b21
Download size: 11 MB
Estimated disk space required: 435 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.6.0, libarchive-3.7.2, libuv-1.48.0, and nghttp2-1.59.0
GCC-13.2.0 (for gfortran), git-2.44.0 (for use during tests), Mercurial-6.6.3 (for use during tests), OpenJDK-21.0.2 (for use during tests), (Qt-5.15.12 or qt-alternate-5.15.12) or Qt-6.6.2 (for the Qt-based GUI), sphinx-7.2.6 (for building documents), Subversion-1.14.3 (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.28.3 && make
To test the results, issue: LC_ALL=en_US.UTF-8 bin/ctest -j<N>
-O
cmake-3.28.3-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 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.