0
0
mirror of https://github.com/obsproject/obs-studio.git synced 2024-09-20 13:08:50 +02:00
obs-studio/plugins/CMakeLists.txt
PatTheMav aae3a6a466 cmake: Fix diverging prefix padding for OBS status outputs
Status output related to OBS configuration is prefixed with the string
"OBS" and added padding for enabled and disabled features. This padding
was not aligned between platforms.

By moving the padding and prefix decoration into its own function,
both elements are controlled in a single place. CMake scripts were
changed to use this new function `obs_status` instead of using CMake's
`message` function directly.
2022-03-26 09:44:23 -04:00

103 lines
2.8 KiB
CMake

option(ENABLE_PLUGINS "Enable building OBS plugins" ON)
if(NOT ENABLE_PLUGINS)
obs_status(STATUS "Building with plugins disabled.")
return()
endif()
function(check_obs_browser)
if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/obs-browser/CMakeLists.txt)
add_subdirectory(obs-browser)
else()
obs_status(FATAL_ERROR "obs-browser submodule not available.")
endif()
endfunction()
function(check_obs_vst)
if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/obs-vst/CMakeLists.txt)
add_subdirectory(obs-vst)
else()
obs_status(FATAL_ERROR "obs-vst submodule not available.")
endif()
endfunction()
# APPLE/WIN32/UNIX are soft-deprecated:
# https://discourse.cmake.org/t/platform-id-vs-win32-vs-cmake-system-name/1226/2
if(OS_WINDOWS)
add_subdirectory(coreaudio-encoder)
add_subdirectory(win-wasapi)
add_subdirectory(win-dshow)
add_subdirectory(win-capture)
add_subdirectory(decklink)
add_subdirectory(win-mf)
add_subdirectory(obs-qsv11)
add_subdirectory(obs-text)
add_subdirectory(vlc-video)
if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/enc-amf/CMakeLists.txt")
add_subdirectory(enc-amf)
else()
obs_status(WARNING "enc-amf plugin not found.")
endif()
if(MSVC)
add_subdirectory(win-ivcam)
endif()
check_obs_browser()
check_obs_vst()
elseif(OS_MACOS)
add_subdirectory(coreaudio-encoder)
add_subdirectory(mac-avcapture)
add_subdirectory(mac-capture)
add_subdirectory(mac-vth264)
add_subdirectory(mac-syphon)
add_subdirectory(mac-virtualcam)
add_subdirectory(decklink)
add_subdirectory(vlc-video)
add_subdirectory(linux-jack)
check_obs_browser()
check_obs_vst()
elseif(OS_LINUX)
add_subdirectory(linux-capture)
add_subdirectory(linux-pulseaudio)
add_subdirectory(linux-v4l2)
add_subdirectory(linux-jack)
add_subdirectory(linux-alsa)
add_subdirectory(linux-pipewire)
add_subdirectory(decklink)
add_subdirectory(vlc-video)
add_subdirectory(sndio)
check_obs_browser()
check_obs_vst()
elseif(OS_FREEBSD)
add_subdirectory(linux-capture)
add_subdirectory(linux-pulseaudio)
add_subdirectory(linux-v4l2)
add_subdirectory(linux-jack)
add_subdirectory(linux-alsa)
add_subdirectory(vlc-video)
add_subdirectory(oss-audio)
add_subdirectory(sndio)
obs_status(STATUS "obs-browser plugin not available.")
obs_status(STATUS "obs-vst plugin not available.")
elseif(OS_OPENBSD)
add_subdirectory(linux-capture)
add_subdirectory(sndio)
obs_status(STATUS "obs-browser plugin not available.")
obs_status(STATUS "obs-vst plugin not available.")
endif()
add_subdirectory(image-source)
add_subdirectory(obs-x264)
add_subdirectory(obs-libfdk)
add_subdirectory(obs-ffmpeg)
add_subdirectory(obs-outputs)
add_subdirectory(obs-filters)
add_subdirectory(obs-transitions)
add_subdirectory(rtmp-services)
add_subdirectory(text-freetype2)
add_subdirectory(aja)