mirror of
https://github.com/hyprwm/aquamarine.git
synced 2024-11-17 00:15:59 +01:00
Read-only mirror of https://github.com/hyprwm/aquamarine
9b33a38f86
From cmake documentation, Linux-specific chapter: Projects may use the ``OpenGL::GL`` target (or ``OPENGL_LIBRARIES`` variable) to use legacy GL interfaces. These will use the legacy GL library located by ``OPENGL_gl_LIBRARY``, if available. If ``OPENGL_gl_LIBRARY`` is empty or not found and GLVND is available, the ``OpenGL::GL`` target will use GLVND ``OpenGL::OpenGL`` and ``OpenGL::GLX`` (and the ``OPENGL_LIBRARIES`` variable will use the corresponding libraries). Thus, for non-EGL-based Linux targets, the ``OpenGL::GL`` target is most portable. which means linking with OpenGL::GL makes cmake find legacy libGL.so or GLX libraries, and as for now, the former contains GLX symbols and cannot be built without X libraries. Since we are working with EGL, it wouldn't provide extra portability, either. This patch switches to link aquamarine with modern OpenGL::OpenGL, which contains core OpenGL API only, makes it possible to build on a wayland-only system. Tested on eweOS, which is a distro without X libraries. Link: https://os.ewe.moe/ Signed-off-by: Yao Zi <ziyao@disroot.org> |
||
---|---|---|
.github/workflows | ||
data | ||
docs | ||
include/aquamarine | ||
nix | ||
protocols | ||
src | ||
tests | ||
.clang-format | ||
.gitignore | ||
aquamarine.pc.in | ||
CMakeLists.txt | ||
flake.lock | ||
flake.nix | ||
LICENSE | ||
README.md | ||
VERSION |
Aquamarine
Aquamarine is a very light linux rendering backend library. It provides basic abstractions for an application to render on a Wayland session (in a window) or a native DRM session.
It is agnostic of the rendering API (Vulkan/OpenGL) and designed to be lightweight, performant, and minimal.
Aquamarine provides no bindings for other languages. It is C++-only.
Stability
Aquamarine depends on the ABI stability of the stdlib implementation of your compiler. Sover bumps will be done only for aquamarine ABI breaks, not stdlib.
Building
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr -S . -B ./build
cmake --build ./build --config Release --target all -j`nproc 2>/dev/null || getconf _NPROCESSORS_CONF`
TODOs
- Wayland backend
- DRM backend (DRM / KMS / libinput)
- Virtual backend (aka. Headless)
- Hardware plane support