Posted on
Software

cmake: Build system

Author
  • User
    Linux Bash
    Posts by this author
    Posts by this author

Mastering CMake on Linux: Installation and Basics for Building Projects

CMake is an open-source, cross-platform family of tools designed to build, test, and package software. It controls the software compilation process using simple platform and compiler-independent configuration files. CMake generates native makefiles and workspaces that can be used in the compiler environment of your choice. For Linux users, working with CMake can streamline the process of managing both small and large scale software builds. In this article, we'll cover how to install CMake using different Linux package managers like apt for Debian-based distributions, dnf for Fedora, and zypper for openSUSE. We'll also provide a brief overview of how to use CMake to set up a basic build system.

Installing CMake on Linux

Installing CMake on your Linux system is straightforward. Below are the steps for different package managers:

Debian and Ubuntu (Using apt)

Debian-based distributions can install CMake from the default repositories using the apt package manager. Open your terminal and type the following commands:

  1. Update your package list to ensure you get the latest version of the package: bash sudo apt update
  2. Install CMake: bash sudo apt install cmake

Fedora (Using dnf)

For Fedora users, dnf is the default package manager. To install CMake, use the following commands:

  1. First, ensure your packages are up to date: bash sudo dnf check-update
  2. Install CMake: bash sudo dnf install cmake

openSUSE (Using zypper)

In openSUSE, zypper is the package management tool. To install CMake, follow these steps:

  1. Refresh software repositories to make sure you have access to the latest versions: bash sudo zypper refresh
  2. Install CMake: bash sudo zypper install cmake

Verifying the Installation

After installing, verify that CMake is correctly installed by checking its version. This is also a good way to confirm that your system recognizes the cmake command:

cmake --version

If the system returns the version number of CMake, it means that it's installed successfully.

A Brief Introduction to Using CMake

Now that CMake is installed, let's create a simple project to demonstrate how to configure a build system. Consider you have a basic C++ project structured as follows:

/myproject/
|-- CMakeLists.txt
|-- src/
    |-- main.cpp

Step 1: Write the CMake Configuration File

Create a file named CMakeLists.txt in your project root. This file contains directives and instructions describing how to build your project. Here's a very basic CMake setup for our project:

cmake_minimum_required(VERSION 3.10)  # Specify the minimum version for CMake

project(MyProject VERSION 1.0)  # Define the project name and the version

add_executable(MyExecutable src/main.cpp)  # Create an executable with the source file

Step 2: Generate Build System and Build

Now that your CMake configuration file is ready, run the following commands in your project root to generate the build system and compile the project:

cd /path/to/myproject
mkdir build  # Create a build directory
cd build
cmake ..  # Generate the build system
make      # Build the project

After running make, if everything is configured correctly, you will find an executable named MyExecutable in your build directory.

Conclusion

CMake is a powerful tool that helps developers manage the build process effectively across different platforms. By following the installation and basic usage steps outlined above, Linux users can harness the power of CMake to automate and simplify the compilation and linking of their software projects.

Whether you're managing simple or complex builds, learning CMake can significantly optimise your development workflow, making it an essential skill for modern software developers.