#### Beyond Linux® From Scratch (systemd Edition) - Version r13.0-491

### Chapter 13. Programming

- Prev

  Clisp-2.49.95

- Next

  Doxygen-1.17.0

- Up
- Home

# CMake-4.3.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.

### Note

Development versions of BLFS may not build or run some packages properly if LFS or dependencies have been updated since the most recent stable versions of the books.

### Package Information

- Download (HTTP): https://cmake.org/files/v4.3/cmake-4.3.2.tar.gz

- Download MD5 sum: fdacfba9fc146a016e96cabefc3f1942

- Download size: 13 MB

- Estimated disk space required: 2.2 GB (with tests)

- Estimated build time: 2.2 SBU (add 4.3 SBU for tests, both using parallelism=4)

### CMake Dependencies

#### Recommended

cURL-8.19.0, libarchive-3.8.7, libuv-1.52.1, and nghttp2-1.69.0

#### Optional

GCC-15.2.0 (for gfortran), git-2.53.0 (for use during tests), mercurial-7.2.1 (for use during tests), OpenJDK-21.0.10 (for use during tests), Qt-6.11.0 (for the Qt-based GUI), sphinx-9.1.0 (for building documents), Subversion-1.14.5 (for testing), cppdap, jsoncpp, and rhash

### Note

An Internet connection is needed for some tests of this package. The system certificate store may need to be set up with make-ca-1.16.1 before testing this package.

## 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-cppdap   \
                --no-system-librhash \
                --docdir=/share/doc/cmake-4.3.2 &&
    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.

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 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 Using Multiple Processors.

## Contents

Installed Programs: ccmake, cmake, cmake-gui (optional), cpack, and ctest
Installed Libraries: None
Installed Directories: /usr/share/cmake-4.3 and /usr/share/doc/cmake-4.3.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

- Prev

  Clisp-2.49.95

- Next

  Doxygen-1.17.0

- Up
- Home