legacy.cmake 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. option(ENABLE_QSV11 "Build Intel QSV11 Hardware Encoder." TRUE)
  2. if(NOT ENABLE_QSV11)
  3. obs_status(DISABLED "obs-qsv11")
  4. return()
  5. endif()
  6. project(obs-qsv11)
  7. add_library(obs-qsv11 MODULE)
  8. add_library(OBS::qsv11 ALIAS obs-qsv11)
  9. find_package(VPL 2.6 REQUIRED)
  10. target_sources(
  11. obs-qsv11
  12. PRIVATE obs-qsv11.c
  13. obs-qsv11-plugin-main.c
  14. common_utils.cpp
  15. common_utils.h
  16. QSV_Encoder.cpp
  17. QSV_Encoder.h
  18. QSV_Encoder_Internal.cpp
  19. QSV_Encoder_Internal.h
  20. bits/linux_defs.h
  21. bits/windows_defs.h)
  22. target_link_libraries(obs-qsv11 PRIVATE OBS::libobs VPL::VPL)
  23. if(OS_WINDOWS)
  24. add_subdirectory(obs-qsv-test)
  25. target_compile_definitions(obs-qsv11 PRIVATE DX11_D3D)
  26. set(MODULE_DESCRIPTION "OBS QSV encoder")
  27. configure_file(${CMAKE_SOURCE_DIR}/cmake/bundle/windows/obs-module.rc.in obs-qsv11.rc)
  28. target_sources(
  29. obs-qsv11
  30. PRIVATE obs-qsv11.rc
  31. common_directx9.cpp
  32. common_directx9.h
  33. common_directx11.cpp
  34. common_directx11.h
  35. common_utils_windows.cpp
  36. device_directx9.cpp
  37. device_directx9.h)
  38. target_link_libraries(obs-qsv11 PRIVATE d3d9 d3d11 dxva2 dxgi dxguid)
  39. target_link_options(obs-qsv11 PRIVATE /IGNORE:4099)
  40. target_compile_definitions(obs-qsv11 PRIVATE UNICODE _UNICODE _CRT_SECURE_NO_WARNINGS _CRT_NONSTDC_NO_WARNINGS)
  41. elseif(OS_LINUX)
  42. find_package(Libva REQUIRED)
  43. target_sources(obs-qsv11 PRIVATE common_utils_linux.cpp)
  44. target_link_libraries(obs-qsv11 PRIVATE Libva::va Libva::drm)
  45. endif()
  46. set_target_properties(obs-qsv11 PROPERTIES FOLDER "plugins/obs-qsv11")
  47. file(GLOB _OBS_QSV11_SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.c ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp)
  48. file(GLOB _OBS_QSV11_HEADER_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.h ${CMAKE_CURRENT_SOURCE_DIR}/*.hpp)
  49. source_group("obs-qsv11\\Source Files" FILES ${_OBS_QSV11_SOURCE_FILES})
  50. source_group("obs-qsv11\\Header Files" FILES ${_OBS_QSV11_HEADER_FILES})
  51. setup_plugin_target(obs-qsv11)