cmake-action/README.md
2023-06-29 14:43:22 +07:00

3.9 KiB

CMake Action

Latest Version License Test Status

Configure, build, and test your CMake project using GitHub Actions. This action simplifies the workflow for your CMake project. It configures the build environment using the cmake command, builds the project using the cmake --build command, and optionally tests the project using the ctest command.

Features

  • Configures and builds a project using the cmake command.
  • Option to test a project using the ctest command.
  • Auto-detects and installs required dependencies.
  • Supports specifying multiple CMake options directly from the Action inputs.

Usage

For more information, refer to action.yml and the GitHub Actions guide.

Inputs

Name Value Type Description
source-dir Path Source directory of the CMake project. Defaults to the current directory.
build-dir Path Build directory of the CMake project. Defaults to the build directory inside the source directory.
targets Multiple strings List of build targets.
generator String Build system generator for 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 CMake configuration.
run-test true or false If enabled, runs testing using CTest. Defaults to false.
test-args Multiple strings Additional arguments passed during the CTest run.

Note: Multiple strings mean that the input can 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/checkout@v3.3.0

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

Note: You can replace @latest with any version you prefer. See this.

Specify the Source and Build Directories

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

Specify the Build Targets

- name: Configure and build this project
  uses: threeal/cmake-action@latest
  with:
    targets: hello_mars hello_sun

Run Unit Tests After Build

- name: Configure, build, and test this project
  uses: threeal/cmake-action@latest
  with:
    args: -DBUILD_TESTING=ON
    run-test: true

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