44 lines
1.7 KiB
CMake
44 lines
1.7 KiB
CMake
function(addSubDirs_ofRoot anchorPath)
|
|
message("scanning: ${anchorPath}")
|
|
file(GLOB targetModules RELATIVE "${anchorPath}" "${anchorPath}/*")
|
|
foreach(module ${targetModules})
|
|
message("checking: ${module}")
|
|
get_filename_component(moduleName ${module} NAME)
|
|
set(modulePath "${anchorPath}/${moduleName}")
|
|
if (NOT IS_DIRECTORY "${modulePath}")
|
|
# skip files
|
|
continue()
|
|
endif()
|
|
if (${moduleName} MATCHES "^_.*")
|
|
# skip ignored component
|
|
continue()
|
|
endif()
|
|
|
|
if(EXISTS "${modulePath}/${DEF_UTESTDIR}")
|
|
message("Found unit-test: ${moduleName}")
|
|
add_subdirectory("${modulePath}/${DEF_UTESTDIR}" ${moduleName})
|
|
endif()
|
|
endforeach()
|
|
endfunction()
|
|
|
|
macro(unitTestsFrame)
|
|
if (CMAKE_TESTING_ENABLED)
|
|
# get_filename_component(moduleName "${CMAKE_CURRENT_LIST_DIR}/.." NAME)
|
|
file(GLOB_RECURSE targetSources "../${DEF_SRCDIR}/*.cpp" "../${DEF_SRCDIR}/*.c")
|
|
add_library(${moduleName} ${targetSources})
|
|
target_include_directories(${moduleName} PUBLIC "../${DEF_INCLUDEDIR}")
|
|
|
|
set(moduleTestName "${moduleName}Test")
|
|
file(GLOB_RECURSE testSource "*.cpp")
|
|
add_executable(${moduleTestName} ${testSource})
|
|
target_link_libraries(${moduleTestName} PRIVATE ${moduleName} doctest::doctest)
|
|
target_include_directories(${moduleTestName} PRIVATE "../${DEF_SRCDIR}")
|
|
|
|
add_test (TEST-${moduleName} ${moduleTestName})
|
|
|
|
# gtest_discover_tests(${moduleTestName}
|
|
# PROPERTIES TIMEOUT 30 LABELS ${moduleName} LABELS "all"
|
|
# )
|
|
endif()
|
|
endmacro()
|