set(test-targets "") file(GLOB test-sources *.cpp) foreach(test-source ${test-sources}) get_filename_component(test-name ${test-source} NAME_WE) set(test-target test-${test-name}) list(APPEND test-targets ${test-target}) add_executable(${test-target} ${test-source}) target_include_directories(${test-target} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) target_link_libraries(${test-target} PRIVATE ring-buffer) endforeach() file(GLOB test-directories *) foreach(test-directory ${test-directories}) if(NOT IS_DIRECTORY ${test-directory}) continue() endif() set(test-name ${test-directory}) set(test-target test-${test-name}) list(APPEND test-targets ${test-target}) if(IS_DIRECTORY ${test-directory}/src) file(GLOB_RECURSE test-directory-sources ${test-directory}/src/*.cpp) else() file(GLOB test-directory-sources ${test-directory}/*.cpp) endif() add_executable(${test-target} ${test-directory-sources}) if(IS_DIRECTORY ${test-directory}/include) target_include_directories(${test-target} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${test-directory}/include) endif() target_link_libraries(${test-target} PRIVATE ring-buffer) endforeach()