get_target_property(sonus_interface_libraries sonus INTERFACE_LINK_LIBRARIES) if(sonus_interface_libraries AND sonus_interface_libraries MATCHES "miniaudio|OpenSSL|SQLite|raylib") message(FATAL_ERROR "sonus::sonus must not expose private audio or unrelated third-party libraries in its public link interface") endif() add_executable(sonus_test test.cpp render_snapshot.cpp control.cpp transport.cpp sequence.cpp ) find_package(Threads REQUIRED) target_include_directories(sonus_test PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}/src ) target_link_libraries(sonus_test PRIVATE sonus::sonus Threads::Threads ) target_compile_features(sonus_test PRIVATE cxx_std_23) add_test(NAME sonus COMMAND sonus_test) set_tests_properties(sonus PROPERTIES TIMEOUT 20) add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} --test-dir ${CMAKE_BINARY_DIR} -R ^sonus$ --output-on-failure --timeout 20 USES_TERMINAL )