# libcr/CMakeLists.txt - TODO # # Copyright (C) 2024 Luke T. Shumaker # SPDX-License-Identifier: AGPL-3.0-or-later add_library(libcr INTERFACE) target_include_directories(libcr SYSTEM INTERFACE ${CMAKE_CURRENT_LIST_DIR}/include) target_sources(libcr INTERFACE coroutine.c ) target_link_libraries(libcr INTERFACE libmisc ) target_compile_options(libcr INTERFACE -fno-split-stack ) set(cfg_matrix "CONFIG_COROUTINE_MEASURE_STACK;[0;1]" "CONFIG_COROUTINE_PROTECT_STACK;[0;1]" "CONFIG_COROUTINE_DEBUG;[0;1]" "CONFIG_COROUTINE_VALGRIND;[0;1]" "CONFIG_COROUTINE_GDB;[0;1]" ) function(add_libcr_matrix_test n defs) add_executable("test_matrix${n}" "tests/test_matrix.c") target_link_libraries("test_matrix${n}" "libcr") target_include_directories("test_matrix${n}" PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/tests/test_matrix) target_compile_definitions("test_matrix${n}" PUBLIC "${defs}") if ("CONFIG_COROUTINE_VALGRIND=1" IN_LIST defs) add_test( NAME "libcr/test_matrix${n}" COMMAND valgrind --error-exitcode=2 "./test_matrix${n}" ) else() add_test( NAME "libcr/test_matrix${n}" COMMAND "./test_matrix${n}" ) endif() endfunction() if (ENABLE_TESTS) apply_matrix(add_libcr_matrix_test "${cfg_matrix}") endif()