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)
44 lines
948 B
CMake
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})
|