Note
About this project
This is my personal sandbox for testing modern C++ features, exploring project architectures, and experimenting with graphics programming.
🎯 Abstract Goal: To build a functional 3D game engine from scratch using C++.
This project uses Git Submodules. It is crucial to include them during the clone process.
Use the --recursive flag to ensure all dependencies are downloaded:
git clone --recursive https://github.com/GrinlexGH/skylabs.gitIf the folder is already on your disk but submodule folders are empty, run this command in the project root:
git submodule update --init --recursiveEnsure you have the following tools installed before compiling:
| Tool | Requirement |
|---|---|
| CMake | Latest version |
| C++ Compiler | Latest MSVC / GCC / Clang |
| Conan | Latest version |
| Android SDK | Latest SDK (optional) |
This project uses a custom Conan recipe index.
Add the local remote:
conan remote add skylabs ./conan/conan-recipes -t local-recipes-index -fTip
The skylabs remote is required to resolve internal packages used by the project.
Caution
This will overwrite your global Conan configuration.
conan config install ./conan/conan-config/configWarning
This project is using C++ 20 modules, so you need to set CMAKE_EXPERIMENTAL_CXX_IMPORT_STD to uuid which your version of cmake uses. You can see it in cmake sources.
# Install dependencies
# Use msvc:
conan install . -pr msvc-18 -r skylabs -r conancenter -s build_type=Debug -s compiler.runtime_type=Debug --build=missing
# Use LLVM/clang from github:
conan install . -pr clang-cl-llvm -r skylabs -r conancenter -s build_type=Debug -s compiler.runtime_type=Debug --build=missing
# Use clang from visual studio:
conan install . -pr clang-cl-18 -r skylabs -r conancenter -s build_type=Debug -s compiler.runtime_type=Debug --build=missing
# Use mingw:
conan install . -pr clang-clang64 -r skylabs -r conancenter -s build_type=Debug --build=missing
conan install . -pr gcc-ucrt64 -r skylabs -r conancenter -s build_type=Debug --build=missing
# Linux:
conan install . -pr clang-linux -r skylabs -r conancenter -s build_type=Debug --build=missing
conan install . -pr gcc-linux -r skylabs -r conancenter -s build_type=Debug --build=missing
# Configure project
cmake --preset conan-default
# Build
cmake --build build