mirror of
https://github.com/threeal/cmake-action.git
synced 2025-04-21 11:01:20 +00:00
3.9 KiB
3.9 KiB
CMake Action
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. |
run-test |
true or false |
If enabled, runs testing using CTest. Defaults to false . |
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. |
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