diff --git a/plugins/linux-alsa/CMakeLists.txt b/plugins/linux-alsa/CMakeLists.txt index a3ea221fb..b50038286 100644 --- a/plugins/linux-alsa/CMakeLists.txt +++ b/plugins/linux-alsa/CMakeLists.txt @@ -1,8 +1,11 @@ -project(linux-alsa) +cmake_minimum_required(VERSION 3.22...3.25) + +legacy_check() option(ENABLE_ALSA "Build OBS with ALSA support" ON) + if(NOT ENABLE_ALSA) - obs_status(DISABLED "linux-alsa") + target_disable(linux-alsa) return() endif() @@ -11,10 +14,8 @@ find_package(ALSA REQUIRED) add_library(linux-alsa MODULE) add_library(OBS::alsa ALIAS linux-alsa) -target_sources(linux-alsa PRIVATE linux-alsa.c alsa-input.c) - +target_sources(linux-alsa PRIVATE # cmake-format: sortable + alsa-input.c linux-alsa.c) target_link_libraries(linux-alsa PRIVATE OBS::libobs ALSA::ALSA) -set_target_properties(linux-alsa PROPERTIES FOLDER "plugins") - -setup_plugin_target(linux-alsa) +set_target_properties_obs(linux-alsa PROPERTIES FOLDER plugins PREFIX "") diff --git a/plugins/linux-alsa/cmake/legacy.cmake b/plugins/linux-alsa/cmake/legacy.cmake new file mode 100644 index 000000000..a3ea221fb --- /dev/null +++ b/plugins/linux-alsa/cmake/legacy.cmake @@ -0,0 +1,20 @@ +project(linux-alsa) + +option(ENABLE_ALSA "Build OBS with ALSA support" ON) +if(NOT ENABLE_ALSA) + obs_status(DISABLED "linux-alsa") + return() +endif() + +find_package(ALSA REQUIRED) + +add_library(linux-alsa MODULE) +add_library(OBS::alsa ALIAS linux-alsa) + +target_sources(linux-alsa PRIVATE linux-alsa.c alsa-input.c) + +target_link_libraries(linux-alsa PRIVATE OBS::libobs ALSA::ALSA) + +set_target_properties(linux-alsa PROPERTIES FOLDER "plugins") + +setup_plugin_target(linux-alsa) diff --git a/plugins/linux-capture/CMakeLists.txt b/plugins/linux-capture/CMakeLists.txt index feb8077e8..2f4c03999 100644 --- a/plugins/linux-capture/CMakeLists.txt +++ b/plugins/linux-capture/CMakeLists.txt @@ -1,37 +1,45 @@ -project(linux-capture) +cmake_minimum_required(VERSION 3.22...3.25) + +legacy_check() find_package(X11 REQUIRED) -find_package(XCB COMPONENTS XCB XFIXES RANDR SHM XINERAMA COMPOSITE) -if(NOT TARGET XCB::COMPOSITE) - obs_status(FATAL_ERROR "xcb composite library not found") -endif() + +# cmake-format: off +find_package(Xcb REQUIRED xcb + xcb-xfixes + xcb-randr + xcb-shm + xcb-xinerama + xcb-composite) +# cmake-format: on add_library(linux-capture MODULE) add_library(OBS::capture ALIAS linux-capture) target_sources( linux-capture - PRIVATE linux-capture.c + PRIVATE # cmake-format: sortable + linux-capture.c + xcomposite-input.c + xcomposite-input.h xcursor-xcb.c xcursor-xcb.h xhelpers.c xhelpers.h - xshm-input.c - xcomposite-input.c - xcomposite-input.h) + xshm-input.c) target_link_libraries( linux-capture PRIVATE OBS::libobs - OBS::obsglad + OBS::glad X11::X11 - XCB::XCB - XCB::XFIXES - XCB::RANDR - XCB::SHM - XCB::XINERAMA - XCB::COMPOSITE) + xcb::xcb + xcb::xcb-xfixes + xcb::xcb-randr + xcb::xcb-shm + xcb::xcb-xinerama + xcb::xcb-composite) -set_target_properties(linux-capture PROPERTIES FOLDER "plugins") - -setup_plugin_target(linux-capture) +# cmake-format: off +set_target_properties_obs(linux-capture PROPERTIES FOLDER "plugins") +# cmake-format: on diff --git a/plugins/linux-capture/cmake/legacy.cmake b/plugins/linux-capture/cmake/legacy.cmake new file mode 100644 index 000000000..feb8077e8 --- /dev/null +++ b/plugins/linux-capture/cmake/legacy.cmake @@ -0,0 +1,37 @@ +project(linux-capture) + +find_package(X11 REQUIRED) +find_package(XCB COMPONENTS XCB XFIXES RANDR SHM XINERAMA COMPOSITE) +if(NOT TARGET XCB::COMPOSITE) + obs_status(FATAL_ERROR "xcb composite library not found") +endif() + +add_library(linux-capture MODULE) +add_library(OBS::capture ALIAS linux-capture) + +target_sources( + linux-capture + PRIVATE linux-capture.c + xcursor-xcb.c + xcursor-xcb.h + xhelpers.c + xhelpers.h + xshm-input.c + xcomposite-input.c + xcomposite-input.h) + +target_link_libraries( + linux-capture + PRIVATE OBS::libobs + OBS::obsglad + X11::X11 + XCB::XCB + XCB::XFIXES + XCB::RANDR + XCB::SHM + XCB::XINERAMA + XCB::COMPOSITE) + +set_target_properties(linux-capture PROPERTIES FOLDER "plugins") + +setup_plugin_target(linux-capture) diff --git a/plugins/linux-jack/CMakeLists.txt b/plugins/linux-jack/CMakeLists.txt index c78418d63..59f0eb267 100644 --- a/plugins/linux-jack/CMakeLists.txt +++ b/plugins/linux-jack/CMakeLists.txt @@ -1,8 +1,10 @@ -project(linux-jack) +cmake_minimum_required(VERSION 3.22...3.25) + +legacy_check() option(ENABLE_JACK "Build OBS with JACK support" OFF) if(NOT ENABLE_JACK) - obs_status(DISABLED "linux-jack") + target_disable(linux-jack) return() endif() @@ -11,10 +13,11 @@ find_package(Jack REQUIRED) add_library(linux-jack MODULE) add_library(OBS::jack ALIAS linux-jack) -target_sources(linux-jack PRIVATE linux-jack.c jack-wrapper.c jack-input.c) +target_sources(linux-jack PRIVATE # cmake-format: sortable + jack-input.c jack-wrapper.c linux-jack.c) + +target_compile_options(linux-jack PRIVATE $<$:-Wno-error=sign-compare>) target_link_libraries(linux-jack PRIVATE OBS::libobs Jack::Jack) -set_target_properties(linux-jack PROPERTIES FOLDER "plugins" PROJECT_LABEL "JACK Audio") - -setup_plugin_target(linux-jack) +set_target_properties_obs(linux-jack PROPERTIES FOLDER plugins PREFIX "" PROJECT_LABEL "JACK Audio") diff --git a/plugins/linux-jack/cmake/legacy.cmake b/plugins/linux-jack/cmake/legacy.cmake new file mode 100644 index 000000000..c78418d63 --- /dev/null +++ b/plugins/linux-jack/cmake/legacy.cmake @@ -0,0 +1,20 @@ +project(linux-jack) + +option(ENABLE_JACK "Build OBS with JACK support" OFF) +if(NOT ENABLE_JACK) + obs_status(DISABLED "linux-jack") + return() +endif() + +find_package(Jack REQUIRED) + +add_library(linux-jack MODULE) +add_library(OBS::jack ALIAS linux-jack) + +target_sources(linux-jack PRIVATE linux-jack.c jack-wrapper.c jack-input.c) + +target_link_libraries(linux-jack PRIVATE OBS::libobs Jack::Jack) + +set_target_properties(linux-jack PROPERTIES FOLDER "plugins" PROJECT_LABEL "JACK Audio") + +setup_plugin_target(linux-jack) diff --git a/plugins/linux-pipewire/CMakeLists.txt b/plugins/linux-pipewire/CMakeLists.txt index 9f4b601bb..1186a3df0 100644 --- a/plugins/linux-pipewire/CMakeLists.txt +++ b/plugins/linux-pipewire/CMakeLists.txt @@ -1,29 +1,34 @@ -project(linux-pipewire) +cmake_minimum_required(VERSION 3.22...3.25) + +legacy_check() option(ENABLE_PIPEWIRE "Enable PipeWire support" ON) if(NOT ENABLE_PIPEWIRE) - obs_status(DISABLED "linux-pipewire") + target_disable(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() +find_package(Gio REQUIRED) +find_package(Libdrm REQUIRED) +get_target_property(libdrm_include_directories Libdrm::Libdrm INTERFACE_INCLUDE_DIRECTORIES) add_library(linux-pipewire MODULE) add_library(OBS::pipewire ALIAS linux-pipewire) +if(PipeWire_VERSION VERSION_GREATER_EQUAL 0.3.60) + target_enable_feature(linux-pipewire "PipeWire 0.3.60+ camera support") + set(_HAS_PIPEWIRE_CAMERA TRUE) +else() + set(_HAS_PIPEWIRE_CAMERA FALSE) +endif() + target_sources( linux-pipewire - PRIVATE formats.c + PRIVATE # cmake-format: sortable + $<$:camera-portal.c> + $<$:camera-portal.h> + formats.c formats.h linux-pipewire.c pipewire.c @@ -33,14 +38,8 @@ target_sources( screencast-portal.c screencast-portal.h) -target_link_libraries(linux-pipewire PRIVATE OBS::libobs OBS::obsglad PipeWire::PipeWire GIO::GIO Libdrm::Libdrm) +target_include_directories(linux-pipewire PRIVATE ${libdrm_include_directories}) -if(PIPEWIRE_VERSION VERSION_GREATER_EQUAL 0.3.60) - obs_status(STATUS "PipeWire 0.3.60+ found, enabling camera support") +target_link_libraries(linux-pipewire PRIVATE OBS::libobs OBS::glad PipeWire::PipeWire gio::gio) - 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) +set_target_properties_obs(linux-pipewire PROPERTIES FOLDER plugins PREFIX "") diff --git a/plugins/linux-pipewire/cmake/legacy.cmake b/plugins/linux-pipewire/cmake/legacy.cmake new file mode 100644 index 000000000..9f4b601bb --- /dev/null +++ b/plugins/linux-pipewire/cmake/legacy.cmake @@ -0,0 +1,46 @@ +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) diff --git a/plugins/linux-pulseaudio/CMakeLists.txt b/plugins/linux-pulseaudio/CMakeLists.txt index 59d0d5d97..7fff7d7b9 100644 --- a/plugins/linux-pulseaudio/CMakeLists.txt +++ b/plugins/linux-pulseaudio/CMakeLists.txt @@ -1,7 +1,9 @@ -project(linux-pulseaudio) +cmake_minimum_required(VERSION 3.22...3.25) + +legacy_check() if(NOT ENABLE_PULSEAUDIO) - obs_status(DISABLED "linux-pulseaudio") + target_disable(linux-pulseaudio) return() endif() @@ -10,12 +12,8 @@ find_package(PulseAudio REQUIRED) add_library(linux-pulseaudio MODULE) add_library(OBS::pulseaudio ALIAS linux-pulseaudio) -target_sources(linux-pulseaudio PRIVATE linux-pulseaudio.c pulse-wrapper.c pulse-input.c) +target_sources(linux-pulseaudio PRIVATE # cmake-format: sortable + linux-pulseaudio.c pulse-input.c pulse-wrapper.c) +target_link_libraries(linux-pulseaudio PRIVATE OBS::libobs PulseAudio::PulseAudio) -target_include_directories(linux-pulseaudio PRIVATE ${PULSEAUDIO_INCLUDE_DIR}) - -target_link_libraries(linux-pulseaudio PRIVATE OBS::libobs ${PULSEAUDIO_LIBRARY}) - -set_target_properties(linux-pulseaudio PROPERTIES FOLDER "plugins") - -setup_plugin_target(linux-pulseaudio) +set_target_properties_obs(linux-pulseaudio PROPERTIES FOLDER plugins PREFIX "") diff --git a/plugins/linux-pulseaudio/cmake/legacy.cmake b/plugins/linux-pulseaudio/cmake/legacy.cmake new file mode 100644 index 000000000..59d0d5d97 --- /dev/null +++ b/plugins/linux-pulseaudio/cmake/legacy.cmake @@ -0,0 +1,21 @@ +project(linux-pulseaudio) + +if(NOT ENABLE_PULSEAUDIO) + obs_status(DISABLED "linux-pulseaudio") + return() +endif() + +find_package(PulseAudio REQUIRED) + +add_library(linux-pulseaudio MODULE) +add_library(OBS::pulseaudio ALIAS linux-pulseaudio) + +target_sources(linux-pulseaudio PRIVATE linux-pulseaudio.c pulse-wrapper.c pulse-input.c) + +target_include_directories(linux-pulseaudio PRIVATE ${PULSEAUDIO_INCLUDE_DIR}) + +target_link_libraries(linux-pulseaudio PRIVATE OBS::libobs ${PULSEAUDIO_LIBRARY}) + +set_target_properties(linux-pulseaudio PROPERTIES FOLDER "plugins") + +setup_plugin_target(linux-pulseaudio) diff --git a/plugins/linux-v4l2/CMakeLists.txt b/plugins/linux-v4l2/CMakeLists.txt index 90db5d46e..d992a5557 100644 --- a/plugins/linux-v4l2/CMakeLists.txt +++ b/plugins/linux-v4l2/CMakeLists.txt @@ -1,31 +1,43 @@ -project(linux-v4l2) +cmake_minimum_required(VERSION 3.22...3.25) + +legacy_check() option(ENABLE_V4L2 "Build OBS with v4l2 support" ON) +option(ENABLE_UDEV "Build linux-v4l2 with UDEV support" ON) + if(NOT ENABLE_V4L2) - obs_status(DISABLED "linux-v4l2") + target_disable(linux-v4l2) return() endif() -option(ENABLE_UDEV "Build linux-v4l2 with UDEV support" ON) - find_package(Libv4l2 REQUIRED) find_package(FFmpeg REQUIRED COMPONENTS avcodec avutil avformat) +if(OS_FREEBSD OR OS_OPENBSD) + set(CMAKE_REQUIRED_INCLUDES "/usr/local/include") +endif() +include(CheckCSourceCompiles) +set(V4L_TEST_SOURCE "#include\nint main(){return 0;}") +check_c_source_compiles("${V4L_TEST_SOURCE}" HAVE_VIDEODEV2_HEADER) + +if(NOT HAVE_VIDEODEV2_HEADER) + message(FATAL_ERROR "Required system header not found.") +endif() + add_library(linux-v4l2 MODULE) add_library(OBS::v4l2 ALIAS linux-v4l2) -target_sources(linux-v4l2 PRIVATE linux-v4l2.c v4l2-controls.c v4l2-input.c v4l2-helpers.c v4l2-output.c v4l2-decoder.c) +target_sources(linux-v4l2 PRIVATE # cmake-format: sortable + linux-v4l2.c v4l2-controls.c v4l2-decoder.c v4l2-helpers.c v4l2-input.c v4l2-output.c) -target_link_libraries(linux-v4l2 PRIVATE OBS::libobs LIB4L2::LIB4L2 FFmpeg::avcodec FFmpeg::avformat FFmpeg::avutil) - -set_target_properties(linux-v4l2 PROPERTIES FOLDER "plugins") +target_link_libraries(linux-v4l2 PRIVATE OBS::libobs Libv4l2::Libv4l2 FFmpeg::avcodec FFmpeg::avformat FFmpeg::avutil) if(ENABLE_UDEV) - find_package(Udev REQUIRED) + find_package(Libudev REQUIRED) target_sources(linux-v4l2 PRIVATE v4l2-udev.c) - target_link_libraries(linux-v4l2 PRIVATE Udev::Udev) + target_link_libraries(linux-v4l2 PRIVATE Libudev::Libudev) target_compile_definitions(linux-v4l2 PRIVATE HAVE_UDEV) endif() -setup_plugin_target(linux-v4l2) +set_target_properties_obs(linux-v4l2 PROPERTIES FOLDER plugins PREFIX "") diff --git a/plugins/linux-v4l2/cmake/legacy.cmake b/plugins/linux-v4l2/cmake/legacy.cmake new file mode 100644 index 000000000..90db5d46e --- /dev/null +++ b/plugins/linux-v4l2/cmake/legacy.cmake @@ -0,0 +1,31 @@ +project(linux-v4l2) + +option(ENABLE_V4L2 "Build OBS with v4l2 support" ON) +if(NOT ENABLE_V4L2) + obs_status(DISABLED "linux-v4l2") + return() +endif() + +option(ENABLE_UDEV "Build linux-v4l2 with UDEV support" ON) + +find_package(Libv4l2 REQUIRED) +find_package(FFmpeg REQUIRED COMPONENTS avcodec avutil avformat) + +add_library(linux-v4l2 MODULE) +add_library(OBS::v4l2 ALIAS linux-v4l2) + +target_sources(linux-v4l2 PRIVATE linux-v4l2.c v4l2-controls.c v4l2-input.c v4l2-helpers.c v4l2-output.c v4l2-decoder.c) + +target_link_libraries(linux-v4l2 PRIVATE OBS::libobs LIB4L2::LIB4L2 FFmpeg::avcodec FFmpeg::avformat FFmpeg::avutil) + +set_target_properties(linux-v4l2 PROPERTIES FOLDER "plugins") + +if(ENABLE_UDEV) + find_package(Udev REQUIRED) + target_sources(linux-v4l2 PRIVATE v4l2-udev.c) + + target_link_libraries(linux-v4l2 PRIVATE Udev::Udev) + target_compile_definitions(linux-v4l2 PRIVATE HAVE_UDEV) +endif() + +setup_plugin_target(linux-v4l2) diff --git a/plugins/obs-libfdk/CMakeLists.txt b/plugins/obs-libfdk/CMakeLists.txt index efdb6908f..36a69257b 100644 --- a/plugins/obs-libfdk/CMakeLists.txt +++ b/plugins/obs-libfdk/CMakeLists.txt @@ -1,9 +1,10 @@ -project(obs-libfdk) +cmake_minimum_required(VERSION 3.22...3.25) + +legacy_check() option(ENABLE_LIBFDK "Enable FDK AAC support" OFF) - if(NOT ENABLE_LIBFDK) - obs_status(DISABLED "obs-libfdk") + target_disable(obs-libfdk) return() endif() @@ -14,8 +15,6 @@ add_library(OBS::libfdk ALIAS obs-libfdk) target_sources(obs-libfdk PRIVATE obs-libfdk.c) -target_link_libraries(obs-libfdk PRIVATE OBS::libobs LibFDK::LibFDK) +target_link_libraries(obs-libfdk PRIVATE OBS::libobs Libfdk::Libfdk) -set_target_properties(obs-libfdk PROPERTIES FOLDER "plugins" PREFIX "") - -setup_plugin_target(obs-libfdk) +set_target_properties_obs(obs-libfdk PROPERTIES FOLDER plugins PREFIX "") diff --git a/plugins/obs-libfdk/cmake/legacy.cmake b/plugins/obs-libfdk/cmake/legacy.cmake new file mode 100644 index 000000000..efdb6908f --- /dev/null +++ b/plugins/obs-libfdk/cmake/legacy.cmake @@ -0,0 +1,21 @@ +project(obs-libfdk) + +option(ENABLE_LIBFDK "Enable FDK AAC support" OFF) + +if(NOT ENABLE_LIBFDK) + obs_status(DISABLED "obs-libfdk") + return() +endif() + +find_package(Libfdk REQUIRED) + +add_library(obs-libfdk MODULE) +add_library(OBS::libfdk ALIAS obs-libfdk) + +target_sources(obs-libfdk PRIVATE obs-libfdk.c) + +target_link_libraries(obs-libfdk PRIVATE OBS::libobs LibFDK::LibFDK) + +set_target_properties(obs-libfdk PROPERTIES FOLDER "plugins" PREFIX "") + +setup_plugin_target(obs-libfdk) diff --git a/plugins/oss-audio/CMakeLists.txt b/plugins/oss-audio/CMakeLists.txt index b538cf4db..05b315c3c 100644 --- a/plugins/oss-audio/CMakeLists.txt +++ b/plugins/oss-audio/CMakeLists.txt @@ -1,9 +1,11 @@ -project(oss-audio) +cmake_minimum_required(VERSION 3.22...3.25) + +legacy_check() option(ENABLE_OSS "Enable building with OSS audio support" ON) if(NOT ENABLE_OSS) - obs_status(DISABLED "oss-audio") + target_disable(oss-audio) return() endif() @@ -16,12 +18,4 @@ target_sources(oss-audio PRIVATE oss-audio.c oss-input.c) target_link_libraries(oss-audio PRIVATE OBS::libobs OSS::OSS) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/oss-platform.h.in oss-platform.h) - -target_include_directories(oss-audio PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) - -target_sources(oss-audio PRIVATE oss-platform.h) - -set_target_properties(oss-audio PROPERTIES FOLDER "plugins") - -setup_plugin_target(oss-audio) +set_target_properties_obs(oss-audio PROPERTIES FOLDER plugins PREFIX "") diff --git a/plugins/oss-audio/cmake/legacy.cmake b/plugins/oss-audio/cmake/legacy.cmake new file mode 100644 index 000000000..b538cf4db --- /dev/null +++ b/plugins/oss-audio/cmake/legacy.cmake @@ -0,0 +1,27 @@ +project(oss-audio) + +option(ENABLE_OSS "Enable building with OSS audio support" ON) + +if(NOT ENABLE_OSS) + obs_status(DISABLED "oss-audio") + return() +endif() + +find_package(OSS REQUIRED) + +add_library(oss-audio MODULE) +add_library(OBS::oss-audio ALIAS oss-audio) + +target_sources(oss-audio PRIVATE oss-audio.c oss-input.c) + +target_link_libraries(oss-audio PRIVATE OBS::libobs OSS::OSS) + +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/oss-platform.h.in oss-platform.h) + +target_include_directories(oss-audio PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) + +target_sources(oss-audio PRIVATE oss-platform.h) + +set_target_properties(oss-audio PROPERTIES FOLDER "plugins") + +setup_plugin_target(oss-audio) diff --git a/plugins/sndio/CMakeLists.txt b/plugins/sndio/CMakeLists.txt index 850f685e3..c60c2a1c6 100644 --- a/plugins/sndio/CMakeLists.txt +++ b/plugins/sndio/CMakeLists.txt @@ -1,8 +1,10 @@ -project(sndio) +cmake_minimum_required(VERSION 3.22...3.25) + +legacy_check() option(ENABLE_SNDIO "Build OBS with sndio support" OFF) if(NOT ENABLE_SNDIO) - obs_status(DISABLED "sndio") + target_disable(sndio) return() endif() @@ -13,8 +15,8 @@ add_library(OBS::sndio ALIAS sndio) target_sources(sndio PRIVATE sndio.c sndio-input.c) +target_compile_options(sndio PRIVATE -Wno-error=vla) + target_link_libraries(sndio PRIVATE OBS::libobs Sndio::Sndio) -set_target_properties(sndio PROPERTIES FOLDER "plugins") - -setup_plugin_target(sndio) +set_target_properties_obs(sndio PROPERTIES FOLDER plugins PREFIX "") diff --git a/plugins/sndio/cmake/legacy.cmake b/plugins/sndio/cmake/legacy.cmake new file mode 100644 index 000000000..850f685e3 --- /dev/null +++ b/plugins/sndio/cmake/legacy.cmake @@ -0,0 +1,20 @@ +project(sndio) + +option(ENABLE_SNDIO "Build OBS with sndio support" OFF) +if(NOT ENABLE_SNDIO) + obs_status(DISABLED "sndio") + return() +endif() + +find_package(Sndio REQUIRED) + +add_library(sndio MODULE) +add_library(OBS::sndio ALIAS sndio) + +target_sources(sndio PRIVATE sndio.c sndio-input.c) + +target_link_libraries(sndio PRIVATE OBS::libobs Sndio::Sndio) + +set_target_properties(sndio PROPERTIES FOLDER "plugins") + +setup_plugin_target(sndio)