CMake-3.20.2

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

Package Information

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

  • Download MD5 sum: cd0e7735f1e51f30ee3b0844390a464a

  • Download size: 9.0 MB

  • Estimated disk space required: 376 MB (add 901 MB for tests)

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

CMake Dependencies

Required

libuv-1.41.0

Recommended

Optional

GCC-10.2.0 (for gfortran), git-2.31.1 (for use during tests), Mercurial-5.8 (for use during tests), Qt-5.15.2 (for the Qt-based GUI), Subversion-1.14.1 (for testing), rhash, and Sphinx (for building documents)

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

Installation of CMake

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.20.2 &&
make

To test the results, issue: LC_ALL=en_US.UTF-8 bin/ctest -j<N> -O cmake-3.20.2-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.

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.20 and /usr/share/doc/cmake-3.20.2

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

Last updated on Sat May 1 11:03:22 2021 +