1
0

legacy.cmake 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  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 0.3.33 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(FATAL_ERROR "PipeWire library not found! Please install PipeWire or set ENABLE_PIPEWIRE=OFF.")
  12. elseif(NOT TARGET GIO::GIO)
  13. obs_status(FATAL_ERROR "Gio library not found! Please install GLib2 (or Gio) or set ENABLE_PIPEWIRE=OFF.")
  14. elseif(NOT TARGET Libdrm::Libdrm)
  15. obs_status(FATAL_ERROR "libdrm headers not found! Please install libdrm or set ENABLE_PIPEWIRE=OFF.")
  16. endif()
  17. add_library(linux-pipewire MODULE)
  18. add_library(OBS::pipewire ALIAS linux-pipewire)
  19. target_sources(
  20. linux-pipewire
  21. PRIVATE formats.c
  22. formats.h
  23. linux-pipewire.c
  24. pipewire.c
  25. pipewire.h
  26. portal.c
  27. portal.h
  28. screencast-portal.c
  29. screencast-portal.h)
  30. target_link_libraries(linux-pipewire PRIVATE OBS::libobs OBS::obsglad PipeWire::PipeWire GIO::GIO Libdrm::Libdrm)
  31. if(PIPEWIRE_VERSION VERSION_GREATER_EQUAL 0.3.60)
  32. obs_status(STATUS "PipeWire 0.3.60+ found, enabling camera support")
  33. target_sources(linux-pipewire PRIVATE camera-portal.c camera-portal.h)
  34. endif()
  35. set_target_properties(linux-pipewire PROPERTIES FOLDER "plugins")
  36. setup_plugin_target(linux-pipewire)