Build
Make sure the prerequisites are in place first.
Configure and build
git clone <repo-url>
cd FrameLift
# Activate the formatting hook (one-time per clone)
git config core.hooksPath .github/hooks
# Configure and build
cmake -B cmake-build-debug -DCMAKE_BUILD_TYPE=Debug
cmake --build cmake-build-debug --config Debug
This builds the host executable, every built-in module compiled into it, and all bundled plugin DLLs/SOs.
Output layout
cmake-build-debug/
├── framelift(.exe) # the host executable
└── plugins/ # plugin DLLs/SOs (.dll on Windows, .so on Linux)
├── framelift.playlist.so
├── framelift.history.so
└── …
On Windows the required shared libraries (Qt 6, FFmpeg, libass) are copied next to the executable; on Linux they are resolved from the system. The Vulkan and OpenGL loaders are resolved at runtime — only a GPU driver is needed to run.
Versioning
The build version is injected via -DFRAMELIFT_VERSION (defaults to 0.0.0
locally). An optional -DFRAMELIFT_VERSION_DISPLAY overrides the human-readable
string without changing the numeric version.
Tests
Unit tests cover platform-independent logic (no FFmpeg needed) and can be built standalone:
cmake -S tests -B build-tests -G Ninja -DCMAKE_BUILD_TYPE=Debug
cmake --build build-tests
ctest --test-dir build-tests --output-on-failure
Tests are also configured in-tree (FRAMELIFT_BUILD_TESTS=ON by default) so the
targets appear in IDEs.
Next
See Lean Builds to compile out built-in modules you don't need.