mirror of
https://github.com/obsproject/obs-studio.git
synced 2026-06-26 16:37:12 -04:00
Frontend plugins should not require being placed in the frontend directory to be built successfully. Indeed they should only depend on libobs and the obs-frontend-api and thus their source tree should be able to exist anywhere (even standalone) and the plugin should still compile successfully (just like any 3rd party plugin). Thus moving those plugins into the main plugin directory ensures that they don't require on any "special sauce" within the source tree to compile.
107 lines
3.1 KiB
CMake
107 lines
3.1 KiB
CMake
cmake_minimum_required(VERSION 3.28...3.30)
|
|
|
|
option(ENABLE_PLUGINS "Enable building OBS plugins" ON)
|
|
|
|
if(NOT ENABLE_PLUGINS)
|
|
set_property(GLOBAL APPEND PROPERTY OBS_FEATURES_DISABLED "Plugin Support")
|
|
return()
|
|
endif()
|
|
|
|
set_property(GLOBAL APPEND PROPERTY OBS_FEATURES_ENABLED "Plugin Support")
|
|
|
|
macro(check_obs_browser)
|
|
if((OS_WINDOWS AND CMAKE_VS_PLATFORM_NAME MATCHES "(ARM64|x64)") OR OS_MACOS OR OS_LINUX)
|
|
if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/obs-browser/CMakeLists.txt")
|
|
message(FATAL_ERROR "Required submodule 'obs-browser' not available.")
|
|
else()
|
|
add_subdirectory(obs-browser)
|
|
endif()
|
|
else()
|
|
add_custom_target(obs-browser)
|
|
target_disable(obs-browser)
|
|
endif()
|
|
endmacro()
|
|
|
|
macro(check_obs_websocket)
|
|
if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/obs-websocket/CMakeLists.txt")
|
|
message(FATAL_ERROR "Required submodule 'obs-websocket' not available.")
|
|
else()
|
|
add_subdirectory(obs-websocket)
|
|
endif()
|
|
endmacro()
|
|
|
|
# Add plugins in alphabetical order to retain order in IDE projects
|
|
add_obs_plugin(
|
|
aja
|
|
PLATFORMS WINDOWS MACOS LINUX
|
|
WITH_MESSAGE
|
|
)
|
|
add_obs_plugin(aja-output-ui PLATFORMS WINDOWS MACOS LINUX WITH_MESSAGE)
|
|
add_obs_plugin(coreaudio-encoder PLATFORMS WINDOWS MACOS)
|
|
add_obs_plugin(
|
|
decklink
|
|
PLATFORMS WINDOWS MACOS LINUX
|
|
WITH_MESSAGE
|
|
)
|
|
add_obs_plugin(
|
|
decklink-captions
|
|
PLATFORMS WINDOWS MACOS LINUX
|
|
WITH_MESSAGE
|
|
)
|
|
add_obs_plugin(
|
|
decklink-output-ui
|
|
PLATFORMS WINDOWS MACOS LINUX
|
|
WITH_MESSAGE
|
|
)
|
|
add_obs_plugin(
|
|
frontend-tools
|
|
PLATFORMS WINDOWS MACOS LINUX
|
|
WITH_MESSAGE
|
|
)
|
|
add_obs_plugin(image-source)
|
|
add_obs_plugin(linux-alsa PLATFORMS LINUX FREEBSD OPENBSD)
|
|
add_obs_plugin(linux-capture PLATFORMS LINUX FREEBSD OPENBSD)
|
|
add_obs_plugin(linux-jack PLATFORMS LINUX FREEBSD OPENBSD)
|
|
add_obs_plugin(linux-pipewire PLATFORMS LINUX FREEBSD OPENBSD)
|
|
add_obs_plugin(linux-pulseaudio PLATFORMS LINUX FREEBSD OPENBSD)
|
|
add_obs_plugin(linux-v4l2 PLATFORMS LINUX FREEBSD OPENBSD)
|
|
add_obs_plugin(mac-avcapture PLATFORMS MACOS)
|
|
add_obs_plugin(mac-capture PLATFORMS MACOS)
|
|
add_obs_plugin(mac-syphon PLATFORMS MACOS)
|
|
add_obs_plugin(mac-videotoolbox PLATFORMS MACOS)
|
|
add_obs_plugin(mac-virtualcam PLATFORMS MACOS)
|
|
add_obs_plugin(nv-filters PLATFORMS WINDOWS)
|
|
|
|
check_obs_browser()
|
|
|
|
add_obs_plugin(obs-ffmpeg)
|
|
add_obs_plugin(obs-filters)
|
|
add_obs_plugin(obs-libfdk)
|
|
add_obs_plugin(obs-nvenc PLATFORMS WINDOWS LINUX ARCHITECTURES x64 x86_64)
|
|
add_obs_plugin(obs-outputs)
|
|
add_obs_plugin(
|
|
obs-qsv11
|
|
PLATFORMS WINDOWS LINUX
|
|
ARCHITECTURES x64 x86_64
|
|
)
|
|
add_obs_plugin(obs-text PLATFORMS WINDOWS)
|
|
add_obs_plugin(obs-transitions)
|
|
add_obs_plugin(
|
|
obs-vst
|
|
PLATFORMS WINDOWS MACOS LINUX
|
|
WITH_MESSAGE
|
|
)
|
|
add_obs_plugin(obs-webrtc)
|
|
|
|
check_obs_websocket()
|
|
|
|
add_obs_plugin(obs-x264)
|
|
add_obs_plugin(oss-audio PLATFORMS FREEBSD OPENBSD)
|
|
add_obs_plugin(rtmp-services)
|
|
add_obs_plugin(sndio PLATFORMS LINUX FREEBSD OPENBSD)
|
|
add_obs_plugin(text-freetype2)
|
|
add_obs_plugin(vlc-video WITH_MESSAGE)
|
|
add_obs_plugin(win-capture PLATFORMS WINDOWS)
|
|
add_obs_plugin(win-dshow PLATFORMS WINDOWS)
|
|
add_obs_plugin(win-wasapi PLATFORMS WINDOWS)
|