Github actions | RTD docs | Code Coverage |
---|---|---|
Head onto our Discord for extended support on building and usage.
TEC requires cmake 3.19, a c++17 compatible compiler, and a few libraries GLFW3, GLM, ASIO, Protobuf, GLAD, Lua, Bullet, Dear ImGui, sol3, Spdlog and OpenAL.
The libraries are automatically installed when using CMake and VCPKG manifest mode.
Potentially Download and install oalinst.zip OpenAL installer and install it.
Prior to 11.0.1, run (NOT TESTED): sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /
If bootstrap-vcpkg
fails see here for more help
Install the following. This is a pretty extensive list and may be more than needed
build-essential pkg-config tar curl zip unzip gdb libgl1-mesa-dev xorg-dev libglu1-mesa-dev libxinerama-dev libxcursor-dev
git clone https://github.com/Microsoft/vcpkg.git
VCPKG_ROOT
must be set a an environment variable, to wherever VCPKG was cloned to$(VCPKG_ROOT)/bootstrap-vcpkg.[bat|sh]
to setup vcpkg. Use the correct extension for your OS.
$(VCPKG_ROOT)/./vcpkg integrate install
cmake --preset=ninja-multi-vcpkg
cmake --build --preset=BUILD_PRESET
see presetsbuilds/CONFIG_NAME
e.g. builds/msvc/
$(VCPKG_ROOT)/scripts/buildsystems/vcpkg.cmake
gcc10 g++10
or clang-13
build-essential pkg-config tar curl zip unzip gdb
libgl1-mesa-dev xorg-dev libglu1-mesa-dev libxinerama-dev libxcursor-dev p7zip-full
ninja-multi-vcpkg
- Ninja multi-build config preset that references the vcpkg toolchain file relative to the VCPKG_ROOT
ninja-multi-vcpkg-debug
- Debug configuration build preset that uses the ninja-multi-vcpkg
configninja-multi-vcpkg-release-dbginfo
- Release with debug info configuration build preset that uses the ninja-multi-vcpkg
configninja-multi-vcpkg-release
- Release configuration build preset that uses the ninja-multi-vcpkg
configninja-multi-docs
- Doc build preset with the documentation custom targetstest-base
- Base test preset that all other tests derive from DO NOT USEninja-multi-vcpkg-debug
- Debug configuration test presetninja-multi-vcpkg-release
- Release configuration test presetDocumentation is done via Doxygen for C++ code and supplementary docs must be maintained for the Lua API in docs/
.
Engine documentation is generated with the with the ninja-multi-docs
build config doxygen
target, and is then converted to markdown via doxybook2
with the ninja-multi-docs
build config doxybook
target.
All documentation is converted to mkdocs format with the ninja-multi-docs
build config mkdocs
target, and then readthedocs hosts the mkdocs files.
Doxygen and mkdocs files are not committed, but can be generated locally for consumption/validation. Doxybook generated engine docs and all other docs in docs/
are committed.
To generate the python requirements for mkdocs to be used by readthedoc run pip-compile docs/requirements.in
in the project root.
The following targets can be built when the CMake build preset is set to ninja-multi-docs
doxygen/
docs/engine/
docs/
in places them mkdocs/
To preview the mkdocs docs locally visit run mkdocs serve
, in the project root.
The follow docker script will setup a docker container that will run clang format. docker build -t clang-format-lint github.com/DoozyX/clang-format-lint-action
Run the following on windows to format all source files in the src dir docker run -it --rm --workdir /src -v ${pwd}:/src clang-format-lint --clang-format-executable /clang-format/clang-format11 -r -i true .
Run the following on windows to format all source files in the src dir docker run -it --rm --workdir /src -v $(pwd):/src clang-format-lint --clang-format-executable /clang-format/clang-format11 -r -i true .