CMake-3.24.1

Introduction to CMake

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-11.2 platform.

Package Information

  • Download (HTTP): https://cmake.org/files/v3.24/cmake-3.24.1.tar.gz

  • Download MD5 sum: 3360abcd5576dc028204cd4583e6d4e9

  • Download size: 9.9 MB

  • Estimated disk space required: 417 MB (add 1.1 GB for tests)

  • Estimated build time: 2.3 SBU (add 3.9 SBU for tests, both using parallelism=4)

Additional Downloads

CMake Dependencies

Required

libuv-1.44.2

Recommended

Optional

GCC-12.2.0 (for gfortran), git-2.37.2 (for use during tests), Mercurial-6.2.1 (for use during tests), Qt-5.15.5 (for the Qt-based GUI), Subversion-1.14.2 (for testing), rhash, and Sphinx (for building documents)

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/cmake

Installation of CMake

First, adapt the FindBoost module to use Boost-1.80.0:

patch -Np1 -i ../cmake-3.24.1-upstream_fix-1.patch

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-librhash \
            --docdir=/share/doc/cmake-3.24.1 &&
make

To test the results, issue: LC_ALL=en_US.UTF-8 bin/ctest -j<N> -O cmake-3.24.1-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. Two tests, RunCMake.FindBoost and BundleUtilities, are known to fail.

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

Command Explanations

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: This switch removes 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.

--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.

Contents

Installed Programs: ccmake, cmake, cmake-gui (optional), cpack, and ctest
Installed Libraries: None
Installed Directories: /usr/share/cmake-3.24 and /usr/share/doc/cmake-3.24.1

Short Descriptions

ccmake

is a curses based interactive frontend to cmake

cmake

is the makefile generator

cmake-gui

(optional) is the Qt-based frontend to cmake

cpack

is the CMake packaging program

ctest

is a testing utility for cmake-generated build trees