Working on standardizing/simplifying building unit tests and examples. Much simpler cmake function to add a glob of tests, doing away with convenience libraries, and removing other options that we never change from their defaults.
parent
5ecfac348c
commit
661a157553
|
@ -46,7 +46,6 @@ endif()
|
|||
# Set up options
|
||||
|
||||
# Configurable Options
|
||||
option(GTSAM_BUILD_TESTS "Enable/Disable building of tests" ON)
|
||||
option(GTSAM_BUILD_TIMING "Enable/Disable building of timing scripts" OFF) # These do not currently work
|
||||
option(GTSAM_BUILD_EXAMPLES "Enable/Disable building of examples" ON)
|
||||
if(GTSAM_UNSTABLE_AVAILABLE)
|
||||
|
@ -83,9 +82,8 @@ endif()
|
|||
set(CPACK_SOURCE_GENERATOR "TGZ" CACHE STRING "CPack Default Source Generator")
|
||||
set(CPACK_GENERATOR "TGZ" CACHE STRING "CPack Default Binary Generator")
|
||||
|
||||
# Flags to determine whether tests and examples are build during 'make install'
|
||||
# Flags to determine whether examples are build during 'make install'
|
||||
# Note that these remove the targets from the 'all'
|
||||
option(GTSAM_DISABLE_TESTS_ON_INSTALL "Disables building tests during install" ON)
|
||||
option(GTSAM_DISABLE_EXAMPLES_ON_INSTALL "Disables building examples during install" OFF)
|
||||
|
||||
# Pull in infrastructure
|
||||
|
@ -375,7 +373,6 @@ print_config_flag(${GTSAM_BUILD_TYPE_POSTFIXES} "Put build type in librar
|
|||
if(GTSAM_UNSTABLE_AVAILABLE)
|
||||
print_config_flag(${GTSAM_BUILD_UNSTABLE} "Build libgtsam_unstable ")
|
||||
endif()
|
||||
print_config_flag(${GTSAM_DISABLE_TESTS_ON_INSTALL} "No tests in all or install ")
|
||||
print_config_flag(${GTSAM_DISABLE_EXAMPLES_ON_INSTALL} "No examples in all or install ")
|
||||
string(TOUPPER "${CMAKE_BUILD_TYPE}" cmake_build_type_toupper)
|
||||
if(NOT MSVC AND NOT XCODE_VERSION)
|
||||
|
|
|
@ -2,8 +2,13 @@
|
|||
|
||||
enable_testing()
|
||||
|
||||
option(GTSAM_BUILD_TESTS "Enable/Disable building of tests" ON)
|
||||
|
||||
# Enable make check (http://www.cmake.org/Wiki/CMakeEmulateMakeCheck)
|
||||
add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION> --output-on-failure)
|
||||
if(GTSAM_BUILD_TESTS)
|
||||
add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION> --output-on-failure)
|
||||
endif()
|
||||
|
||||
add_custom_target(timing)
|
||||
|
||||
# Add option for combining unit tests
|
||||
|
@ -13,6 +18,108 @@ else()
|
|||
option(GTSAM_SINGLE_TEST_EXE "Combine unit tests into single executable (faster compile)" OFF)
|
||||
endif()
|
||||
|
||||
# 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".
|
||||
# Usage example: gtsamAddTestsGlob(basic "test*.cpp" "testBroken.cpp" "gtsam;GeographicLib")
|
||||
macro(gtsamAddTestsGlob groupName globPatterns excludedFiles linkLibraries)
|
||||
if(GTSAM_BUILD_TESTS)
|
||||
# Add group target if it doesn't already exist
|
||||
if(NOT TARGET check.${groupName})
|
||||
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 RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} one_script_files "${one_pattern}")
|
||||
list(APPEND script_files_relative "${one_script_files}")
|
||||
endforeach()
|
||||
|
||||
# Remove excluded scripts from the list
|
||||
if(excludedFiles)
|
||||
list(REMOVE_ITEM script_files_relative excludedFiles)
|
||||
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 "")
|
||||
set(script_headers "")
|
||||
foreach(script_file IN ITEMS ${script_files})
|
||||
get_filename_component(script_ext ${script_file} EXT)
|
||||
if(script_ext MATCHES "(h|H)")
|
||||
list(APPEND script_headers ${script_file})
|
||||
else()
|
||||
list(APPEND script_srcs ${script_file})
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
# Don't put test files in folders in MSVC and Xcode because they're already grouped
|
||||
source_group("" FILES ${script_srcs} ${script_headers})
|
||||
|
||||
if(NOT GTSAM_SINGLE_TEST_EXE)
|
||||
foreach(script_src IN ITEMS ${script_srcs})
|
||||
# Get test base name
|
||||
get_filename_component(script_name ${script_src} NAME_WE)
|
||||
|
||||
# Add executable
|
||||
add_executable(script_name ${script_src} ${script_headers})
|
||||
target_link_libraries(${script_name} CppUnitLite ${linkLibraries})
|
||||
|
||||
# Add target dependencies
|
||||
add_test(NAME ${script_name} COMMAND ${script_name})
|
||||
add_dependencies(check.${groupName} ${script_name})
|
||||
add_dependencies(check ${script_name})
|
||||
if(NOT MSVC AND NOT XCODE_VERSION)
|
||||
add_custom_target(${script_name}.run ${EXECUTABLE_OUTPUT_PATH}${script_name})
|
||||
endif()
|
||||
|
||||
# Add TOPSRCDIR
|
||||
set_property(SOURCE ${script_src} APPEND PROPERTY COMPILE_DEFINITIONS "TOPSRCDIR=\"${PROJECT_SOURCE_DIR}\"")
|
||||
|
||||
# Exclude from 'make all' and 'make install'
|
||||
set_target_properties(${script_name} PROPERTIES EXCLUDE_FROM_ALL ON)
|
||||
|
||||
# Configure target folder (for MSVC and Xcode)
|
||||
set_property(TARGET ${script_name} PROPERTY FOLDER "Unit tests/${groupName}")
|
||||
endforeach()
|
||||
else()
|
||||
# Create single unit test exe from all test scripts
|
||||
set(target_name check_${groupName}_program)
|
||||
|
||||
# Add executable
|
||||
add_executable(${target_name} ${script_srcs} ${script_headers})
|
||||
target_link_libraries(${target_name} CppUnitLite ${linkLibraries})
|
||||
|
||||
# Only have a main function in one script - use preprocessor
|
||||
set(rest_script_srcs ${script_srcs})
|
||||
list(REMOVE_AT rest_script_srcs 0)
|
||||
set_property(SOURCE ${rest_script_srcs} APPEND PROPERTY COMPILE_DEFINITIONS "main=static no_main")
|
||||
|
||||
# Add target dependencies
|
||||
add_test(NAME ${target_name} COMMAND ${target_name})
|
||||
add_dependencies(check.${groupName} ${target_name})
|
||||
add_dependencies(check ${target_name})
|
||||
|
||||
# Add TOPSRCDIR
|
||||
set_property(SOURCE ${script_srcs} APPEND PROPERTY COMPILE_DEFINITIONS "TOPSRCDIR=\"${PROJECT_SOURCE_DIR}\"")
|
||||
|
||||
# Excluse from 'make all' and 'make install'
|
||||
set_target_properties(${target_name} PROPERTIES EXCLUDE_FROM_ALL ON)
|
||||
|
||||
# Configure target folder (for MSVC and Xcode)
|
||||
set_property(TARGET ${script_name} PROPERTY FOLDER "Unit tests")
|
||||
endif()
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
# Macro for adding categorized tests in a "tests" folder, with
|
||||
# optional exclusion of tests and convenience library linking options
|
||||
#
|
||||
|
|
|
@ -5,16 +5,8 @@ install(FILES ${base_headers} DESTINATION include/gtsam/base)
|
|||
file(GLOB base_headers_tree "treeTraversal/*.h")
|
||||
install(FILES ${base_headers_tree} DESTINATION include/gtsam/base/treeTraversal)
|
||||
|
||||
# Files to exclude from compilation of tests and timing scripts
|
||||
set(base_excluded_files
|
||||
# "${CMAKE_CURRENT_SOURCE_DIR}/tests/testTypedDiscreteFactor.cpp" # Example of excluding a test
|
||||
# "" # Add to this list, with full path, to exclude
|
||||
)
|
||||
|
||||
# Build tests
|
||||
if (GTSAM_BUILD_TESTS)
|
||||
gtsam_add_subdir_tests(base "gtsam" "gtsam" "${base_excluded_files}")
|
||||
endif(GTSAM_BUILD_TESTS)
|
||||
add_subdirectory(tests)
|
||||
|
||||
# Build timing scripts
|
||||
if (GTSAM_BUILD_TIMING)
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
gtsamAddTestsGlob(base "test*.cpp" "" "gtsam")
|
|
@ -4,13 +4,8 @@ file(GLOB discrete_headers "*.h")
|
|||
# FIXME: exclude headers
|
||||
install(FILES ${discrete_headers} DESTINATION include/gtsam/discrete)
|
||||
|
||||
# Exclude tests that don't work
|
||||
set (discrete_excluded_tests "")
|
||||
|
||||
# Add all tests
|
||||
if (GTSAM_BUILD_TESTS)
|
||||
gtsam_add_subdir_tests(discrete "gtsam" "gtsam" "${discrete_excluded_tests}")
|
||||
endif()
|
||||
add_subdirectory(tests)
|
||||
|
||||
# Build timing scripts
|
||||
#if (GTSAM_BUILD_TIMING)
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
gtsamAddTestsGlob(discrete "test*.cpp" "" "gtsam")
|
|
@ -2,16 +2,8 @@
|
|||
file(GLOB geometry_headers "*.h")
|
||||
install(FILES ${geometry_headers} DESTINATION include/gtsam/geometry)
|
||||
|
||||
# Files to exclude from compilation of tests and timing scripts
|
||||
set(geometry_excluded_files
|
||||
# "${CMAKE_CURRENT_SOURCE_DIR}/tests/testTypedDiscreteFactor.cpp" # Example of excluding a test
|
||||
"" # Add to this list, with full path, to exclude
|
||||
)
|
||||
|
||||
# Build tests
|
||||
if (GTSAM_BUILD_TESTS)
|
||||
gtsam_add_subdir_tests(geometry "gtsam" "gtsam" "${geometry_excluded_files}")
|
||||
endif(GTSAM_BUILD_TESTS)
|
||||
add_subdirectory(tests)
|
||||
|
||||
# Build timing scripts
|
||||
if (GTSAM_BUILD_TIMING)
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
gtsamAddTestsGlob(geometry "test*.cpp" "" "gtsam")
|
|
@ -2,16 +2,8 @@
|
|||
file(GLOB inference_headers "*.h")
|
||||
install(FILES ${inference_headers} DESTINATION include/gtsam/inference)
|
||||
|
||||
# Files to exclude from compilation of tests and timing scripts
|
||||
set(inference_excluded_files
|
||||
# "${CMAKE_CURRENT_SOURCE_DIR}/tests/testTypedDiscreteFactor.cpp" # Example of excluding a test
|
||||
"" # Add to this list, with full path, to exclude
|
||||
)
|
||||
|
||||
# Build tests
|
||||
if (GTSAM_BUILD_TESTS)
|
||||
gtsam_add_subdir_tests(inference "gtsam" "gtsam" "${inference_excluded_files}")
|
||||
endif(GTSAM_BUILD_TESTS)
|
||||
add_subdirectory(tests)
|
||||
|
||||
# Build timing scripts
|
||||
if (GTSAM_BUILD_TIMING)
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
gtsamAddTestsGlob(inference "test*.cpp" "" "gtsam")
|
|
@ -2,21 +2,8 @@
|
|||
file(GLOB linear_headers "*.h")
|
||||
install(FILES ${linear_headers} DESTINATION include/gtsam/linear)
|
||||
|
||||
# Files to exclude from compilation of tests and timing scripts
|
||||
set(linear_excluded_files
|
||||
# "${CMAKE_CURRENT_SOURCE_DIR}/tests/testTypedDiscreteFactor.cpp" # Example of excluding a test
|
||||
# "" # Add to this list, with full path, to exclude
|
||||
)
|
||||
|
||||
# Build tests
|
||||
if (GTSAM_BUILD_TESTS)
|
||||
gtsam_add_subdir_tests(linear "gtsam" "gtsam" "${linear_excluded_files}")
|
||||
endif(GTSAM_BUILD_TESTS)
|
||||
|
||||
if(MSVC)
|
||||
set_property(SOURCE "${CMAKE_CURRENT_SOURCE_DIR}/tests/testSerializationLinear.cpp"
|
||||
APPEND PROPERTY COMPILE_FLAGS "/bigobj")
|
||||
endif()
|
||||
add_subdirectory(tests)
|
||||
|
||||
# Build timing scripts
|
||||
if (GTSAM_BUILD_TIMING)
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
gtsamAddTestsGlob(linear "test*.cpp" "" "gtsam")
|
||||
|
||||
if(MSVC)
|
||||
set_property(SOURCE "${CMAKE_CURRENT_SOURCE_DIR}/testSerializationLinear.cpp"
|
||||
APPEND PROPERTY COMPILE_FLAGS "/bigobj")
|
||||
endif()
|
|
@ -2,13 +2,8 @@
|
|||
file(GLOB navigation_headers "*.h")
|
||||
install(FILES ${navigation_headers} DESTINATION include/gtsam/navigation)
|
||||
|
||||
# Exclude tests that don't work
|
||||
set (navigation_excluded_tests "")
|
||||
|
||||
# Add all tests
|
||||
if (GTSAM_BUILD_TESTS)
|
||||
gtsam_add_subdir_tests(navigation "gtsam" "gtsam" "${navigation_excluded_tests}")
|
||||
endif()
|
||||
add_subdirectory(tests)
|
||||
|
||||
# Build timing scripts
|
||||
if (GTSAM_BUILD_TIMING)
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
gtsamAddTestsGlob(navigation "test*.cpp" "" "gtsam")
|
|
@ -2,16 +2,8 @@
|
|||
file(GLOB nonlinear_headers "*.h")
|
||||
install(FILES ${nonlinear_headers} DESTINATION include/gtsam/nonlinear)
|
||||
|
||||
# Files to exclude from compilation of tests and timing scripts
|
||||
set(nonlinear_excluded_files
|
||||
# "${CMAKE_CURRENT_SOURCE_DIR}/tests/testTypedDiscreteFactor.cpp" # Example of excluding a test
|
||||
"" # Add to this list, with full path, to exclude
|
||||
)
|
||||
|
||||
# Build tests
|
||||
if (GTSAM_BUILD_TESTS)
|
||||
gtsam_add_subdir_tests(nonlinear "gtsam" "gtsam" "${nonlinear_excluded_files}")
|
||||
endif(GTSAM_BUILD_TESTS)
|
||||
add_subdirectory(tests)
|
||||
|
||||
# Build timing scripts
|
||||
if (GTSAM_BUILD_TIMING)
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
gtsamAddTestsGlob(nonlinear "test*.cpp" "" "gtsam")
|
|
@ -4,19 +4,10 @@ set (slam_excluded_headers #"")
|
|||
)
|
||||
|
||||
file(GLOB slam_headers "*.h")
|
||||
list(REMOVE_ITEM slam_headers ${slam_excluded_headers})
|
||||
install(FILES ${slam_headers} DESTINATION include/gtsam/slam)
|
||||
|
||||
# Files to exclude from compilation of tests and timing scripts
|
||||
set(slam_excluded_files
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/tests/testSerialization.cpp"
|
||||
# "" # Add to this list, with full path, to exclude
|
||||
)
|
||||
|
||||
# Build tests
|
||||
if (GTSAM_BUILD_TESTS)
|
||||
gtsam_add_subdir_tests(slam "gtsam" "gtsam" "${slam_excluded_files}")
|
||||
endif(GTSAM_BUILD_TESTS)
|
||||
add_subdirectory(tests)
|
||||
|
||||
# Build timing scripts
|
||||
if (GTSAM_BUILD_TIMING)
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
# Files to exclude
|
||||
set(slam_excluded_files
|
||||
testSerialization.cpp
|
||||
)
|
||||
|
||||
gtsamAddTestsGlob(slam "test*.cpp" "${slam_excluded_files}" "gtsam")
|
|
@ -2,16 +2,8 @@
|
|||
file(GLOB symbolic_headers "*.h")
|
||||
install(FILES ${symbolic_headers} DESTINATION include/gtsam/symbolic)
|
||||
|
||||
# Files to exclude from compilation of tests and timing scripts
|
||||
set(symbolic_excluded_files
|
||||
# "${CMAKE_CURRENT_SOURCE_DIR}/tests/testTypedDiscreteFactor.cpp" # Example of excluding a test
|
||||
"" # Add to this list, with full path, to exclude
|
||||
)
|
||||
|
||||
# Build tests
|
||||
if (GTSAM_BUILD_TESTS)
|
||||
gtsam_add_subdir_tests(symbolic "gtsam" "gtsam" "${symbolic_excluded_files}")
|
||||
endif(GTSAM_BUILD_TESTS)
|
||||
add_subdirectory(tests)
|
||||
|
||||
# Build timing scripts
|
||||
if (GTSAM_BUILD_TIMING)
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
gtsamAddTestsGlob(symbolic "test*.cpp" "" "gtsam")
|
|
@ -2,16 +2,8 @@
|
|||
file(GLOB base_headers "*.h")
|
||||
install(FILES ${base_headers} DESTINATION include/gtsam_unstable/base)
|
||||
|
||||
set (base_full_libs
|
||||
gtsam
|
||||
gtsam_unstable)
|
||||
|
||||
# Exclude tests that don't work
|
||||
set (base_excluded_tests "")
|
||||
|
||||
# Add all tests
|
||||
gtsam_add_subdir_tests(base_unstable "${base_full_libs}" "${base_full_libs}" "${base_excluded_tests}")
|
||||
add_dependencies(check.unstable check.base_unstable)
|
||||
add_subdirectory(tests)
|
||||
|
||||
# Build timing scripts
|
||||
if (GTSAM_BUILD_TIMING)
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
gtsamAddTestsGlob(base_unstable "test*.cpp" "" "gtsam_unstable")
|
|
@ -2,19 +2,8 @@
|
|||
file(GLOB discrete_headers "*.h")
|
||||
install(FILES ${discrete_headers} DESTINATION include/gtsam_unstable/discrete)
|
||||
|
||||
set (discrete_full_libs
|
||||
gtsam
|
||||
gtsam_unstable)
|
||||
|
||||
# Exclude tests that don't work
|
||||
#set (discrete_excluded_tests
|
||||
#"${CMAKE_CURRENT_SOURCE_DIR}/tests/testScheduler.cpp"
|
||||
#)
|
||||
|
||||
|
||||
# Add all tests
|
||||
gtsam_add_subdir_tests(discrete_unstable "${discrete_full_libs}" "${discrete_full_libs}" "${discrete_excluded_tests}")
|
||||
add_dependencies(check.unstable check.discrete_unstable)
|
||||
add_subdirectory(tests)
|
||||
|
||||
# List examples to build - comment out here to exclude from compilation
|
||||
set(discrete_unstable_examples
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
gtsamAddTestsGlob(discrete_unstable "test*.cpp" "" "gtsam_unstable")
|
|
@ -2,14 +2,5 @@
|
|||
file(GLOB dynamics_headers "*.h")
|
||||
install(FILES ${dynamics_headers} DESTINATION include/gtsam_unstable/dynamics)
|
||||
|
||||
# Components to link tests in this subfolder against
|
||||
set (dynamics_full_libs
|
||||
gtsam
|
||||
gtsam_unstable)
|
||||
|
||||
# Exclude tests that don't work
|
||||
set (dynamics_excluded_tests "")
|
||||
|
||||
# Add all tests
|
||||
gtsam_add_subdir_tests(dynamics_unstable "${dynamics_full_libs}" "${dynamics_full_libs}" "${dynamics_excluded_tests}")
|
||||
add_dependencies(check.unstable check.dynamics_unstable)
|
||||
add_subdirectory(tests)
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
gtsamAddTestsGlob(dynamics_unstable "test*.cpp" "" "gtsam_unstable")
|
|
@ -2,14 +2,5 @@
|
|||
file(GLOB geometry_headers "*.h")
|
||||
install(FILES ${geometry_headers} DESTINATION include/gtsam_unstable/geometry)
|
||||
|
||||
# Components to link tests in this subfolder against
|
||||
set (geometry_full_libs
|
||||
gtsam
|
||||
gtsam_unstable)
|
||||
|
||||
# Exclude tests that don't work
|
||||
set (geometry_excluded_tests "")
|
||||
|
||||
# Add all tests
|
||||
gtsam_add_subdir_tests(geometry_unstable "${geometry_full_libs}" "${geometry_full_libs}" "${geometry_excluded_tests}")
|
||||
add_dependencies(check.unstable check.geometry_unstable)
|
||||
add_subdirectory(tests)
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
gtsamAddTestsGlob(geometry_unstable "test*.cpp" "" "gtsam_unstable")
|
|
@ -2,18 +2,5 @@
|
|||
file(GLOB nonlinear_headers "*.h")
|
||||
install(FILES ${nonlinear_headers} DESTINATION include/gtsam_unstable/nonlinear)
|
||||
|
||||
# Components to link tests in this subfolder against
|
||||
set (nonlinear_full_libs
|
||||
gtsam
|
||||
gtsam_unstable)
|
||||
|
||||
# Exclude tests that don't work
|
||||
set (nonlinear_excluded_tests #"")
|
||||
#"${CMAKE_CURRENT_SOURCE_DIR}/tests/testConcurrentIncrementalFilter.cpp"
|
||||
#"${CMAKE_CURRENT_SOURCE_DIR}/tests/testIncrementalFixedLagSmoother.cpp"
|
||||
)
|
||||
|
||||
|
||||
# Add all tests
|
||||
gtsam_add_subdir_tests(nonlinear_unstable "${nonlinear_full_libs}" "${nonlinear_full_libs}" "${nonlinear_excluded_tests}")
|
||||
add_dependencies(check.unstable check.nonlinear_unstable)
|
||||
add_subdirectory(tests)
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
gtsamAddTestsGlob(nonlinear_unstable "test*.cpp" "" "gtsam_unstable")
|
|
@ -7,16 +7,5 @@ file(GLOB slam_headers "*.h")
|
|||
list(REMOVE_ITEM slam_headers ${slam_excluded_headers})
|
||||
install(FILES ${slam_headers} DESTINATION include/gtsam_unstable/slam)
|
||||
|
||||
# Components to link tests in this subfolder against
|
||||
set (slam_full_libs
|
||||
gtsam
|
||||
gtsam_unstable)
|
||||
|
||||
# Exclude tests that don't work
|
||||
set (slam_excluded_tests
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/tests/testSerialization.cpp"
|
||||
# "" # Add to this list, with full path, to exclude
|
||||
)
|
||||
# Add all tests
|
||||
gtsam_add_subdir_tests(slam_unstable "${slam_full_libs}" "${slam_full_libs}" "${slam_excluded_tests}")
|
||||
add_dependencies(check.unstable check.slam_unstable)
|
||||
add_subdirectory(tests)
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
|
||||
# Exclude tests that don't work
|
||||
set (slam_excluded_tests
|
||||
testSerialization.cpp
|
||||
)
|
||||
|
||||
gtsamAddTestsGlob(slam_unstable "test*.cpp" "${slam_excluded_tests}" "gtsam_unstable")
|
|
@ -1,31 +1,19 @@
|
|||
# Assemble local libraries
|
||||
set (tests_full_libs
|
||||
gtsam
|
||||
CppUnitLite)
|
||||
|
||||
# exclude certain files
|
||||
# note the source dir on each
|
||||
set (tests_exclude
|
||||
#"${CMAKE_CURRENT_SOURCE_DIR}/testOccupancyGrid.cpp"
|
||||
)
|
||||
set (tests_exclude "")
|
||||
|
||||
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") # might not be best test - Richard & Jason & Frank
|
||||
# clang linker segfaults on large testSerializationSLAM
|
||||
list (APPEND tests_exclude "${CMAKE_CURRENT_SOURCE_DIR}/testSerializationSLAM.cpp")
|
||||
list (APPEND tests_exclude "testSerializationSLAM.cpp")
|
||||
endif()
|
||||
|
||||
# Build tests
|
||||
if (GTSAM_BUILD_TESTS)
|
||||
# Subdirectory target for tests
|
||||
add_custom_target(check.tests COMMAND ${CMAKE_CTEST_COMMAND})
|
||||
set(is_test TRUE)
|
||||
gtsamAddTestsGlob(tests "test*.cpp" "${tests_exclude}" "gtsam")
|
||||
|
||||
# Build grouped tests
|
||||
gtsam_add_grouped_scripts("tests" # Use subdirectory as group label
|
||||
"test*.cpp;*.h" check "Test" # Standard for all tests
|
||||
"${tests_full_libs}" "${tests_full_libs}" "${tests_exclude}" # Pass in linking and exclusion lists
|
||||
${is_test}) # Set all as tests
|
||||
endif (GTSAM_BUILD_TESTS)
|
||||
if(MSVC)
|
||||
set_property(SOURCE "${CMAKE_CURRENT_SOURCE_DIR}/testSerializationSLAM.cpp"
|
||||
APPEND PROPERTY COMPILE_FLAGS "/bigobj")
|
||||
endif()
|
||||
|
||||
# Build timing scripts
|
||||
if (GTSAM_BUILD_TIMING)
|
||||
|
@ -39,8 +27,3 @@ if (GTSAM_BUILD_TIMING)
|
|||
"${tests_full_libs}" "${tests_full_libs}" "${tests_exclude}" # Pass in linking and exclusion lists
|
||||
${is_test})
|
||||
endif (GTSAM_BUILD_TIMING)
|
||||
|
||||
if(MSVC)
|
||||
set_property(SOURCE "${CMAKE_CURRENT_SOURCE_DIR}/testSerializationSLAM.cpp"
|
||||
APPEND PROPERTY COMPILE_FLAGS "/bigobj")
|
||||
endif()
|
||||
|
|
|
@ -31,9 +31,5 @@ set(GTSAM_EXPORTED_TARGETS "${GTSAM_EXPORTED_TARGETS}" PARENT_SCOPE)
|
|||
install(FILES matlab.h DESTINATION include/wrap)
|
||||
|
||||
# Build tests
|
||||
if (GTSAM_BUILD_TESTS)
|
||||
set(wrap_local_libs wrap_lib ${WRAP_BOOST_LIBRARIES})
|
||||
gtsam_add_subdir_tests("wrap" "${wrap_local_libs}" "${wrap_local_libs}" "")
|
||||
endif(GTSAM_BUILD_TESTS)
|
||||
|
||||
add_subdirectory(tests)
|
||||
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
gtsamAddTestsGlob(wrap "test*.cpp" "" "wrap_lib")
|
Loading…
Reference in New Issue