Files
pwweb/CMakeLists.txt
joren 9231c10429 feat: MIDI controller mapping (per-profile CC → volume/mute)
- Add MidiMapper class: pw_stream per MIDI source node, worker thread,
  learn mode via SSE named event
- New endpoints: /api/midi-devices, /api/midi-mappings, /api/midi-learn/start/stop
- Frontend: MidiMappingPanel with learn mode, per-profile storage
- GraphEngine: support multiple onChange callbacks (addOnChange)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-06 02:09:44 +02:00

45 lines
972 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
src/midi_mapper.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})