aae3a6a466
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.
103 lines
2.8 KiB
CMake
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)
|