CMakeLists.txt 2.8 KB

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