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 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 )