CMakeLists.txt 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  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-common.c
  32. pipewire-common.h
  33. pipewire.c
  34. pipewire.h
  35. pipewire-capture.c
  36. pipewire-capture.h
  37. portal.c
  38. portal.h)
  39. target_link_libraries(
  40. linux-pipewire PRIVATE OBS::libobs OBS::obsglad PipeWire::PipeWire GIO::GIO
  41. Libdrm::Libdrm)
  42. set_target_properties(linux-pipewire PROPERTIES FOLDER "plugins")
  43. setup_plugin_target(linux-pipewire)