Integration Methods
Zep provides three primary integration approaches:Single Header
Include
zep.h and start coding immediatelyCMake Library
Install Zep as a library and link with CMake
Direct Source
Copy source files directly into your project
Rendering Backends
Zep provides rendering backends for popular UI frameworks:ImGui Integration
Perfect for game engines and real-time applications
Qt Integration
Native desktop application integration
When to Use Each Method
Single Header Include
Best for:- Quick prototypes and experimentation
- Small projects with simple build systems
- When you want minimal configuration
- Projects that don’t use CMake
- Zero build configuration
- Just
#include "zep/zep.h"and defineZEP_SINGLE_HEADER_BUILD - No package management needed
- Fastest way to get started
- Slower compile times (single translation unit)
- Less control over which components to include
- Not ideal for large projects
CMake Library
Best for:- Production applications
- Projects already using CMake
- When you need proper library versioning
- Multi-project setups sharing Zep
- Faster incremental builds
- Proper library versioning and installation
- Better integration with package managers
- Separation of compilation units
- Build options for features (Qt, ImGui, tests, demos)
- Requires CMake knowledge
- More setup steps (configure, build, install)
- Need to manage library dependencies
Direct Source Copy
Best for:- Full control over the build process
- Custom or minimal build systems
- Embedded systems with specific toolchains
- When you need to modify Zep source code
- Complete control over compilation
- No external dependencies
- Easy to patch or customize
- Works with any build system
- Manual dependency management
- Need to track upstream changes yourself
- More files to manage in your repository
System Requirements
Core Library
The Zep core library has minimal requirements:- C++ Standard: C++17 or later
- Compiler:
- Visual Studio 2017 or later (Windows)
- GCC 6 or later (Linux)
- Clang (macOS/Linux)
- Dependencies: None (core library is dependency-free)
Rendering Backends
ImGui Backend
- ImGui: Version 1.80+ recommended
- Additional: SDL2 or other windowing library (for the demo)
- Graphics: OpenGL 3.0+ or other ImGui-supported backends
Qt Backend
- Qt Version: Qt 5.10+ or Qt 6
- Modules: QtCore, QtGui, QtWidgets
- Platforms: Windows, macOS, Linux
Build Options
When building Zep with CMake, you can control which components are built:CMake Options
The demos require additional dependencies (SDL2, OpenGL, etc.), but the core Zep library does not.
Feature Comparison
| Feature | Single Header | CMake Library | Direct Source |
|---|---|---|---|
| Setup Time | Instant | Medium | Low |
| Build Time (Initial) | Slow | Fast | Medium |
| Build Time (Incremental) | Slow | Fast | Medium |
| Customization | Limited | Medium | Full |
| Dependency Management | Auto | CMake | Manual |
| Multiple Projects | Copy per project | Shared library | Copy per project |
| Suitable for Production | Small projects | Yes | Yes |
Next Steps
Choose your integration path:Choose Integration Method
Select single-header for quick starts, CMake for production, or direct source for full control.
Example Projects
For complete working examples, see:- zep_imgui - Minimal ImGui integration example
- demos/demo_imgui/ - Full-featured ImGui demo in the Zep repository
- demos/demo_qt/ - Qt integration demo
