os-freebsd.cmake 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. find_package(X11 REQUIRED)
  2. find_package(x11-xcb REQUIRED)
  3. # cmake-format: off
  4. find_package(xcb OPTIONAL_COMPONENTS xcb-xinput QUIET)
  5. # cmake-format: on
  6. find_package(gio)
  7. find_package(Sysinfo REQUIRED)
  8. target_sources(
  9. libobs
  10. PRIVATE obs-nix.c
  11. obs-nix-platform.c
  12. obs-nix-platform.h
  13. obs-nix-x11.c
  14. util/pipe-posix.c
  15. util/platform-nix.c
  16. util/threading-posix.c
  17. util/threading-posix.h)
  18. target_compile_definitions(libobs PRIVATE $<$<OR:$<C_COMPILER_ID:GNU>,$<CXX_COMPILER_ID:GNU>>:ENABLE_DARRAY_TYPE_TEST>)
  19. target_link_libraries(libobs PRIVATE X11::x11-xcb xcb::xcb Sysinfo::Sysinfo)
  20. if(TARGET xcb::xcb-xinput)
  21. target_link_libraries(libobs PRIVATE xcb::xcb-xinput)
  22. endif()
  23. if(ENABLE_PULSEAUDIO)
  24. find_package(PulseAudio REQUIRED)
  25. target_sources(
  26. libobs
  27. PRIVATE audio-monitoring/pulse/pulseaudio-enum-devices.c audio-monitoring/pulse/pulseaudio-monitoring-available.c
  28. audio-monitoring/pulse/pulseaudio-output.c audio-monitoring/pulse/pulseaudio-wrapper.c
  29. audio-monitoring/pulse/pulseaudio-wrapper.h)
  30. target_link_libraries(libobs PRIVATE PulseAudio::PulseAudio)
  31. target_enable_feature(libobs "PulseAudio audio monitoring (Linux)")
  32. else()
  33. target_sources(libobs PRIVATE audio-monitoring/null/null-audio-monitoring.c)
  34. target_disable_feature(libobs "PulseAudio audio monitoring (Linux)")
  35. endif()
  36. if(TARGET gio::gio)
  37. target_sources(libobs PRIVATE util/platform-nix-dbus.c util/platform-nix-portal.c)
  38. target_link_libraries(libobs PRIVATE gio::gio)
  39. endif()
  40. if(ENABLE_WAYLAND)
  41. # cmake-format: off
  42. find_package(Wayland COMPONENTS Client REQUIRED)
  43. # cmake-format: on
  44. find_package(xkbcommon REQUIRED)
  45. target_sources(libobs PRIVATE obs-nix-wayland.c)
  46. target_link_libraries(libobs PRIVATE Wayland::Client xkbcommon::xkbcommon)
  47. target_enable_feature(libobs "Wayland compositor support (Linux)")
  48. else()
  49. target_disable_feature(libobs "Wayland compositor support (Linux)")
  50. endif()
  51. set_target_properties(libobs PROPERTIES OUTPUT_NAME obs)