1
0

CMakeLists.txt 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. project(linux-capture)
  2. find_package(X11 REQUIRED)
  3. if(NOT X11_Xcomposite_FOUND)
  4. message(STATUS "Xcomposite library not found, linux-capture plugin disabled")
  5. return()
  6. endif()
  7. find_package(XCB COMPONENTS XCB RANDR SHM XFIXES XINERAMA REQUIRED)
  8. find_package(X11_XCB REQUIRED)
  9. set(linux-capture_INCLUDES
  10. "${CMAKE_SOURCE_DIR}/libobs"
  11. ${X11_Xcomposite_INCLUDE_PATH}
  12. ${X11_X11_INCLUDE_PATH}
  13. ${XCB_INCLUDE_DIRS}
  14. )
  15. set(linux-capture_SOURCES
  16. linux-capture.c
  17. xcursor.c
  18. xcursor-xcb.c
  19. xhelpers.c
  20. xshm-input.c
  21. xcomposite-main.cpp
  22. xcompcap-main.cpp
  23. xcompcap-helper.cpp
  24. )
  25. set(linux-capture_HEADERS
  26. xcursor.h
  27. xcursor-xcb.h
  28. xhelpers.h
  29. xcompcap-main.hpp
  30. xcompcap-helper.hpp
  31. )
  32. set(linux-capture_LIBRARIES
  33. libobs
  34. glad
  35. ${X11_LIBRARIES}
  36. ${X11_Xfixes_LIB}
  37. ${X11_X11_LIB}
  38. ${X11_Xcomposite_LIB}
  39. ${XCB_LIBRARIES}
  40. )
  41. option(ENABLE_PIPEWIRE "Enable PipeWire support" ON)
  42. if(ENABLE_PIPEWIRE)
  43. find_package(PipeWire QUIET)
  44. find_package(Gio QUIET)
  45. if(NOT PIPEWIRE_FOUND)
  46. message(FATAL_ERROR "PipeWire library not found! Please install PipeWire or set ENABLE_PIPEWIRE=OFF")
  47. elseif(NOT GIO_FOUND)
  48. message(FATAL_ERROR "Gio library not found! Please install GLib2 (or Gio) or set ENABLE_PIPEWIRE=OFF")
  49. endif()
  50. add_definitions(-DENABLE_PIPEWIRE)
  51. set(linux-capture_INCLUDES
  52. ${linux-capture_INCLUDES}
  53. ${GIO_INCLUDE_DIRS}
  54. ${PIPEWIRE_INCLUDE_DIRS}
  55. )
  56. add_definitions(
  57. ${GIO_DEFINITIONS}
  58. ${PIPEWIRE_DEFINITIONS}
  59. )
  60. set(linux-capture_SOURCES
  61. ${linux-capture_SOURCES}
  62. pipewire.c
  63. pipewire-capture.c
  64. portal.c
  65. )
  66. set(linux-capture_HEADERS
  67. ${linux-capture_HEADERS}
  68. pipewire.h
  69. pipewire-capture.h
  70. portal.h
  71. )
  72. set(linux-capture_LIBRARIES
  73. ${linux-capture_LIBRARIES}
  74. ${GIO_LIBRARIES}
  75. ${PIPEWIRE_LIBRARIES}
  76. )
  77. endif()
  78. include_directories(SYSTEM
  79. ${linux-capture_INCLUDES}
  80. )
  81. add_library(linux-capture MODULE
  82. ${linux-capture_SOURCES}
  83. ${linux-capture_HEADERS}
  84. )
  85. target_link_libraries(linux-capture
  86. ${linux-capture_LIBRARIES}
  87. )
  88. set_target_properties(linux-capture PROPERTIES FOLDER "plugins")
  89. install_obs_plugin_with_data(linux-capture data)