CMakeLists.txt 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. option(ENABLE_PLUGINS "Enable building OBS plugins" ON)
  2. if(NOT ENABLE_PLUGINS)
  3. obs_status(STATUS "Building with plugins disabled.")
  4. return()
  5. endif()
  6. function(check_obs_browser)
  7. if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/obs-browser/CMakeLists.txt)
  8. add_subdirectory(obs-browser)
  9. else()
  10. obs_status(FATAL_ERROR "obs-browser submodule not available.")
  11. endif()
  12. endfunction()
  13. # APPLE/WIN32/UNIX are soft-deprecated:
  14. # https://discourse.cmake.org/t/platform-id-vs-win32-vs-cmake-system-name/1226/2
  15. if(OS_WINDOWS)
  16. add_subdirectory(coreaudio-encoder)
  17. add_subdirectory(win-wasapi)
  18. add_subdirectory(win-dshow)
  19. add_subdirectory(win-capture)
  20. add_subdirectory(decklink)
  21. add_subdirectory(win-mf)
  22. add_subdirectory(obs-qsv11)
  23. add_subdirectory(obs-text)
  24. add_subdirectory(vlc-video)
  25. add_subdirectory(obs-vst)
  26. if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/enc-amf/CMakeLists.txt")
  27. add_subdirectory(enc-amf)
  28. else()
  29. obs_status(WARNING "enc-amf plugin not found.")
  30. endif()
  31. if(MSVC)
  32. add_subdirectory(win-ivcam)
  33. endif()
  34. check_obs_browser()
  35. elseif(OS_MACOS)
  36. add_subdirectory(coreaudio-encoder)
  37. add_subdirectory(mac-avcapture)
  38. add_subdirectory(mac-capture)
  39. add_subdirectory(mac-videotoolbox)
  40. add_subdirectory(mac-syphon)
  41. add_subdirectory(mac-virtualcam)
  42. add_subdirectory(decklink)
  43. add_subdirectory(vlc-video)
  44. add_subdirectory(linux-jack)
  45. add_subdirectory(obs-vst)
  46. check_obs_browser()
  47. elseif(OS_LINUX)
  48. add_subdirectory(linux-capture)
  49. add_subdirectory(linux-pulseaudio)
  50. add_subdirectory(linux-v4l2)
  51. add_subdirectory(linux-jack)
  52. add_subdirectory(linux-alsa)
  53. add_subdirectory(linux-pipewire)
  54. add_subdirectory(decklink)
  55. add_subdirectory(vlc-video)
  56. add_subdirectory(sndio)
  57. add_subdirectory(obs-vst)
  58. check_obs_browser()
  59. elseif(OS_FREEBSD)
  60. add_subdirectory(linux-capture)
  61. add_subdirectory(linux-pulseaudio)
  62. add_subdirectory(linux-v4l2)
  63. add_subdirectory(linux-jack)
  64. add_subdirectory(linux-alsa)
  65. add_subdirectory(vlc-video)
  66. add_subdirectory(oss-audio)
  67. add_subdirectory(sndio)
  68. obs_status(STATUS "obs-browser plugin not available.")
  69. obs_status(STATUS "obs-vst plugin not available.")
  70. elseif(OS_OPENBSD)
  71. add_subdirectory(linux-capture)
  72. add_subdirectory(sndio)
  73. obs_status(STATUS "obs-browser plugin not available.")
  74. obs_status(STATUS "obs-vst plugin not available.")
  75. endif()
  76. if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/obs-websocket/CMakeLists.txt)
  77. add_subdirectory(obs-websocket)
  78. else()
  79. obs_status(FATAL_ERROR "obs-websocket submodule not available.")
  80. endif()
  81. add_subdirectory(image-source)
  82. add_subdirectory(obs-x264)
  83. add_subdirectory(obs-libfdk)
  84. add_subdirectory(obs-ffmpeg)
  85. add_subdirectory(obs-outputs)
  86. add_subdirectory(obs-filters)
  87. add_subdirectory(obs-transitions)
  88. add_subdirectory(rtmp-services)
  89. add_subdirectory(text-freetype2)
  90. add_subdirectory(aja)