if(NOT UNIX) return() endif() if(EMSCRIPTEN OR APPLE) return() endif() if(LIBREMIDI_NO_PIPEWIRE) return() endif() if(NOT LIBREMIDI_HAS_STD_SEMAPHORE) return() endif() if(NOT LIBREMIDI_HAS_STD_STOP_TOKEN) return() endif() find_path(PIPEWIRE_INCLUDEDIR pipewire-0.3/pipewire/filter.h) find_path(SPA_INCLUDEDIR spa-0.2/spa/param/latency-utils.h) if(PIPEWIRE_INCLUDEDIR AND SPA_INCLUDEDIR) message(STATUS "libremidi: using PipeWire") set(LIBREMIDI_HAS_PIPEWIRE 1) set(CMAKE_REQUIRED_INCLUDES "${SPA_INCLUDEDIR}/spa-0.2") check_cxx_source_compiles("#include \nint main() { return sizeof(SPA_CONTROL_UMP); }" LIBREMIDI_HAS_PIPEWIRE_UMP) unset(CMAKE_REQUIRED_INCLUDES) target_compile_options(libremidi ${_public} $<$:-Wno-gnu-statement-expression-from-macro-expansion> $<$:-Wno-c99-extensions> ) target_compile_definitions(libremidi ${_public} LIBREMIDI_PIPEWIRE $<$:LIBREMIDI_PIPEWIRE_UMP> ) target_include_directories(libremidi SYSTEM ${_public} $ $ ) target_link_libraries(libremidi ${_public} ${CMAKE_DL_LIBS} $ ) endif()