CMakeLists.txt 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. cmake_minimum_required(VERSION 3.28...3.30)
  2. option(ENABLE_QSV11 "Build Intel QSV11 Hardware Encoder." TRUE)
  3. if(NOT ENABLE_QSV11)
  4. target_disable_feature(obs-qsv11 "Intel QSV11 Hardware Encoder")
  5. target_disable(obs-qsv11)
  6. return()
  7. endif()
  8. add_library(obs-qsv11 MODULE)
  9. add_library(OBS::qsv11 ALIAS obs-qsv11)
  10. find_package(VPL 2.9 REQUIRED)
  11. if(OS_LINUX)
  12. find_package(Libva REQUIRED)
  13. endif()
  14. target_sources(
  15. obs-qsv11
  16. PRIVATE
  17. $<$<PLATFORM_ID:Linux>:common_utils_linux.cpp>
  18. $<$<PLATFORM_ID:Windows>:common_directx11.cpp>
  19. $<$<PLATFORM_ID:Windows>:common_directx11.h>
  20. $<$<PLATFORM_ID:Windows>:common_utils_windows.cpp>
  21. common_utils.cpp
  22. common_utils.h
  23. obs-qsv11-plugin-main.c
  24. obs-qsv11.c
  25. QSV_Encoder.cpp
  26. QSV_Encoder.h
  27. QSV_Encoder_Internal.cpp
  28. QSV_Encoder_Internal.h
  29. )
  30. target_compile_options(
  31. obs-qsv11
  32. PRIVATE
  33. $<$<COMPILE_LANG_AND_ID:C,GNU,Clang>:-Wno-error=switch>
  34. $<$<COMPILE_LANG_AND_ID:CXX,GNU,Clang>:-Wno-error=switch>
  35. )
  36. target_link_libraries(
  37. obs-qsv11
  38. PRIVATE
  39. OBS::libobs
  40. VPL::VPL
  41. $<$<PLATFORM_ID:Linux>:Libva::va>
  42. $<$<PLATFORM_ID:Linux>:Libva::drm>
  43. $<$<PLATFORM_ID:Windows>:d3d11>
  44. $<$<PLATFORM_ID:Windows>:dxgi>
  45. $<$<PLATFORM_ID:Windows>:dxguid>
  46. )
  47. target_link_options(obs-qsv11 PRIVATE $<$<PLATFORM_ID:Windows>:/IGNORE:4099>)
  48. if(OS_WINDOWS)
  49. add_subdirectory(obs-qsv-test)
  50. configure_file(cmake/windows/obs-module.rc.in obs-qsv11.rc)
  51. target_sources(obs-qsv11 PRIVATE obs-qsv11.rc)
  52. endif()
  53. set_target_properties_obs(obs-qsv11 PROPERTIES FOLDER plugins/obs-qsv11 PREFIX "")