cmake-action/README.md
2023-01-14 17:25:15 +07:00

3.0 KiB

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

Using Different Directories

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

Build Custom Targets

- name: Configure and build this project
  uses: threeal/cmake-action@latest
  with:
    targets: hello_world_test fibonacci_test
    args: |
      -DBUILD_TESTING=ON
      -DCMAKE_CXX_FLAGS='-Werror'      

Build Using Ninja and Clang

- 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