Skip to content
You're viewing an older version of this GitHub Action. Do you want to see the latest version instead?
terminal

GitHub Action

CMake Action

v1.0.0

CMake Action

terminal

CMake Action

Configure and build CMake projects

Installation

Copy and paste the following snippet into your .yml file.

              

- name: CMake Action

uses: threeal/[email protected]

Learn more about this action in threeal/cmake-action

Choose a version

CMake Action

latest version license test status

Configure and build a CMake project on GitHub Actions.

Usage

For more information, see action.yml and GitHub Actions guide.

Inputs

Name Value Type Description
source-dir Path Source directory of the CMake project. Defaults to current directory.
build-dir Path Build directory of the CMake project. Defaults to build directory in current directory.
targets Multiple strings List of build targets.
generator String Build system generator of the CMake project.
c-compiler String Preferred executable for compiling C language files.
cxx-compiler String Preferred executable for compiling C++ language files.
c-flags Multiple strings Additional flags passed when compiling C language files.
cxx-flags Multiple strings Additional flags passed when compiling C++ language files.
args Multiple strings Additional arguments passed during the CMake configuration.

Note: Multiple strings mean that the input could be specified with more than one value. Separate each value with a space or a new line.

Note: All inputs are optional.

Examples

name: build
on:
  push:
jobs:
  build-project:
    runs-on: ubuntu-latest
    steps:
      - name: Check out this repository
        uses: actions/[email protected]

      - name: Configure and build this project
        uses: threeal/cmake-action@latest

Note: You can replace @latest with any version you like.

Specify the Source and the Build Directories

- name: Configure and build this project
  uses: threeal/cmake-action@latest
  with:
    source-dir: submodules
    build-dir: submodules/build

Specify the Build Targets and Additional Options

- name: Configure and build this project
  uses: threeal/cmake-action@latest
  with:
    targets: hello_world_test fibonacci_test
    c-flags: -Werror
    cxx-flags: -Werror
    args: |
      -DCMAKE_BUILD_TYPE=Debug
      -DBUILD_TESTING=ON

Using Ninja as the Generator and Clang as the Compiler

- name: Configure and build this project
  uses: threeal/cmake-action@latest
  with:
    generator: Ninja
    c-compiler: clang
    cxx-compiler: clang++

License

This project is licensed under the terms of the MIT License.

Copyright © 2023 Alfi Maulana