12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- project(linux-pipewire)
- option(ENABLE_PIPEWIRE "Enable PipeWire support" ON)
- if(NOT ENABLE_PIPEWIRE)
- obs_status(DISABLED "linux-pipewire")
- return()
- endif()
- find_package(PipeWire 0.3.33 REQUIRED)
- find_package(Gio QUIET)
- find_package(Libdrm QUIET) # we require libdrm/drm_fourcc.h to build
- if(NOT TARGET PipeWire::PipeWire)
- obs_status(FATAL_ERROR "PipeWire library not found! Please install PipeWire or set ENABLE_PIPEWIRE=OFF.")
- elseif(NOT TARGET GIO::GIO)
- obs_status(FATAL_ERROR "Gio library not found! Please install GLib2 (or Gio) or set ENABLE_PIPEWIRE=OFF.")
- elseif(NOT TARGET Libdrm::Libdrm)
- obs_status(FATAL_ERROR "libdrm headers not found! Please install libdrm or set ENABLE_PIPEWIRE=OFF.")
- endif()
- add_library(linux-pipewire MODULE)
- add_library(OBS::pipewire ALIAS linux-pipewire)
- target_sources(
- linux-pipewire
- PRIVATE formats.c
- formats.h
- linux-pipewire.c
- pipewire.c
- pipewire.h
- portal.c
- portal.h
- screencast-portal.c
- screencast-portal.h)
- target_link_libraries(linux-pipewire PRIVATE OBS::libobs OBS::obsglad PipeWire::PipeWire GIO::GIO Libdrm::Libdrm)
- if(PIPEWIRE_VERSION VERSION_GREATER_EQUAL 0.3.60)
- obs_status(STATUS "PipeWire 0.3.60+ found, enabling camera support")
- target_sources(linux-pipewire PRIVATE camera-portal.c camera-portal.h)
- endif()
- set_target_properties(linux-pipewire PROPERTIES FOLDER "plugins")
- setup_plugin_target(linux-pipewire)
|