CMakeLists.txt 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. cmake_minimum_required(VERSION 3.28...3.30)
  2. if(NOT TARGET OBS::obfuscate)
  3. add_subdirectory("${CMAKE_SOURCE_DIR}/libobs" "${CMAKE_BINARY_DIR}/libobs")
  4. endif()
  5. if(NOT TARGET OBS::inject-library)
  6. add_subdirectory("${CMAKE_SOURCE_DIR}/shared/obs-inject-library" "${CMAKE_BINARY_DIR}/shared/obs-inject-library")
  7. endif()
  8. option(ENABLE_COMPAT_UPDATES "Checks for capture compatibility data updates" ON)
  9. set(COMPAT_URL "https://obsproject.com/obs2_update/win-capture" CACHE STRING "Default services package URL")
  10. mark_as_advanced(COMPAT_URL)
  11. if(NOT TARGET OBS::ipc-util)
  12. add_subdirectory("${CMAKE_SOURCE_DIR}/shared/ipc-util" "${CMAKE_BINARY_DIR}/shared/ipc-util")
  13. endif()
  14. if(NOT TARGET OBS::file-updater)
  15. add_subdirectory("${CMAKE_SOURCE_DIR}/shared/file-updater" "${CMAKE_BINARY_DIR}/shared/file-updater")
  16. endif()
  17. find_package(jansson REQUIRED)
  18. add_library(win-capture MODULE)
  19. add_library(OBS::capture ALIAS win-capture)
  20. target_sources(
  21. win-capture
  22. PRIVATE
  23. app-helpers.c
  24. app-helpers.h
  25. audio-helpers.c
  26. audio-helpers.h
  27. compat-format-ver.h
  28. compat-helpers.c
  29. compat-helpers.h
  30. cursor-capture.c
  31. cursor-capture.h
  32. dc-capture.c
  33. dc-capture.h
  34. duplicator-monitor-capture.c
  35. game-capture-file-init.c
  36. game-capture.c
  37. load-graphics-offsets.c
  38. monitor-capture.c
  39. nt-stuff.c
  40. nt-stuff.h
  41. plugin-main.c
  42. window-capture.c
  43. )
  44. target_compile_definitions(
  45. win-capture
  46. PRIVATE
  47. COMPAT_URL="${COMPAT_URL}"
  48. "$<$<BOOL:${ENABLE_COMPAT_UPDATES}>:ENABLE_COMPAT_UPDATES>"
  49. OBS_VERSION="${OBS_VERSION_CANONICAL}"
  50. )
  51. target_link_libraries(
  52. win-capture
  53. PRIVATE
  54. OBS::file-updater
  55. OBS::hook-config
  56. OBS::inject-library
  57. OBS::ipc-util
  58. OBS::libobs
  59. OBS::obfuscate
  60. OBS::w32-pthreads
  61. OBS::winrt-headers
  62. jansson::jansson
  63. )
  64. # Remove once jansson has been fixed on obs-deps
  65. target_link_options(win-capture PRIVATE /IGNORE:4098)
  66. set_target_properties_obs(win-capture PROPERTIES FOLDER plugins/win-capture PREFIX "")
  67. add_subdirectory(graphics-hook)
  68. add_subdirectory(get-graphics-offsets)
  69. add_subdirectory(inject-helper)