Files
pwweb/CMakeLists.txt
joren f8c57fbdd3 Initial commit: pwweb - PipeWire WebUI
C++ backend with SSE streaming (reuses qpwgraph PipeWire callbacks).
Svelte frontend with custom SVG canvas for port-level connections.

Features:
- Live PipeWire graph via SSE
- Drag output->input port to connect
- Double-click or select+Delete to disconnect
- Node positions saved to localStorage
- Pan (drag bg) and zoom (scroll)
- Port type coloring (audio=green, midi=red, video=blue)
2026-03-29 22:40:07 +02:00

44 lines
948 B
CMake

cmake_minimum_required(VERSION 3.16)
project(pwweb VERSION 0.1.0 LANGUAGES C CXX)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(PkgConfig REQUIRED)
pkg_check_modules(PW REQUIRED libpipewire-0.3)
pkg_check_modules(SPA REQUIRED libspa-0.2)
# ZLIB for cpp-httplib gzip compression
find_package(ZLIB QUIET)
add_executable(pwweb
src/main.cpp
src/graph_engine.cpp
src/web_server.cpp
)
target_include_directories(pwweb PRIVATE
src
src/third_party
${PW_INCLUDE_DIRS}
${SPA_INCLUDE_DIRS}
)
target_link_directories(pwweb PRIVATE
${PW_LIBRARY_DIRS}
${SPA_LIBRARY_DIRS}
)
target_link_libraries(pwweb PRIVATE
${PW_LIBRARIES}
${SPA_LIBRARIES}
pthread
)
if(ZLIB_FOUND)
target_link_libraries(pwweb PRIVATE ZLIB::ZLIB)
target_compile_definitions(pwweb PRIVATE CPPHTTPLIB_ZLIB_SUPPORT)
endif()
target_compile_options(pwweb PRIVATE ${PW_CFLAGS_OTHER} ${SPA_CFLAGS_OTHER})