32 lines
936 B
CMake
32 lines
936 B
CMake
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
|
|
)
|