CMakeLists.txt 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. project(linux-pipewire)
  2. option(ENABLE_PIPEWIRE "Enable PipeWire support" ON)
  3. if(NOT ENABLE_PIPEWIRE)
  4. obs_status(DISABLED "linux-pipewire")
  5. return()
  6. endif()
  7. find_package(PipeWire REQUIRED)
  8. find_package(Gio QUIET)
  9. find_package(Libdrm QUIET) # we require libdrm/drm_fourcc.h to build
  10. if(NOT TARGET PipeWire::PipeWire)
  11. obs_status(
  12. FATAL_ERROR
  13. "PipeWire library not found! Please install PipeWire or set ENABLE_PIPEWIRE=OFF."
  14. )
  15. elseif(NOT TARGET GIO::GIO)
  16. obs_status(
  17. FATAL_ERROR
  18. "Gio library not found! Please install GLib2 (or Gio) or set ENABLE_PIPEWIRE=OFF."
  19. )
  20. elseif(NOT TARGET Libdrm::Libdrm)
  21. obs_status(
  22. FATAL_ERROR
  23. "libdrm headers not found! Please install libdrm or set ENABLE_PIPEWIRE=OFF."
  24. )
  25. endif()
  26. add_library(linux-pipewire MODULE)
  27. add_library(OBS::pipewire ALIAS linux-pipewire)
  28. target_sources(
  29. linux-pipewire
  30. PRIVATE linux-pipewire.c
  31. pipewire.c
  32. pipewire.h
  33. pipewire-capture.c
  34. pipewire-capture.h
  35. portal.c
  36. portal.h)
  37. target_link_libraries(
  38. linux-pipewire PRIVATE OBS::libobs OBS::obsglad PipeWire::PipeWire GIO::GIO
  39. Libdrm::Libdrm)
  40. set_target_properties(linux-pipewire PROPERTIES FOLDER "plugins")
  41. setup_plugin_target(linux-pipewire)