Configure and build CMake projects on GitHub Actions.
This action wraps the cmake command for configuring and building CMake projects. It provides a more streamlined syntax for specifying build options compared to calling the cmake command directly.
| Name | Value Type | Description |
|---|---|---|
source-dir |
Path | The source directory of the CMake project. Defaults to the current working directory. |
build-dir |
Path | The build directory of the CMake project. Defaults to the build directory inside the source directory. |
generator |
String | The build system generator for the CMake project. Equivalent to setting the -G option. |
c-compiler |
String | The preferred executable for compiling C language files. Equivalent to defining the CMAKE_C_COMPILER variable. |
cxx-compiler |
String | The preferred executable for compiling C++ language files. Equivalent to defining the CMAKE_CXX_COMPILER variable. |
c-flags |
Multiple strings | Additional flags to pass when compiling C language files. Equivalent to defining the CMAKE_C_FLAGS variable. |
cxx-flags |
Multiple strings | Additional flags to pass when compiling C++ language files. Equivalent to defining the CMAKE_CXX_FLAGS variable. |
options |
Multiple strings | Additional options to pass during the CMake configuration. Equivalent to setting the -D option. |
args |
Multiple strings | Additional arguments to pass during the CMake configuration. |
run-build |
true or false |
If enabled, builds the project using CMake. Defaults to true. |
build-args |
Multiple strings | Additional arguments to pass during the CMake build. |
| Name | Value Type | Description |
|---|---|---|
build-dir |
Path | The build directory of the CMake project. |
This example demonstrates how to use this action to configure and build a CMake project in a GitHub Actions workflow:
name: Build
on:
push:
jobs:
build-project:
name: Build Project
runs-on: ubuntu-24.04
steps:
- name: Checkout Project
uses: actions/checkout@v4.2.2
- name: Build Project
uses: threeal/cmake-action@v2.1.0By default, this action uses the current working directory as the source directory and the build directory inside the source directory as the build directory. To use different directories, set the source-dir and/or build-dir inputs:
- name: Build Project
uses: threeal/cmake-action@v2.1.0
with:
source-dir: source
build-dir: outputThe following example demonstrates how to use this action to configure and build the project using Ninja as the build system generator and Clang as the compiler:
- name: Build Project
uses: threeal/cmake-action@v2.1.0
with:
generator: Ninja
cxx-compiler: clang++Use the options input to specify additional options for configuring a project:
- name: Build Project
uses: threeal/cmake-action@v2.1.0
with:
options: |
BUILD_TESTS=ON
BUILD_EXAMPLES=ONThe above example is equivalent to calling the cmake command with the -DBUILD_TESTS=ON and -DBUILD_EXAMPLES=ON arguments.
By default, this action builds the project after configuration. To skip the build process, set the run-build option to false:
- name: Configure Project
uses: threeal/cmake-action@v2.1.0
with:
run-build: falseThis project is licensed under the terms of the MIT License.
Copyright © 2023-2025 Alfi Maulana