Cleaned up gtsamAddTestsGlob function

release/4.3a0
Richard Roberts 2014-02-13 11:14:51 -05:00
parent b3aa563e13
commit 0e4b5269c5
1 changed files with 13 additions and 17 deletions

View File

@ -19,9 +19,10 @@ else()
endif()
mark_as_advanced(GTSAM_SINGLE_TEST_EXE)
# Macro for adding glob(s) of tests relative to the current directory. Automatically
# links the tests with CppUnitLite. Separate multiple globPatterns, linkLibraries,
# and excludedFiles using a semicolon, e.g. "testThings*.cpp;testOthers*.cpp".
# Macro for adding a group of tests relative to the current directory.
# globPatterns: e.g. "test*.cpp", or a list of globs, e.g. "testA*.cpp;testB*.cpp".
# excludedFiles: list of files or globs to exclude, e.g. "testC*.cpp;testBroken.cpp".
# linkLibraries: list of libraries to link to in addition to CppUnitLite.
# Usage example: gtsamAddTestsGlob(basic "test*.cpp" "testBroken.cpp" "gtsam;GeographicLib")
macro(gtsamAddTestsGlob groupName globPatterns excludedFiles linkLibraries)
if(GTSAM_BUILD_TESTS)
@ -30,25 +31,20 @@ macro(gtsamAddTestsGlob groupName globPatterns excludedFiles linkLibraries)
add_custom_target(check.${groupName} COMMAND ${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION> --output-on-failure)
endif()
# Get all script files relative to the currect directory
set(script_files_relative "")
foreach(one_pattern IN ITEMS ${globPatterns})
message(STATUS "Filling test group ${groupName}")
file(GLOB one_script_files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "${one_pattern}")
list(APPEND script_files_relative ${one_script_files})
endforeach()
# Get all script files
message(STATUS "Filling test group ${groupName}")
file(GLOB script_files ${globPatterns})
# Remove excluded scripts from the list
if(NOT "${excludedFiles}" STREQUAL "")
list(REMOVE_ITEM script_files_relative ${excludedFiles})
file(GLOB excludedFilePaths ${excludedFiles})
if("${excludedFilePaths}" STREQUAL "")
message(WARNING "The pattern '${excludedFiles}' for excluding tests from group ${groupName} did not match any files")
else()
list(REMOVE_ITEM script_files ${excludedFilePaths})
endif()
endif()
# Get absolute paths
set(script_files "")
foreach(script_file IN ITEMS ${script_files_relative})
list(APPEND script_files "${CMAKE_CURRENT_SOURCE_DIR}/${script_file}")
endforeach()
# Separate into source files and headers (allows for adding headers to show up in
# MSVC and Xcode projects).
set(script_srcs "")