mirror of
				https://github.com/threeal/cmake-action.git
				synced 2025-11-04 05:43:42 +00:00 
			
		
		
		
	Configure and build CMake projects on GitHub Actions
			
		
		
		
		
		
		
		
		
		
		
		
			
				Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 6.16.0 to 6.17.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v6.17.0/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>  | 
			||
|---|---|---|
| .github | ||
| dist | ||
| src | ||
| test | ||
| .eslintrc.json | ||
| .gitattributes | ||
| .gitignore | ||
| .yarnrc.yml | ||
| action.yaml | ||
| jest.config.json | ||
| LICENSE | ||
| package.json | ||
| README.md | ||
| tsconfig.json | ||
| yarn.lock | ||
CMake Action
Configure, build, and test your CMake project using GitHub Actions. This action simplifies the workflow for configuring the build environment of a CMake project. It can also be optionally specified to build a CMake project using the cmake --build command and test it using the ctest command.
Features
- Configures a CMake project using the 
cmakecommand. - Optionally builds a CMake project using the 
cmake --buildcommand. - Optionally tests a CMake project using the 
ctestcommand. - 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 | The source directory of the CMake project. It defaults to the current directory. | 
build-dir | 
Path | The build directory of the CMake project. It defaults to the build directory inside the source directory. | 
generator | 
String | The build system generator for the CMake project. It appends the CMake configuration arguments with -G [val]. | 
c-compiler | 
String | The preferred executable for compiling C language files. It appends the CMake configuration arguments with -D CMAKE_C_COMPILER=[val]. | 
cxx-compiler | 
String | The preferred executable for compiling C++ language files. It appends the CMake configuration arguments with -D CMAKE_CXX_COMPILER=[val]. | 
c-flags | 
Multiple strings | Additional flags to pass when compiling C language files. It appends the CMake configuration arguments with -D CMAKE_C_FLAGS=[vals]. | 
cxx-flags | 
Multiple strings | Additional flags to pass when compiling C++ language files. It appends the CMake configuration arguments with -D CMAKE_CXX_FLAGS=[vals]. | 
options | 
Multiple strings | Additional options to pass during the CMake configuration. It appends the CMake configuration arguments with each of -D [val]. | 
args | 
Multiple strings | Additional arguments to pass during the CMake configuration. | 
run-build | 
true or false | 
If enabled, it builds the project using CMake. It defaults to false. | 
build-args | 
Multiple strings | Additional arguments to pass during the CMake build. | 
run-test | 
true or false | 
If enabled, it runs testing using CTest. It defaults to false. | 
test-args | 
Multiple strings | Additional arguments to pass 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.
Outputs
| Name | Value Type | Description | 
|---|---|---|
build-dir | 
Path | The build directory of the CMake project. | 
Examples
name: Build
on:
  push:
jobs:
  build-project:
    name: Build Project
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4.1.1
      - name: Configure Project
        uses: threeal/cmake-action@v1.3.0
      - name: Build Project
        runs: cmake --build build
      - name: Test Project
        runs: ctest --test-dir build
Note
: You can replace
v1.3.0with any version you prefer. See this.
Configure, Build, and Test in the Same Step
- name: Configure, Build, and Test Project
  uses: threeal/cmake-action@v1.3.0
  with:
    run-build: true
    run-test: true
Specify the Source and Build Directories
- name: Configure Project
  uses: threeal/cmake-action@v1.3.0
  with:
    source-dir: submodules
    build-dir: submodules/out
Using Ninja as the Generator and Clang as the Compiler
- name: Configure Project
  uses: threeal/cmake-action@v1.3.0
  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