Add Alvin library: input, capture, windows and vision
A cross-platform C++23 library with a platform-neutral public API and runtime-selected backends: - Input: Wayland virtual pointer/keyboard (Hyprland, wlroots), libei via the RemoteDesktop portal (GNOME, KDE), uinput, and Win32 SendInput - Capture: ScreenCast portal + PipeWire, and Win32 GDI - Windows: Hyprland IPC and Win32 enumeration - Monitors via wl_output/xdg-output and EnumDisplayMonitors - Optional OpenCV template matching (alvin::vision) Also adds the `alvin` CLI, Catch2 unit tests, install rules with find_package(Alvin) support, API docs (docs/API.md and the Obsidian vault), and README instructions for both ways of consuming the library. Windows backends are written but not yet compiled. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
76ff506fd0
commit
ca7e62ac8d
59 files changed
+6515
-1
No files matched your search
@@ -0,0 +1,18 @@
|
||||
@PACKAGE_INIT@
|
||||
|
||||
include(CMakeFindDependencyMacro)
|
||||
|
||||
# A static libalvin doesn't record its own dependencies, so find them again.
|
||||
if(@ALVIN_NEEDS_PKGCONFIG@)
|
||||
find_dependency(PkgConfig)
|
||||
@ALVIN_CONFIG_DEPENDENCIES@endif()
|
||||
|
||||
set(Alvin_vision_FOUND @ALVIN_HAS_VISION@)
|
||||
if(Alvin_vision_FOUND)
|
||||
find_dependency(OpenCV COMPONENTS core imgproc imgcodecs)
|
||||
endif()
|
||||
|
||||
include("${CMAKE_CURRENT_LIST_DIR}/AlvinTargets.cmake")
|
||||
|
||||
# find_package(Alvin REQUIRED COMPONENTS vision) fails if Alvin was built without OpenCV.
|
||||
check_required_components(Alvin)
|
||||
Reference in new issue
Block a user