This is a repository that aims to implement an expandable set of generic data models that may be used in a variety of c++
applications.
The intention is that these may be functional across multiple platforms including Windows, Linux and Embedded Systems
(specifically the ESP32). With this in mind,
the repository aims to be as light as possible in terms of using other libraries that may not be cross compatible.
Each data model is defined in the include
folder, implemented in the base level directory and is tested within the tests
directory.
Data models types are defined with some utility functions in in the ChunkTypesUtility.h
header. Tests are run using DocTest testing framework.
One should first pull this repository and update the submodules as it does required the DocTest header to build. The Doctest library has been branched into this organisation. Note that this is intended to be used a library. This is how to add additional Chunks
- One should have Visual Studio 2022 downloaded
- Ensure this repository is pulled
- Open the solution file denoted by the
.sln
- Run the build command
- One should get an executable test file as well as a
.lib
file
- For the pre-commit hook to pass you need to have
msbuild.exe
on your path (an example path would beC:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\
). - When committing it will run
msbuild
to build the project and then run the test executable. - Run the
install-hooks.bat
script once to place the hooks in the right places and then build and testing will happen on commits.
To manually do this you can just run build on the test project and then navigate to x64\Debug_tests\
and run ChunkTypesTest.exe
- Ensure one has VSCode downloaded
- Download ESP-IDF (V5.0)
- Once downloaded, open the ESP-IDF terminal and run the
code
command, VSCode should open, you may make adjustments as you please - Navigate to the folder contain this code and run the
idf.py build
command - This should build the code for the ESP32
There is currently no support for linux but there is an intention to add it when required.