2023-03-26 03:55:25 +02:00
|
|
|
find_package(X11 REQUIRED)
|
|
|
|
find_package(x11-xcb REQUIRED)
|
2023-03-28 19:50:59 +02:00
|
|
|
# cmake-format: off
|
|
|
|
find_package(xcb OPTIONAL_COMPONENTS xcb-xinput QUIET)
|
|
|
|
# cmake-format: on
|
2023-03-26 03:55:25 +02:00
|
|
|
find_package(gio)
|
|
|
|
find_package(Sysinfo REQUIRED)
|
|
|
|
|
|
|
|
target_sources(
|
|
|
|
libobs
|
|
|
|
PRIVATE obs-nix.c
|
|
|
|
obs-nix-platform.c
|
|
|
|
obs-nix-platform.h
|
|
|
|
obs-nix-x11.c
|
|
|
|
util/pipe-posix.c
|
|
|
|
util/platform-nix.c
|
|
|
|
util/threading-posix.c
|
|
|
|
util/threading-posix.h)
|
2023-03-28 19:50:59 +02:00
|
|
|
target_compile_definitions(libobs PRIVATE $<$<OR:$<C_COMPILER_ID:GNU>,$<CXX_COMPILER_ID:GNU>>:ENABLE_DARRAY_TYPE_TEST>)
|
|
|
|
|
|
|
|
target_link_libraries(libobs PRIVATE X11::x11-xcb xcb::xcb Sysinfo::Sysinfo)
|
|
|
|
if(TARGET xcb::xcb-xinput)
|
|
|
|
target_link_libraries(libobs PRIVATE xcb::xcb-xinput)
|
|
|
|
endif()
|
2023-03-26 03:55:25 +02:00
|
|
|
|
|
|
|
if(ENABLE_PULSEAUDIO)
|
|
|
|
find_package(PulseAudio REQUIRED)
|
|
|
|
|
|
|
|
target_sources(
|
|
|
|
libobs
|
|
|
|
PRIVATE audio-monitoring/pulse/pulseaudio-enum-devices.c audio-monitoring/pulse/pulseaudio-monitoring-available.c
|
|
|
|
audio-monitoring/pulse/pulseaudio-output.c audio-monitoring/pulse/pulseaudio-wrapper.c
|
|
|
|
audio-monitoring/pulse/pulseaudio-wrapper.h)
|
|
|
|
|
|
|
|
target_link_libraries(libobs PRIVATE PulseAudio::PulseAudio)
|
2023-03-28 19:50:59 +02:00
|
|
|
target_enable_feature(libobs "PulseAudio audio monitoring (Linux)")
|
2023-03-26 03:55:25 +02:00
|
|
|
else()
|
|
|
|
target_sources(libobs PRIVATE audio-monitoring/null/null-audio-monitoring.c)
|
2023-03-28 19:50:59 +02:00
|
|
|
target_disable_feature(libobs "PulseAudio audio monitoring (Linux)")
|
2023-03-26 03:55:25 +02:00
|
|
|
endif()
|
|
|
|
|
|
|
|
if(TARGET gio::gio)
|
|
|
|
target_sources(libobs PRIVATE util/platform-nix-dbus.c util/platform-nix-portal.c)
|
2023-03-28 19:50:59 +02:00
|
|
|
target_link_libraries(libobs PRIVATE gio::gio)
|
2023-03-26 03:55:25 +02:00
|
|
|
endif()
|
|
|
|
|
|
|
|
if(ENABLE_WAYLAND)
|
2023-03-28 19:50:59 +02:00
|
|
|
# cmake-format: off
|
|
|
|
find_package(Wayland COMPONENTS Client REQUIRED)
|
|
|
|
# cmake-format: on
|
2023-03-26 03:55:25 +02:00
|
|
|
find_package(xkbcommon REQUIRED)
|
|
|
|
|
|
|
|
target_sources(libobs PRIVATE obs-nix-wayland.c)
|
2023-03-28 19:50:59 +02:00
|
|
|
target_link_libraries(libobs PRIVATE Wayland::Client xkbcommon::xkbcommon)
|
|
|
|
target_enable_feature(libobs "Wayland compositor support (Linux)")
|
2023-03-26 03:55:25 +02:00
|
|
|
else()
|
2023-03-28 19:50:59 +02:00
|
|
|
target_disable_feature(libobs "Wayland compositor support (Linux)")
|
2023-03-26 03:55:25 +02:00
|
|
|
endif()
|
|
|
|
|
|
|
|
set_target_properties(libobs PROPERTIES OUTPUT_NAME obs)
|