A project for learning how to setup:
- Semantic Versioning
- Cross-platform compatiblity
- Conan - using this to create the package recipe and what are its required packages.
- CMake - using this to setup the project settings.
- clang - using this to build the project.
- CI/CD pipeline
- Travis CI - using this to process the automated testings.
- ECS design
- Differred shading
For this project, Semantic Versioning is used.
Given a version number
MAJOR.MINOR.PATCH, increment the:
MAJORversion when you make incompatible API changes (e.g. removing APIs).MINORversion when you add functionality in a backwards compatible manner.PATCHversion when you make backwards compatible bug fixes.
Dev Notes: Using the [[deprecated]] attribute is still considered a minor change as long as you don't remove the interface.
- clang (use version 12 onwards)
- Feel free to use any package manager (homebrew/chocolatey/apt-get) as long as you export you export the environment variables
CCwith your path to theclangexecutable andCXXwith your path to theclang++executable so that CMake can locate the executables.
- Feel free to use any package manager (homebrew/chocolatey/apt-get) as long as you export you export the environment variables
- CMake (use version 3.2 onwards)
- Ninja (use version 1.10.2 onwards)
- Python (use version 3.2 onwards)
- (optional) Visual Studio Code
- Cross-platform text editor that this project is configured for development on.
- NOTE: DO NOT commit changes related to personal user configurations.
- (optional) Visual Studio (currently only tested on version 16 (2019))
- Only required for Windows build because direct lldb debugging is currently not supported on Visual Studio Code (issue).
Run the build command "Install Requirements" to install the list of packages that can be installed with Python, and the Python modules that the Python scripts in this project will use. Naturally, this will require you to have installed Python.