CMakeLists.txt 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. option(DISABLE_PLUGINS "Disable building of OBS plugins" OFF)
  2. if(DISABLE_PLUGINS)
  3. message(STATUS "DISABLE_PLUGINS is set; building of plugins is disabled.")
  4. return()
  5. endif()
  6. if(WIN32)
  7. option(BUILD_CA_ENCODER "Build CoreAudio encoder module" ON)
  8. if (BUILD_CA_ENCODER)
  9. add_subdirectory(coreaudio-encoder)
  10. endif()
  11. add_subdirectory(win-wasapi)
  12. add_subdirectory(win-dshow)
  13. add_subdirectory(win-capture)
  14. add_subdirectory(decklink/win)
  15. add_subdirectory(win-mf)
  16. add_subdirectory(obs-qsv11)
  17. add_subdirectory(vlc-video)
  18. if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/enc-amf/CMakeLists.txt")
  19. add_subdirectory(enc-amf)
  20. else()
  21. message(STATUS "enc-amf submodule not found! Please fetch submodules. enc-amf plugin disabled.")
  22. endif()
  23. if (MSVC)
  24. add_subdirectory(win-ivcam)
  25. endif()
  26. elseif(APPLE)
  27. add_subdirectory(coreaudio-encoder)
  28. add_subdirectory(mac-avcapture)
  29. add_subdirectory(mac-capture)
  30. add_subdirectory(mac-vth264)
  31. add_subdirectory(mac-syphon)
  32. option(BUILD_VIRTUALCAM "Build Virtualcam" ON)
  33. if(BUILD_VIRTUALCAM)
  34. add_subdirectory(mac-virtualcam)
  35. endif()
  36. add_subdirectory(decklink/mac)
  37. add_subdirectory(vlc-video)
  38. add_subdirectory(linux-jack)
  39. elseif("${CMAKE_SYSTEM_NAME}" MATCHES "Linux")
  40. add_subdirectory(linux-capture)
  41. add_subdirectory(linux-pulseaudio)
  42. add_subdirectory(linux-v4l2)
  43. add_subdirectory(linux-jack)
  44. add_subdirectory(linux-alsa)
  45. add_subdirectory(decklink/linux)
  46. add_subdirectory(vlc-video)
  47. add_subdirectory(sndio)
  48. elseif("${CMAKE_SYSTEM_NAME}" MATCHES "FreeBSD")
  49. add_subdirectory(linux-capture)
  50. add_subdirectory(linux-pulseaudio)
  51. add_subdirectory(linux-v4l2)
  52. add_subdirectory(linux-jack)
  53. add_subdirectory(linux-alsa)
  54. add_subdirectory(vlc-video)
  55. add_subdirectory(oss-audio)
  56. add_subdirectory(sndio)
  57. elseif("${CMAKE_SYSTEM_NAME}" MATCHES "OpenBSD")
  58. add_subdirectory(linux-capture)
  59. add_subdirectory(sndio)
  60. endif()
  61. option(BUILD_BROWSER "Build browser plugin" ON)
  62. if (BUILD_BROWSER)
  63. if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/obs-browser/CMakeLists.txt")
  64. add_subdirectory(obs-browser)
  65. set(BROWSER_AVAILABLE_INTERNAL ON CACHE BOOL "Internal global cmake variable" FORCE)
  66. else()
  67. message(FATAL_ERROR "obs-browser submodule not found! Please fetch submodules or set BUILD_BROWSER=OFF.")
  68. endif()
  69. else()
  70. set(BROWSER_AVAILABLE_INTERNAL OFF CACHE BOOL "Internal global cmake variable" FORCE)
  71. endif()
  72. option(BUILD_VST "Build VST plugin" ON)
  73. if(BUILD_VST)
  74. if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/obs-vst/CMakeLists.txt")
  75. add_subdirectory(obs-vst)
  76. else()
  77. message(FATAL_ERROR "obs-vst submodule not found! Please fetch submodules or set BUILD_VST=OFF.")
  78. endif()
  79. endif()
  80. add_subdirectory(image-source)
  81. add_subdirectory(obs-x264)
  82. add_subdirectory(obs-libfdk)
  83. add_subdirectory(obs-ffmpeg)
  84. add_subdirectory(obs-outputs)
  85. add_subdirectory(obs-filters)
  86. add_subdirectory(obs-transitions)
  87. add_subdirectory(obs-text)
  88. add_subdirectory(rtmp-services)
  89. add_subdirectory(text-freetype2)
  90. add_subdirectory(aja)