Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Coursera

Minimal CMake

Packt via Coursera

Overview

Coursera Flash Sale
40% Off Coursera Plus for 3 Months!
Grab it
This course builds your foundational skills in CMake, enabling you to create reliable, maintainable, and portable build systems. Mastering these capabilities is essential for modern software development, where consistent builds and streamlined dependency management greatly enhance productivity. As you progress, you will learn how to structure projects, manage external libraries, automate configuration steps, and build scalable workflows. Each module translates directly into practical improvements you can apply to real development environments. What sets this course apart is its emphasis on combining clean, minimal CMake patterns with real-world project scenarios, from testing to packaging. You gain both conceptual clarity and hands-on experience. This course is ideal for developers working with C++ or cross-platform toolchains who want to simplify their build processes. No prior CMake experience is required, but basic programming familiarity is helpful.

Syllabus

  • Getting Started
    • In this section, we introduce CMake setup for Windows, macOS, and Linux, along with Git and Visual Studio Code, to establish a consistent development environment for application building and open source integration.
  • Hello, CMake!
    • In this section, we introduce basic CMake commands, analyze CMakeLists.txt structure, and configure generators for cross-platform builds, enhancing project management and efficiency.
  • Using FetchContent with External Dependencies
    • In this section, we explore integrating external libraries using FetchContent in CMake. Key concepts include describing dependencies, linking libraries, and managing options for efficient project development.
  • Creating Libraries for FetchContent
    • In this section, we cover creating CMake libraries compatible with FetchContent for cross-platform use.
  • Streamlining CMake Configuration
    • In this section, we explore CMake script automation, preset configuration, and workflow optimization to enhance project efficiency and simplify setup for new users.
  • Installing Dependencies and ExternalProject Add
    • In this section, we learn how to install libraries and configure CMake for better project organization.
  • Adding Install Support for Your Libraries
    • In this section, we explore adding install support to libraries using CMake, configuring components, and writing find modules to enhance reusability and dependency management.
  • Using Super Builds to Simplify Onboarding
    • In this section, we explore automating project setup using ExternalProject_Add and super builds.
  • Writing Tests for the Project
    • In this section, we explore implementing CTest for unit testing, adding end-to-end tests with CMake, and integrating CDash for test reporting to enhance software reliability and maintainability.
  • Packaging the Project for Sharing
    • In this section, we explore CPack for cross-platform packaging, configure CMakeLists.txt, and generate macOS, Windows, and Linux packages for efficient software distribution.
  • Supporting Tools and Next Steps
    • In this section, we explore CMake tools for Visual Studio Code, configure CMake with multiple IDEs, and apply best practices to optimize C/C++ builds for efficient development workflows.

Taught by

Packt - Course Instructors

Reviews

Start your review of Minimal CMake

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.