- Table of Contents
- π About
- β¨ Features
- π¦ Structure
- π Libraries
- π§ Build
- π Releases
- π License
This is a simple template for C / C++ projects using SFML, OpenGL and Dear ImGUI under to hood to do 3D and build GUI.
-
π Reproducible: Built with Nix, this configuration can be effortlessly reproduced on other machines, ensuring a consistent setup.
-
π Documented: Most of the parts of my configuration files are commented and documented with links and explanations if necessary
-
Directories
-
Files
flake.nix
- Environment configuration (based on dev-templates).envrc
- Used by direnv to load Flakesflake.lock
- Used by Flakes to version packagesCMakeLists.txt
- CMake configuration to build the project
- Dear ImGui ~ Bloat-free Graphical User interface for C++ with minimal dependencies
- SFML ~ Simple and Fast Multimedia Library
- GLAD ~ OpenGl loader
- stb ~ Stb single-file public domain libraries for C/C++
- glm ~ OpenGL Mathematics
Note
Looking at the source code of SFML, it appears that stb and GLAD are already included (but I keep them here anyway).
Note
I'm using NixOS as my day-to-day OS, and I have found that Nix with Flakes was the simplest and fastest way for me to setup C/C++ project with external libraries.
To build this project, first make sure you have Nix installed as a package manager and direnv as a shell extension.
Then, configure it to enable Flakes according to your setup.
Once you're ready, you can start by cloning this repo
git clone https://github.com/leoraclet/sfml-imgui-template
cd sfml-imgui-template
Tip
Now, direnv should load the environment when inside the project directory, if not, try
direnv allow
The flake.nix
file is where the project's environment is defined, and you can see in it that
CMake is part of the packages. So, if everything went well, you should be able to
build the project like so
cmake -B build -S .
cd build
cmake --build .
Then, you can run the produced executable in build
with
./example
Warning
I have NOT tested the building process on Windows, so you're basically on your own for this.
The best solution to build this project on Windows is to use WSL and follow the Nix way in it.
You can start by installing nix here.
To run the program without editing the source code or building it yourself, go see the
Releases.
Warning
This is template repo, so threre isn't releases for this one.
This project is licensed under the MIT License - see the LICENSE file for details.