CMakeLists.txt 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. cmake_minimum_required(VERSION 3.28...3.30)
  2. find_package(FFmpeg REQUIRED avcodec avutil)
  3. add_library(win-dshow MODULE)
  4. add_library(OBS::dshow ALIAS win-dshow)
  5. if(NOT TARGET OBS::tiny-nv12-scale)
  6. add_subdirectory("${CMAKE_SOURCE_DIR}/shared/obs-tiny-nv12-scale" obs-tiny-nv12-scale)
  7. endif()
  8. if(NOT TARGET OBS::shared-memory-queue)
  9. add_subdirectory("${CMAKE_SOURCE_DIR}/shared/obs-shared-memory-queue" obs-shared-memory-queue)
  10. endif()
  11. if(NOT TARGET OBS::libdshowcapture)
  12. add_subdirectory("${CMAKE_SOURCE_DIR}/deps/libdshowcapture" libdshowcapture)
  13. endif()
  14. if(NOT TARGET OBS::winhandle)
  15. add_subdirectory("${CMAKE_SOURCE_DIR}/libobs" "${CMAKE_BINARY_DIR}/libobs")
  16. endif()
  17. target_sources(
  18. win-dshow
  19. PRIVATE dshow-plugin.cpp encode-dstr.hpp ffmpeg-decode.c ffmpeg-decode.h win-dshow-encoder.cpp win-dshow.cpp
  20. )
  21. configure_file(cmake/windows/obs-module.rc.in win-dshow.rc)
  22. target_sources(win-dshow PRIVATE win-dshow.rc)
  23. target_link_libraries(
  24. win-dshow
  25. PRIVATE
  26. OBS::libobs
  27. OBS::w32-pthreads
  28. OBS::libdshowcapture
  29. OBS::tiny-nv12-scale
  30. OBS::shared-memory-queue
  31. OBS::winhandle
  32. FFmpeg::avcodec
  33. FFmpeg::avutil
  34. strmiids
  35. winmm
  36. )
  37. add_subdirectory(virtualcam-module)
  38. if(TARGET OBS::virtualcam AND TARGET OBS::virtualcam-guid)
  39. target_sources(win-dshow PRIVATE virtualcam.c)
  40. target_link_libraries(win-dshow PRIVATE OBS::virtualcam-guid)
  41. target_compile_definitions(win-dshow PRIVATE VIRTUALCAM_AVAILABLE)
  42. add_dependencies(win-dshow obs-virtualcam-module)
  43. endif()
  44. set_target_properties_obs(win-dshow PROPERTIES FOLDER plugins/win-dshow PREFIX "")