Configure and build CMake projects on GitHub Actions
Go to file
2023-01-14 19:38:51 +07:00
.github add a job in test.yml workflow to test compiler flags inputs 2023-01-14 18:04:03 +07:00
test guard CMake warning if CHECK_SURPASS_WARNING is set 2023-01-14 18:07:51 +07:00
.gitignore add a test project for testing this action 2023-01-06 15:23:09 +07:00
action.yml replace CXX term with C++ in description 2023-01-14 19:25:38 +07:00
LICENSE initialize project with readme and license 2023-01-06 12:39:38 +07:00
README.md audit example usages title and contents 2023-01-14 19:38:51 +07:00

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

Note: All inputs are optional.

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. Could be specified more than one. Separate each target with a space or a new line.
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. Could be specified more than one. Separate each flag with a space or a new line.
cxx-flags Multiple strings Additional flags passed when compiling C++ language files. Could be specified more than one. Separate each flag with a space or a new line.
args Multiple strings Additional arguments passed during the CMake configuration. Could be specified more than one. Separate each target with a space or a new line.

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 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