A toy project showcasing the following features:
cmakebuild for C++ project source files;googletestas agit submodule;github-actionspipeline for running build and tests.
In short, you see a C++ project that uses google test as a git submodule and integrates a Github CI pipeline (which in Github-terms is called Github actions).
Initially the pipeline run on travis CI. In October 2022 I updated the repo to use Github Actions instead.
I was inspired by the projects from the acknowledgement section, and at the sime time want improve on that: the goal is to use git submodules in order to avoid copying google test in the current repo.
CMakeLists.txtcmake project filesinclude/header files (*.h)src/source files (*.cpp)test/test files (*.cpp)
Use git clone --recursive ... to download the project and its git submodules.
Otherwise from the project root repository one needs to download the submodules:
git submodule update --init.
- Creating the executables follows standard
cmakeprocedure:
cmake -B build
- Compile the code (it will also compile the gtest for the first time):
cmake --build build
- Run executable:
./build/project1
- Cmake supports
add_testfunction, then the tests can be launchmake testorctestcommands.
./build/runUnitTests
alternatively, in the build directory, run:
ctest
The acknowledgments go to:
-
Gunnar and this repository, for providing a minimal working example of gtest, travis-ci, and cmake.
-
David Y. Zhang and this repo. For setting up a repo with gtest and cmake.
Dr. Konstantin Selyunin, for suggestions/questions/comments please contact: selyunin [dot] k [dot] v [at] gmail [dot] com