if(LIBREMIDI_NO_JACK) return() endif() if(NOT LIBREMIDI_HAS_STD_SEMAPHORE) message(STATUS "libremidi: std::binary_semaphore not available, skipping JACK backend") set(LIBREMIDI_HAS_JACK 0) return() endif() find_path(WEAKJACK_PATH weakjack/weak_libjack.h HINTS "${WEAKJACK_FOLDER}") find_path(JACK_PATH jack/jack.h) if(WEAKJACK_PATH AND JACK_PATH) message(STATUS "libremidi: using WeakJACK") set(LIBREMIDI_HAS_JACK 1) set(LIBREMIDI_HAS_WEAKJACK 1) target_include_directories(libremidi SYSTEM ${_public} $ $) target_link_libraries(libremidi ${_public} ${CMAKE_DL_LIBS}) elseif(JACK_PATH) find_library(JACK_LIBRARIES jack) if(JACK_LIBRARIES) message(STATUS "libremidi: using linked JACK") set(LIBREMIDI_HAS_JACK 1) target_link_libraries(libremidi ${_public} ${JACK_LIBRARIES}) target_include_directories(libremidi SYSTEM ${_public} $) endif() endif() if(LIBREMIDI_HAS_JACK) target_compile_definitions(libremidi ${_public} LIBREMIDI_JACK) if(LIBREMIDI_HAS_WEAKJACK) target_compile_definitions(libremidi ${_public} LIBREMIDI_WEAKJACK LIBREMIDI_HAS_JACK_GET_VERSION) else() # JACK1 did not have LIBREMIDI_HAS_JACK_GET_VERSION. Just skip building the UMP binding in that case... block() set(CMAKE_REQUIRED_INCLUDES $) check_cxx_source_compiles("#include \nint main() { return sizeof(jack_get_version); }" LIBREMIDI_HAS_JACK_GET_VERSION) if(LIBREMIDI_HAS_JACK_GET_VERSION) target_compile_definitions(libremidi ${_public} LIBREMIDI_HAS_JACK_GET_VERSION) endif() endblock() endif() endif()