Feature: Repository Infrastructure Scaffolding #1

Merged
homeburger merged 14 commits from feature/repo-setup into main 2026-05-08 14:41:39 -05:00
2 changed files with 48 additions and 4 deletions
Showing only changes of commit b7e509ce96 - Show all commits

View File

@@ -13,7 +13,7 @@ include(FetchContent)
FetchContent_Declare(
googletest
GIT_REPOSITORY https://github.com/google/googletest.git
GIT_TAG v1.17.x # Use a specific version tag or commit hash
GIT_TAG v1.17.x
)
FetchContent_MakeAvailable(googletest)
@@ -39,9 +39,17 @@ target_include_directories(maiden_test PRIVATE
"${CMAKE_CURRENT_SOURCE_DIR}/src"
)
target_compile_options(maiden_test PRIVATE --coverage)
target_link_options(maiden_test PRIVATE --coverage)
# TODO: add option for disabling tests (like if target == DEBUG then tests on, otherwise tests off)
target_link_libraries(maiden_test PRIVATE
GTest::gmock
GTest::gmock_main
)
include(CTest)
enable_testing() # ctest is whatever
include(GoogleTest)
gtest_discover_tests(maiden_test)

View File

@@ -8,10 +8,46 @@ The maiden project is a GPU accelerated 3D rendering engine built with C++ based
## Getting Started
### git instructions here
### build instructions here
### Clone Repository
```bash
$ git clone https://git.vxbard.net/homeburger/maiden.git
# If there's any necessary submodules then:
$ git clone --recurse-submodules https://git.vxbard.net/homeburger/maiden.git
# If you have already cloned the repository and you need its submodules:
$ git submodule update --init --recursive
```
### Build
This app uses CMake and C++20, so a compatible compiler (gcc8, clang9, msvc16) are necessary.
Most library prerequisites are handled within CMake. Any others that need to be manually installed will be described below as the project grows.
To build the project (using default build directory "build"):
```bash
# configure
$ cmake -S . -B build # + any extra options
# build
$ cmake --build build -j
# execute
$ cd build
$ ./maiden
```
### Testing
This app uses GoogleTest for building unit tests. The below instructions use ctest and gcovr for test execution and code coverage:
```bash
# execute unit tests
$ ctest -T Test # + filter options
# analyze code coverage
$ cd build
$ gcovr -r .. --filter "../src"
```
### app troubleshooting here
### testing instructions here
## Development Roadmap
### lots of todo here