Merged in feature/adding-scripts-simplify (pull request #7)
This makes the following changes: * Does away with convenience libraries (they didn't work and weren't used anyway, and slowed down compile times). * Puts CMakeLists.txt files in tests and examples subdirectories to have more standard CMake structure. * Replaces confusing functions for adding tests/examples with 2 new much clearer functions.release/4.3a0
commit
63b42fdaf8
|
@ -46,9 +46,7 @@ endif()
|
||||||
# Set up options
|
# Set up options
|
||||||
|
|
||||||
# Configurable 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_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)
|
if(GTSAM_UNSTABLE_AVAILABLE)
|
||||||
option(GTSAM_BUILD_UNSTABLE "Enable/Disable libgtsam_unstable" ON)
|
option(GTSAM_BUILD_UNSTABLE "Enable/Disable libgtsam_unstable" ON)
|
||||||
endif()
|
endif()
|
||||||
|
@ -83,18 +81,6 @@ endif()
|
||||||
set(CPACK_SOURCE_GENERATOR "TGZ" CACHE STRING "CPack Default Source Generator")
|
set(CPACK_SOURCE_GENERATOR "TGZ" CACHE STRING "CPack Default Source Generator")
|
||||||
set(CPACK_GENERATOR "TGZ" CACHE STRING "CPack Default Binary Generator")
|
set(CPACK_GENERATOR "TGZ" CACHE STRING "CPack Default Binary Generator")
|
||||||
|
|
||||||
# Flags to determine whether tests and 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
|
|
||||||
if (GTSAM_BUILD_TESTS)
|
|
||||||
enable_testing()
|
|
||||||
include(Dart)
|
|
||||||
include(CTest)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# Find boost
|
# Find boost
|
||||||
|
|
||||||
|
@ -365,19 +351,17 @@ set(CPACK_DEBIAN_PACKAGE_DEPENDS "libboost-dev (>= 1.43)") #Example: "libc6 (>=
|
||||||
message(STATUS "===============================================================")
|
message(STATUS "===============================================================")
|
||||||
message(STATUS "================ Configuration Options ======================")
|
message(STATUS "================ Configuration Options ======================")
|
||||||
message(STATUS "Build flags ")
|
message(STATUS "Build flags ")
|
||||||
print_config_flag(${GTSAM_BUILD_TIMING} "Build Timing scripts ")
|
|
||||||
print_config_flag(${GTSAM_BUILD_EXAMPLES} "Build Examples ")
|
|
||||||
print_config_flag(${GTSAM_BUILD_TESTS} "Build Tests ")
|
print_config_flag(${GTSAM_BUILD_TESTS} "Build Tests ")
|
||||||
|
print_config_flag(${GTSAM_BUILD_EXAMPLES_ALWAYS} "Build examples with 'make all' ")
|
||||||
|
print_config_flag(${GTSAM_BUILD_TIMING} "Build Timing scripts ")
|
||||||
if (DOXYGEN_FOUND)
|
if (DOXYGEN_FOUND)
|
||||||
print_config_flag(${GTSAM_BUILD_DOCS} "Build Docs ")
|
print_config_flag(${GTSAM_BUILD_DOCS} "Build Docs ")
|
||||||
endif()
|
endif()
|
||||||
print_config_flag(${GTSAM_BUILD_STATIC_LIBRARY} "Build static GTSAM library instead of shared")
|
print_config_flag(${GTSAM_BUILD_STATIC_LIBRARY} "Build static GTSAM library instead of shared")
|
||||||
print_config_flag(${GTSAM_BUILD_TYPE_POSTFIXES} "Put build type in library name ")
|
print_config_flag(${GTSAM_BUILD_TYPE_POSTFIXES} "Put build type in library name ")
|
||||||
if(GTSAM_UNSTABLE_AVAILABLE)
|
if(GTSAM_UNSTABLE_AVAILABLE)
|
||||||
print_config_flag(${GTSAM_BUILD_UNSTABLE} "Build libgtsam_unstable ")
|
print_config_flag(${GTSAM_BUILD_UNSTABLE} "Build libgtsam_unstable ")
|
||||||
endif()
|
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)
|
string(TOUPPER "${CMAKE_BUILD_TYPE}" cmake_build_type_toupper)
|
||||||
if(NOT MSVC AND NOT XCODE_VERSION)
|
if(NOT MSVC AND NOT XCODE_VERSION)
|
||||||
message(STATUS " Build type : ${CMAKE_BUILD_TYPE}")
|
message(STATUS " Build type : ${CMAKE_BUILD_TYPE}")
|
||||||
|
|
|
@ -102,7 +102,7 @@ if( NOT cmake_build_type_tolower STREQUAL ""
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Mark that first pass is done
|
# Mark that first pass is done
|
||||||
set(FIRST_PASS_DONE TRUE CACHE BOOL "Internally used to mark whether cmake has been run multiple times" FORCE)
|
set(FIRST_PASS_DONE TRUE CACHE INTERNAL "Internally used to mark whether cmake has been run multiple times")
|
||||||
mark_as_advanced(FIRST_PASS_DONE)
|
mark_as_advanced(FIRST_PASS_DONE)
|
||||||
|
|
||||||
# Enable Visual Studio solution folders
|
# Enable Visual Studio solution folders
|
||||||
|
|
|
@ -1,111 +1,204 @@
|
||||||
# Build macros for using tests
|
# This file defines the two macros below for easily adding groups of unit tests and scripts,
|
||||||
|
# as well as sets up unit testing and defines several cache options used to control how
|
||||||
|
# tests and scripts are built and run.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Macro:
|
||||||
|
#
|
||||||
|
# gtsamAddTestsGlob(groupName globPatterns excludedFiles linkLibraries)
|
||||||
|
#
|
||||||
|
# Add a group of unit tests. A list of unit test .cpp files or glob patterns specifies the
|
||||||
|
# tests to create. Tests are assigned into a group name so they can easily by run
|
||||||
|
# independently with a make target. Running 'make check' builds and runs all tests.
|
||||||
|
#
|
||||||
|
# Usage example:
|
||||||
|
# gtsamAddTestsGlob(basic "test*.cpp" "testBroken.cpp" "gtsam;GeographicLib")
|
||||||
|
#
|
||||||
|
# Arguments:
|
||||||
|
# groupName: A name that will allow this group of tests to be run independently, e.g.
|
||||||
|
# 'basic' causes a 'check.basic' target to be created to run this test
|
||||||
|
# group.
|
||||||
|
# globPatterns: The list of files or glob patterns from which to create unit tests, with
|
||||||
|
# one test created for each cpp file. e.g. "test*.cpp", or
|
||||||
|
# "testA*.cpp;testB*.cpp;testOneThing.cpp".
|
||||||
|
# excludedFiles: A list of files or globs to exclude, e.g. "testC*.cpp;testBroken.cpp".
|
||||||
|
# Pass an empty string "" if nothing needs to be excluded.
|
||||||
|
# linkLibraries: The list of libraries to link to in addition to CppUnitLite.
|
||||||
|
macro(gtsamAddTestsGlob groupName globPatterns excludedFiles linkLibraries)
|
||||||
|
gtsamAddTestsGlob_impl("${groupName}" "${globPatterns}" "${excludedFiles}" "${linkLibraries}")
|
||||||
|
endmacro()
|
||||||
|
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Macro:
|
||||||
|
#
|
||||||
|
# gtsamAddExamplesGlob(globPatterns excludedFiles linkLibraries)
|
||||||
|
#
|
||||||
|
# Add scripts that will serve as examples of how to use the library. A list of files or
|
||||||
|
# glob patterns is specified, and one executable will be created for each matching .cpp
|
||||||
|
# file. These executables will not be installed. They are build with 'make all' if
|
||||||
|
# GTSAM_BUILD_EXAMPLES_ALWAYS is enabled. They may also be built with 'make examples'.
|
||||||
|
#
|
||||||
|
# Usage example:
|
||||||
|
# gtsamAddExamplesGlob("*.cpp" "BrokenExample.cpp" "gtsam;GeographicLib")
|
||||||
|
#
|
||||||
|
# Arguments:
|
||||||
|
# globPatterns: The list of files or glob patterns from which to create unit tests, with
|
||||||
|
# one test created for each cpp file. e.g. "*.cpp", or
|
||||||
|
# "A*.cpp;B*.cpp;MyExample.cpp".
|
||||||
|
# excludedFiles: A list of files or globs to exclude, e.g. "C*.cpp;BrokenExample.cpp". Pass
|
||||||
|
# an empty string "" if nothing needs to be excluded.
|
||||||
|
# linkLibraries: The list of libraries to link to.
|
||||||
|
macro(gtsamAddExamplesGlob globPatterns excludedFiles linkLibraries)
|
||||||
|
gtsamAddExamplesGlob_impl("${globPatterns}" "${excludedFiles}" "${linkLibraries}")
|
||||||
|
endmacro()
|
||||||
|
|
||||||
|
|
||||||
|
# Implementation follows:
|
||||||
|
|
||||||
|
# Build macros for using tests
|
||||||
enable_testing()
|
enable_testing()
|
||||||
|
|
||||||
# Enable make check (http://www.cmake.org/Wiki/CMakeEmulateMakeCheck)
|
option(GTSAM_BUILD_TESTS "Enable/Disable building of tests" ON)
|
||||||
add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION> --output-on-failure)
|
option(GTSAM_BUILD_EXAMPLES_ALWAYS "Build examples with 'make all' (build with 'make examples' if not)" ON)
|
||||||
add_custom_target(timing)
|
|
||||||
|
|
||||||
# Add option for combining unit tests
|
# Add option for combining unit tests
|
||||||
if(MSVC)
|
if(MSVC OR XCODE_VERSION)
|
||||||
option(GTSAM_SINGLE_TEST_EXE "Combine unit tests into single executable (faster compile)" ON)
|
option(GTSAM_SINGLE_TEST_EXE "Combine unit tests into single executable (faster compile)" ON)
|
||||||
else()
|
else()
|
||||||
option(GTSAM_SINGLE_TEST_EXE "Combine unit tests into single executable (faster compile)" OFF)
|
option(GTSAM_SINGLE_TEST_EXE "Combine unit tests into single executable (faster compile)" OFF)
|
||||||
endif()
|
endif()
|
||||||
|
mark_as_advanced(GTSAM_SINGLE_TEST_EXE)
|
||||||
|
|
||||||
# Macro for adding categorized tests in a "tests" folder, with
|
# Enable make check (http://www.cmake.org/Wiki/CMakeEmulateMakeCheck)
|
||||||
# optional exclusion of tests and convenience library linking options
|
if(GTSAM_BUILD_TESTS)
|
||||||
#
|
add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION> --output-on-failure)
|
||||||
# By default, all tests are linked with CppUnitLite and boost
|
endif()
|
||||||
# Arguments:
|
|
||||||
# - subdir The name of the category for this test
|
|
||||||
# - local_libs A list of convenience libraries to use (if GTSAM_BUILD_CONVENIENCE_LIBRARIES is true)
|
|
||||||
# - full_libs The main library to link against if not using convenience libraries
|
|
||||||
# - excluded_tests A list of test files that should not be compiled - use for debugging
|
|
||||||
function(gtsam_add_subdir_tests subdir local_libs full_libs excluded_tests)
|
|
||||||
# Subdirectory target for tests
|
|
||||||
add_custom_target(check.${subdir} COMMAND ${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION> --output-on-failure)
|
|
||||||
set(is_test TRUE)
|
|
||||||
|
|
||||||
# Put check target in Visual Studio solution folder
|
# Add examples target
|
||||||
file(RELATIVE_PATH relative_path "${PROJECT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}")
|
add_custom_target(examples)
|
||||||
set_property(TARGET check.${subdir} PROPERTY FOLDER "${relative_path}")
|
|
||||||
|
|
||||||
# Link with CppUnitLite - pulled from gtsam installation
|
|
||||||
list(APPEND local_libs CppUnitLite)
|
|
||||||
list(APPEND full_libs CppUnitLite)
|
|
||||||
|
|
||||||
# Build grouped tests
|
# Include obsolete macros - will be removed in the near future
|
||||||
gtsam_add_grouped_scripts("${subdir}" # Use subdirectory as group label
|
include(GtsamTestingObsolete)
|
||||||
"tests/test*.cpp" check "Test" # Standard for all tests
|
|
||||||
"${local_libs}"
|
|
||||||
"${full_libs}" "${excluded_tests}" # Pass in linking and exclusion lists
|
|
||||||
${is_test}) # Set all as tests
|
|
||||||
endfunction()
|
|
||||||
|
|
||||||
# Macro for adding categorized timing scripts in a "tests" folder, with
|
|
||||||
# optional exclusion of tests and convenience library linking options
|
|
||||||
#
|
|
||||||
# By default, all tests are linked with boost
|
|
||||||
# Arguments:
|
|
||||||
# - subdir The name of the category for this timing script
|
|
||||||
# - local_libs A list of convenience libraries to use (if GTSAM_BUILD_CONVENIENCE_LIBRARIES is true)
|
|
||||||
# - full_libs The main library to link against if not using convenience libraries
|
|
||||||
# - excluded_srcs A list of timing files that should not be compiled - use for debugging
|
|
||||||
macro(gtsam_add_subdir_timing subdir local_libs full_libs excluded_srcs)
|
|
||||||
# Subdirectory target for timing - does not actually execute the scripts
|
|
||||||
add_custom_target(timing.${subdir})
|
|
||||||
set(is_test FALSE)
|
|
||||||
|
|
||||||
# Build grouped benchmarks
|
# Implementations of this file's macros:
|
||||||
gtsam_add_grouped_scripts("${subdir}" # Use subdirectory as group label
|
|
||||||
"tests/time*.cpp" timing "Timing Benchmark" # Standard for all timing scripts
|
macro(gtsamAddTestsGlob_impl groupName globPatterns excludedFiles linkLibraries)
|
||||||
"${local_libs}" "${full_libs}" "${excluded_srcs}" # Pass in linking and exclusion lists
|
if(GTSAM_BUILD_TESTS)
|
||||||
${is_test}) # Treat as not a test
|
# 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
|
||||||
|
file(GLOB script_files ${globPatterns})
|
||||||
|
|
||||||
|
# Remove excluded scripts from the list
|
||||||
|
if(NOT "${excludedFiles}" STREQUAL "")
|
||||||
|
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()
|
||||||
|
|
||||||
|
# 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)
|
||||||
|
# Default for Makefiles - each test in its own executable
|
||||||
|
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()
|
||||||
|
# Default on MSVC and XCode - combine test group into a single exectuable
|
||||||
|
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}\"")
|
||||||
|
|
||||||
|
# Exclude 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()
|
endmacro()
|
||||||
|
|
||||||
# Macro for adding executables matching a pattern - builds one executable for
|
|
||||||
# each file matching the pattern. These exectuables are automatically linked
|
|
||||||
# with boost.
|
|
||||||
# Arguments:
|
|
||||||
# - pattern The glob pattern to match source files
|
|
||||||
# - local_libs A list of convenience libraries to use (if GTSAM_BUILD_CONVENIENCE_LIBRARIES is true)
|
|
||||||
# - full_libs The main library to link against if not using convenience libraries
|
|
||||||
# - excluded_srcs A list of timing files that should not be compiled - use for debugging
|
|
||||||
function(gtsam_add_executables pattern local_libs full_libs excluded_srcs)
|
|
||||||
set(is_test FALSE)
|
|
||||||
|
|
||||||
if(NOT excluded_srcs)
|
|
||||||
set(excluded_srcs "")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Build executables
|
|
||||||
gtsam_add_grouped_scripts("" "${pattern}" "" "Executable" "${local_libs}" "${full_libs}" "${excluded_srcs}" ${is_test})
|
|
||||||
endfunction()
|
|
||||||
|
|
||||||
# General-purpose script for adding tests with categories and linking options
|
macro(gtsamAddExamplesGlob_impl globPatterns excludedFiles linkLibraries)
|
||||||
macro(gtsam_add_grouped_scripts group pattern target_prefix pretty_prefix_name local_libs full_libs excluded_srcs is_test)
|
|
||||||
# Get all script files
|
# Get all script files
|
||||||
set(script_files "")
|
file(GLOB script_files ${globPatterns})
|
||||||
foreach(one_pattern ${pattern})
|
|
||||||
file(GLOB one_script_files "${one_pattern}")
|
|
||||||
list(APPEND script_files "${one_script_files}")
|
|
||||||
endforeach()
|
|
||||||
|
|
||||||
# Remove excluded scripts from the list
|
# Remove excluded scripts from the list
|
||||||
set(exclusions "") # Need to copy out exclusion list for logic to work
|
if(NOT "${excludedFiles}" STREQUAL "")
|
||||||
foreach(one_exclusion ${excluded_srcs})
|
file(GLOB excludedFilePaths ${excludedFiles})
|
||||||
file(GLOB one_exclusion_srcs "${one_exclusion}")
|
if("${excludedFilePaths}" STREQUAL "")
|
||||||
list(APPEND exclusions "${one_exclusion_srcs}")
|
message(WARNING "The script exclusion pattern '${excludedFiles}' did not match any files")
|
||||||
endforeach()
|
else()
|
||||||
if(exclusions)
|
list(REMOVE_ITEM script_files ${excludedFilePaths})
|
||||||
list(REMOVE_ITEM script_files ${exclusions})
|
endif()
|
||||||
endif(exclusions)
|
endif()
|
||||||
|
|
||||||
# Separate into source files and headers
|
# Separate into source files and headers (allows for adding headers to show up in
|
||||||
|
# MSVC and Xcode projects).
|
||||||
set(script_srcs "")
|
set(script_srcs "")
|
||||||
set(script_headers "")
|
set(script_headers "")
|
||||||
foreach(script_file ${script_files})
|
foreach(script_file IN ITEMS ${script_files})
|
||||||
get_filename_component(script_ext ${script_file} EXT)
|
get_filename_component(script_ext ${script_file} EXT)
|
||||||
if(script_ext MATCHES "(h|H)")
|
if(script_ext MATCHES "(h|H)")
|
||||||
list(APPEND script_headers ${script_file})
|
list(APPEND script_headers ${script_file})
|
||||||
|
@ -113,94 +206,34 @@ macro(gtsam_add_grouped_scripts group pattern target_prefix pretty_prefix_name l
|
||||||
list(APPEND script_srcs ${script_file})
|
list(APPEND script_srcs ${script_file})
|
||||||
endif()
|
endif()
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
|
|
||||||
# Add targets and dependencies for each script
|
|
||||||
if(NOT "${group}" STREQUAL "")
|
|
||||||
message(STATUS "Adding ${pretty_prefix_name}s in ${group}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Create exe's for each script, unless we're in SINGLE_TEST_EXE mode
|
|
||||||
if(NOT is_test OR NOT GTSAM_SINGLE_TEST_EXE)
|
|
||||||
foreach(script_src ${script_srcs})
|
|
||||||
get_filename_component(script_base ${script_src} NAME_WE)
|
|
||||||
if (script_base) # Check for null filenames and headers
|
|
||||||
set( script_bin ${script_base} )
|
|
||||||
message(STATUS "Adding ${pretty_prefix_name} ${script_bin}")
|
|
||||||
add_executable(${script_bin} ${script_src} ${script_headers})
|
|
||||||
if(NOT "${target_prefix}" STREQUAL "")
|
|
||||||
if(NOT "${group}" STREQUAL "")
|
|
||||||
add_dependencies(${target_prefix}.${group} ${script_bin})
|
|
||||||
endif()
|
|
||||||
add_dependencies(${target_prefix} ${script_bin})
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Add TOPSRCDIR
|
|
||||||
set_property(SOURCE ${script_src} APPEND PROPERTY COMPILE_DEFINITIONS "TOPSRCDIR=\"${PROJECT_SOURCE_DIR}\"")
|
|
||||||
|
|
||||||
# Disable building during make all/install
|
# Don't put test files in folders in MSVC and Xcode because they're already grouped
|
||||||
if (GTSAM_DISABLE_TESTS_ON_INSTALL)
|
source_group("" FILES ${script_srcs} ${script_headers})
|
||||||
set_target_properties(${script_bin} PROPERTIES EXCLUDE_FROM_ALL ON)
|
|
||||||
endif()
|
# Create executables
|
||||||
|
foreach(script_src IN ITEMS ${script_srcs})
|
||||||
if (is_test)
|
# Get script base name
|
||||||
add_test(NAME ${script_base} COMMAND ${script_bin})
|
get_filename_component(script_name ${script_src} NAME_WE)
|
||||||
endif()
|
|
||||||
|
# Add executable
|
||||||
# Linking and dependendencies
|
add_executable(${script_name} ${script_src} ${script_headers})
|
||||||
if (GTSAM_BUILD_CONVENIENCE_LIBRARIES)
|
target_link_libraries(${script_name} ${linkLibraries})
|
||||||
target_link_libraries(${script_bin} ${local_libs} ${GTSAM_BOOST_LIBRARIES})
|
|
||||||
else()
|
# Add target dependencies
|
||||||
target_link_libraries(${script_bin} ${full_libs} ${GTSAM_BOOST_LIBRARIES})
|
add_dependencies(examples ${script_name})
|
||||||
endif()
|
if(NOT MSVC AND NOT XCODE_VERSION)
|
||||||
|
add_custom_target(${script_name}.run ${EXECUTABLE_OUTPUT_PATH}${script_name})
|
||||||
# Add .run target
|
|
||||||
if(NOT MSVC AND NOT XCODE_VERSION)
|
|
||||||
add_custom_target(${script_bin}.run ${EXECUTABLE_OUTPUT_PATH}${script_bin} ${ARGN})
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Set up Visual Studio folders
|
|
||||||
file(RELATIVE_PATH relative_path "${PROJECT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}")
|
|
||||||
set_property(TARGET ${script_bin} PROPERTY FOLDER "${relative_path}")
|
|
||||||
endif()
|
|
||||||
endforeach(script_src)
|
|
||||||
|
|
||||||
if(MSVC)
|
|
||||||
source_group("" FILES ${script_srcs} ${script_headers})
|
|
||||||
endif()
|
endif()
|
||||||
else()
|
|
||||||
# Create single unit test exe from all test scripts
|
|
||||||
set(script_bin ${target_prefix}_${group}_prog)
|
|
||||||
add_executable(${script_bin} ${script_srcs} ${script_headers})
|
|
||||||
if (GTSAM_BUILD_CONVENIENCE_LIBRARIES)
|
|
||||||
target_link_libraries(${script_bin} ${local_libs} ${Boost_LIBRARIES})
|
|
||||||
else()
|
|
||||||
target_link_libraries(${script_bin} ${Boost_LIBRARIES} ${full_libs})
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Only have a main function in one script
|
|
||||||
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 TOPSRCDIR
|
# Add TOPSRCDIR
|
||||||
set_property(SOURCE ${script_srcs} APPEND PROPERTY COMPILE_DEFINITIONS "TOPSRCDIR=\"${PROJECT_SOURCE_DIR}\"")
|
set_property(SOURCE ${script_src} APPEND PROPERTY COMPILE_DEFINITIONS "TOPSRCDIR=\"${PROJECT_SOURCE_DIR}\"")
|
||||||
|
|
||||||
# Add test
|
if(NOT GTSAM_BUILD_EXAMPLES_ALWAYS)
|
||||||
add_dependencies(${target_prefix}.${group} ${script_bin})
|
# Exclude from 'make all' and 'make install'
|
||||||
add_dependencies(${target_prefix} ${script_bin})
|
set_target_properties(${target_name} PROPERTIES EXCLUDE_FROM_ALL ON)
|
||||||
add_test(NAME ${target_prefix}.${group} COMMAND ${script_bin})
|
|
||||||
|
|
||||||
# Disable building during make all/install
|
|
||||||
if (GTSAM_DISABLE_TESTS_ON_INSTALL)
|
|
||||||
set_target_properties(${script_bin} PROPERTIES EXCLUDE_FROM_ALL ON)
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Set up Visual Studio folders
|
# Configure target folder (for MSVC and Xcode)
|
||||||
if(MSVC)
|
set_property(TARGET ${script_name} PROPERTY FOLDER "Examples")
|
||||||
file(RELATIVE_PATH relative_path "${PROJECT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}")
|
endforeach()
|
||||||
set_property(TARGET ${script_bin} PROPERTY FOLDER "${relative_path}")
|
|
||||||
source_group("" FILES ${script_srcs} ${script_headers})
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|
|
@ -0,0 +1,195 @@
|
||||||
|
|
||||||
|
# Macro for adding categorized tests in a "tests" folder, with
|
||||||
|
# optional exclusion of tests and convenience library linking options
|
||||||
|
#
|
||||||
|
# By default, all tests are linked with CppUnitLite and boost
|
||||||
|
# Arguments:
|
||||||
|
# - subdir The name of the category for this test
|
||||||
|
# - local_libs A list of convenience libraries to use (if GTSAM_BUILD_CONVENIENCE_LIBRARIES is true)
|
||||||
|
# - full_libs The main library to link against if not using convenience libraries
|
||||||
|
# - excluded_tests A list of test files that should not be compiled - use for debugging
|
||||||
|
function(gtsam_add_subdir_tests subdir local_libs full_libs excluded_tests)
|
||||||
|
# Subdirectory target for tests
|
||||||
|
add_custom_target(check.${subdir} COMMAND ${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION> --output-on-failure)
|
||||||
|
set(is_test TRUE)
|
||||||
|
|
||||||
|
# Put check target in Visual Studio solution folder
|
||||||
|
file(RELATIVE_PATH relative_path "${PROJECT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||||
|
set_property(TARGET check.${subdir} PROPERTY FOLDER "${relative_path}")
|
||||||
|
|
||||||
|
# Link with CppUnitLite - pulled from gtsam installation
|
||||||
|
list(APPEND local_libs CppUnitLite)
|
||||||
|
list(APPEND full_libs CppUnitLite)
|
||||||
|
|
||||||
|
# Build grouped tests
|
||||||
|
gtsam_add_grouped_scripts("${subdir}" # Use subdirectory as group label
|
||||||
|
"tests/test*.cpp" check "Test" # Standard for all tests
|
||||||
|
"${local_libs}"
|
||||||
|
"${full_libs}" "${excluded_tests}" # Pass in linking and exclusion lists
|
||||||
|
${is_test}) # Set all as tests
|
||||||
|
endfunction()
|
||||||
|
|
||||||
|
# Macro for adding categorized timing scripts in a "tests" folder, with
|
||||||
|
# optional exclusion of tests and convenience library linking options
|
||||||
|
#
|
||||||
|
# By default, all tests are linked with boost
|
||||||
|
# Arguments:
|
||||||
|
# - subdir The name of the category for this timing script
|
||||||
|
# - local_libs A list of convenience libraries to use (if GTSAM_BUILD_CONVENIENCE_LIBRARIES is true)
|
||||||
|
# - full_libs The main library to link against if not using convenience libraries
|
||||||
|
# - excluded_srcs A list of timing files that should not be compiled - use for debugging
|
||||||
|
macro(gtsam_add_subdir_timing subdir local_libs full_libs excluded_srcs)
|
||||||
|
# Subdirectory target for timing - does not actually execute the scripts
|
||||||
|
add_custom_target(timing.${subdir})
|
||||||
|
set(is_test FALSE)
|
||||||
|
|
||||||
|
# Build grouped benchmarks
|
||||||
|
gtsam_add_grouped_scripts("${subdir}" # Use subdirectory as group label
|
||||||
|
"tests/time*.cpp" timing "Timing Benchmark" # Standard for all timing scripts
|
||||||
|
"${local_libs}" "${full_libs}" "${excluded_srcs}" # Pass in linking and exclusion lists
|
||||||
|
${is_test}) # Treat as not a test
|
||||||
|
endmacro()
|
||||||
|
|
||||||
|
# Macro for adding executables matching a pattern - builds one executable for
|
||||||
|
# each file matching the pattern. These exectuables are automatically linked
|
||||||
|
# with boost.
|
||||||
|
# Arguments:
|
||||||
|
# - pattern The glob pattern to match source files
|
||||||
|
# - local_libs A list of convenience libraries to use (if GTSAM_BUILD_CONVENIENCE_LIBRARIES is true)
|
||||||
|
# - full_libs The main library to link against if not using convenience libraries
|
||||||
|
# - excluded_srcs A list of timing files that should not be compiled - use for debugging
|
||||||
|
function(gtsam_add_executables pattern local_libs full_libs excluded_srcs)
|
||||||
|
set(is_test FALSE)
|
||||||
|
|
||||||
|
if(NOT excluded_srcs)
|
||||||
|
set(excluded_srcs "")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Build executables
|
||||||
|
gtsam_add_grouped_scripts("" "${pattern}" "" "Executable" "${local_libs}" "${full_libs}" "${excluded_srcs}" ${is_test})
|
||||||
|
endfunction()
|
||||||
|
|
||||||
|
# General-purpose script for adding tests with categories and linking options
|
||||||
|
macro(gtsam_add_grouped_scripts group pattern target_prefix pretty_prefix_name local_libs full_libs excluded_srcs is_test)
|
||||||
|
# Print warning about using this obsolete function
|
||||||
|
message(AUTHOR_WARNING "Warning: Please see GtsamTesting.cmake - obsolete cmake cmake macro for creating unit tests, examples, and scripts was called. This will be removed in the future. The new macros are much easier anyway!!")
|
||||||
|
|
||||||
|
# Get all script files
|
||||||
|
set(script_files "")
|
||||||
|
foreach(one_pattern ${pattern})
|
||||||
|
file(GLOB one_script_files "${one_pattern}")
|
||||||
|
list(APPEND script_files "${one_script_files}")
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
# Remove excluded scripts from the list
|
||||||
|
set(exclusions "") # Need to copy out exclusion list for logic to work
|
||||||
|
foreach(one_exclusion ${excluded_srcs})
|
||||||
|
file(GLOB one_exclusion_srcs "${one_exclusion}")
|
||||||
|
list(APPEND exclusions "${one_exclusion_srcs}")
|
||||||
|
endforeach()
|
||||||
|
if(exclusions)
|
||||||
|
list(REMOVE_ITEM script_files ${exclusions})
|
||||||
|
endif(exclusions)
|
||||||
|
|
||||||
|
# Separate into source files and headers
|
||||||
|
set(script_srcs "")
|
||||||
|
set(script_headers "")
|
||||||
|
foreach(script_file ${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()
|
||||||
|
|
||||||
|
|
||||||
|
# Add targets and dependencies for each script
|
||||||
|
if(NOT "${group}" STREQUAL "")
|
||||||
|
message(STATUS "Adding ${pretty_prefix_name}s in ${group}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Create exe's for each script, unless we're in SINGLE_TEST_EXE mode
|
||||||
|
if(NOT is_test OR NOT GTSAM_SINGLE_TEST_EXE)
|
||||||
|
foreach(script_src ${script_srcs})
|
||||||
|
get_filename_component(script_base ${script_src} NAME_WE)
|
||||||
|
if (script_base) # Check for null filenames and headers
|
||||||
|
set( script_bin ${script_base} )
|
||||||
|
message(STATUS "Adding ${pretty_prefix_name} ${script_bin}")
|
||||||
|
add_executable(${script_bin} ${script_src} ${script_headers})
|
||||||
|
if(NOT "${target_prefix}" STREQUAL "")
|
||||||
|
if(NOT "${group}" STREQUAL "")
|
||||||
|
add_dependencies(${target_prefix}.${group} ${script_bin})
|
||||||
|
endif()
|
||||||
|
add_dependencies(${target_prefix} ${script_bin})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Add TOPSRCDIR
|
||||||
|
set_property(SOURCE ${script_src} APPEND PROPERTY COMPILE_DEFINITIONS "TOPSRCDIR=\"${PROJECT_SOURCE_DIR}\"")
|
||||||
|
|
||||||
|
# Disable building during make all/install
|
||||||
|
if (GTSAM_DISABLE_TESTS_ON_INSTALL)
|
||||||
|
set_target_properties(${script_bin} PROPERTIES EXCLUDE_FROM_ALL ON)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (is_test)
|
||||||
|
add_test(NAME ${script_base} COMMAND ${script_bin})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Linking and dependendencies
|
||||||
|
if (GTSAM_BUILD_CONVENIENCE_LIBRARIES)
|
||||||
|
target_link_libraries(${script_bin} ${local_libs} ${GTSAM_BOOST_LIBRARIES})
|
||||||
|
else()
|
||||||
|
target_link_libraries(${script_bin} ${full_libs} ${GTSAM_BOOST_LIBRARIES})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Add .run target
|
||||||
|
if(NOT MSVC AND NOT XCODE_VERSION)
|
||||||
|
add_custom_target(${script_bin}.run ${EXECUTABLE_OUTPUT_PATH}${script_bin} ${ARGN})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Set up Visual Studio folders
|
||||||
|
file(RELATIVE_PATH relative_path "${PROJECT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||||
|
set_property(TARGET ${script_bin} PROPERTY FOLDER "${relative_path}")
|
||||||
|
endif()
|
||||||
|
endforeach(script_src)
|
||||||
|
|
||||||
|
if(MSVC)
|
||||||
|
source_group("" FILES ${script_srcs} ${script_headers})
|
||||||
|
endif()
|
||||||
|
else()
|
||||||
|
# Create single unit test exe from all test scripts
|
||||||
|
set(script_bin ${target_prefix}_${group}_prog)
|
||||||
|
add_executable(${script_bin} ${script_srcs} ${script_headers})
|
||||||
|
if (GTSAM_BUILD_CONVENIENCE_LIBRARIES)
|
||||||
|
target_link_libraries(${script_bin} ${local_libs} ${Boost_LIBRARIES})
|
||||||
|
else()
|
||||||
|
target_link_libraries(${script_bin} ${Boost_LIBRARIES} ${full_libs})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Only have a main function in one script
|
||||||
|
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 TOPSRCDIR
|
||||||
|
set_property(SOURCE ${script_srcs} APPEND PROPERTY COMPILE_DEFINITIONS "TOPSRCDIR=\"${PROJECT_SOURCE_DIR}\"")
|
||||||
|
|
||||||
|
# Add test
|
||||||
|
add_dependencies(${target_prefix}.${group} ${script_bin})
|
||||||
|
add_dependencies(${target_prefix} ${script_bin})
|
||||||
|
add_test(NAME ${target_prefix}.${group} COMMAND ${script_bin})
|
||||||
|
|
||||||
|
# Disable building during make all/install
|
||||||
|
if (GTSAM_DISABLE_TESTS_ON_INSTALL)
|
||||||
|
set_target_properties(${script_bin} PROPERTIES EXCLUDE_FROM_ALL ON)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Set up Visual Studio folders
|
||||||
|
if(MSVC)
|
||||||
|
file(RELATIVE_PATH relative_path "${PROJECT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||||
|
set_property(TARGET ${script_bin} PROPERTY FOLDER "${relative_path}")
|
||||||
|
source_group("" FILES ${script_srcs} ${script_headers})
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endmacro()
|
|
@ -1,42 +1,8 @@
|
||||||
if(NOT MSVC)
|
set (excluded_examples
|
||||||
add_custom_target(examples)
|
DiscreteBayesNet_FG.cpp
|
||||||
endif()
|
UGM_chain.cpp
|
||||||
|
UGM_small.cpp
|
||||||
# Build example executables
|
elaboratePoint2KalmanFilter.cpp
|
||||||
FILE(GLOB example_srcs "*.cpp")
|
|
||||||
|
|
||||||
set (excluded_examples #"")
|
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/DiscreteBayesNet_FG.cpp"
|
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/UGM_chain.cpp"
|
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/UGM_small.cpp"
|
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/elaboratePoint2KalmanFilter.cpp"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
list(REMOVE_ITEM example_srcs ${excluded_examples})
|
gtsamAddExamplesGlob("*.cpp" "${excluded_examples}" "gtsam;${Boost_PROGRAM_OPTIONS_LIBRARY}")
|
||||||
|
|
||||||
foreach(example_src ${example_srcs} )
|
|
||||||
get_filename_component(example_base ${example_src} NAME_WE)
|
|
||||||
set( example_bin ${example_base} )
|
|
||||||
message(STATUS "Adding Example ${example_bin}")
|
|
||||||
if(NOT MSVC)
|
|
||||||
add_dependencies(examples ${example_bin})
|
|
||||||
endif()
|
|
||||||
add_executable(${example_bin} ${example_src})
|
|
||||||
|
|
||||||
# Disable building during make all/install
|
|
||||||
if (GTSAM_DISABLE_EXAMPLES_ON_INSTALL)
|
|
||||||
set_target_properties(${example_bin} PROPERTIES EXCLUDE_FROM_ALL ON)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
target_link_libraries(${example_bin} gtsam ${Boost_PROGRAM_OPTIONS_LIBRARY})
|
|
||||||
if(NOT MSVC AND NOT XCODE_VERSION)
|
|
||||||
add_custom_target(${example_bin}.run ${EXECUTABLE_OUTPUT_PATH}${example_bin} ${ARGN})
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Set up Visual Studio folder
|
|
||||||
if(MSVC)
|
|
||||||
set_property(TARGET ${example_bin} PROPERTY FOLDER "Examples")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
endforeach(example_src)
|
|
||||||
|
|
||||||
|
|
|
@ -5,16 +5,8 @@ install(FILES ${base_headers} DESTINATION include/gtsam/base)
|
||||||
file(GLOB base_headers_tree "treeTraversal/*.h")
|
file(GLOB base_headers_tree "treeTraversal/*.h")
|
||||||
install(FILES ${base_headers_tree} DESTINATION include/gtsam/base/treeTraversal)
|
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
|
# Build tests
|
||||||
if (GTSAM_BUILD_TESTS)
|
add_subdirectory(tests)
|
||||||
gtsam_add_subdir_tests(base "gtsam" "gtsam" "${base_excluded_files}")
|
|
||||||
endif(GTSAM_BUILD_TESTS)
|
|
||||||
|
|
||||||
# Build timing scripts
|
# Build timing scripts
|
||||||
if (GTSAM_BUILD_TIMING)
|
if (GTSAM_BUILD_TIMING)
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
gtsamAddTestsGlob(base "test*.cpp" "" "gtsam")
|
|
@ -4,13 +4,8 @@ file(GLOB discrete_headers "*.h")
|
||||||
# FIXME: exclude headers
|
# FIXME: exclude headers
|
||||||
install(FILES ${discrete_headers} DESTINATION include/gtsam/discrete)
|
install(FILES ${discrete_headers} DESTINATION include/gtsam/discrete)
|
||||||
|
|
||||||
# Exclude tests that don't work
|
|
||||||
set (discrete_excluded_tests "")
|
|
||||||
|
|
||||||
# Add all tests
|
# Add all tests
|
||||||
if (GTSAM_BUILD_TESTS)
|
add_subdirectory(tests)
|
||||||
gtsam_add_subdir_tests(discrete "gtsam" "gtsam" "${discrete_excluded_tests}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Build timing scripts
|
# Build timing scripts
|
||||||
#if (GTSAM_BUILD_TIMING)
|
#if (GTSAM_BUILD_TIMING)
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
gtsamAddTestsGlob(discrete "test*.cpp" "" "gtsam")
|
|
@ -2,16 +2,8 @@
|
||||||
file(GLOB geometry_headers "*.h")
|
file(GLOB geometry_headers "*.h")
|
||||||
install(FILES ${geometry_headers} DESTINATION include/gtsam/geometry)
|
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
|
# Build tests
|
||||||
if (GTSAM_BUILD_TESTS)
|
add_subdirectory(tests)
|
||||||
gtsam_add_subdir_tests(geometry "gtsam" "gtsam" "${geometry_excluded_files}")
|
|
||||||
endif(GTSAM_BUILD_TESTS)
|
|
||||||
|
|
||||||
# Build timing scripts
|
# Build timing scripts
|
||||||
if (GTSAM_BUILD_TIMING)
|
if (GTSAM_BUILD_TIMING)
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
gtsamAddTestsGlob(geometry "test*.cpp" "" "gtsam")
|
|
@ -2,16 +2,8 @@
|
||||||
file(GLOB inference_headers "*.h")
|
file(GLOB inference_headers "*.h")
|
||||||
install(FILES ${inference_headers} DESTINATION include/gtsam/inference)
|
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
|
# Build tests
|
||||||
if (GTSAM_BUILD_TESTS)
|
add_subdirectory(tests)
|
||||||
gtsam_add_subdir_tests(inference "gtsam" "gtsam" "${inference_excluded_files}")
|
|
||||||
endif(GTSAM_BUILD_TESTS)
|
|
||||||
|
|
||||||
# Build timing scripts
|
# Build timing scripts
|
||||||
if (GTSAM_BUILD_TIMING)
|
if (GTSAM_BUILD_TIMING)
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
gtsamAddTestsGlob(inference "test*.cpp" "" "gtsam")
|
|
@ -2,21 +2,8 @@
|
||||||
file(GLOB linear_headers "*.h")
|
file(GLOB linear_headers "*.h")
|
||||||
install(FILES ${linear_headers} DESTINATION include/gtsam/linear)
|
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
|
# Build tests
|
||||||
if (GTSAM_BUILD_TESTS)
|
add_subdirectory(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()
|
|
||||||
|
|
||||||
# Build timing scripts
|
# Build timing scripts
|
||||||
if (GTSAM_BUILD_TIMING)
|
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")
|
file(GLOB navigation_headers "*.h")
|
||||||
install(FILES ${navigation_headers} DESTINATION include/gtsam/navigation)
|
install(FILES ${navigation_headers} DESTINATION include/gtsam/navigation)
|
||||||
|
|
||||||
# Exclude tests that don't work
|
|
||||||
set (navigation_excluded_tests "")
|
|
||||||
|
|
||||||
# Add all tests
|
# Add all tests
|
||||||
if (GTSAM_BUILD_TESTS)
|
add_subdirectory(tests)
|
||||||
gtsam_add_subdir_tests(navigation "gtsam" "gtsam" "${navigation_excluded_tests}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Build timing scripts
|
# Build timing scripts
|
||||||
if (GTSAM_BUILD_TIMING)
|
if (GTSAM_BUILD_TIMING)
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
gtsamAddTestsGlob(navigation "test*.cpp" "" "gtsam")
|
|
@ -2,16 +2,8 @@
|
||||||
file(GLOB nonlinear_headers "*.h")
|
file(GLOB nonlinear_headers "*.h")
|
||||||
install(FILES ${nonlinear_headers} DESTINATION include/gtsam/nonlinear)
|
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
|
# Build tests
|
||||||
if (GTSAM_BUILD_TESTS)
|
add_subdirectory(tests)
|
||||||
gtsam_add_subdir_tests(nonlinear "gtsam" "gtsam" "${nonlinear_excluded_files}")
|
|
||||||
endif(GTSAM_BUILD_TESTS)
|
|
||||||
|
|
||||||
# Build timing scripts
|
# Build timing scripts
|
||||||
if (GTSAM_BUILD_TIMING)
|
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")
|
file(GLOB slam_headers "*.h")
|
||||||
list(REMOVE_ITEM slam_headers ${slam_excluded_headers})
|
|
||||||
install(FILES ${slam_headers} DESTINATION include/gtsam/slam)
|
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
|
# Build tests
|
||||||
if (GTSAM_BUILD_TESTS)
|
add_subdirectory(tests)
|
||||||
gtsam_add_subdir_tests(slam "gtsam" "gtsam" "${slam_excluded_files}")
|
|
||||||
endif(GTSAM_BUILD_TESTS)
|
|
||||||
|
|
||||||
# Build timing scripts
|
# Build timing scripts
|
||||||
if (GTSAM_BUILD_TIMING)
|
if (GTSAM_BUILD_TIMING)
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
gtsamAddTestsGlob(slam "test*.cpp" "" "gtsam")
|
|
@ -2,16 +2,8 @@
|
||||||
file(GLOB symbolic_headers "*.h")
|
file(GLOB symbolic_headers "*.h")
|
||||||
install(FILES ${symbolic_headers} DESTINATION include/gtsam/symbolic)
|
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
|
# Build tests
|
||||||
if (GTSAM_BUILD_TESTS)
|
add_subdirectory(tests)
|
||||||
gtsam_add_subdir_tests(symbolic "gtsam" "gtsam" "${symbolic_excluded_files}")
|
|
||||||
endif(GTSAM_BUILD_TESTS)
|
|
||||||
|
|
||||||
# Build timing scripts
|
# Build timing scripts
|
||||||
if (GTSAM_BUILD_TIMING)
|
if (GTSAM_BUILD_TIMING)
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
gtsamAddTestsGlob(symbolic "test*.cpp" "" "gtsam")
|
|
@ -2,16 +2,8 @@
|
||||||
file(GLOB base_headers "*.h")
|
file(GLOB base_headers "*.h")
|
||||||
install(FILES ${base_headers} DESTINATION include/gtsam_unstable/base)
|
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
|
# Add all tests
|
||||||
gtsam_add_subdir_tests(base_unstable "${base_full_libs}" "${base_full_libs}" "${base_excluded_tests}")
|
add_subdirectory(tests)
|
||||||
add_dependencies(check.unstable check.base_unstable)
|
|
||||||
|
|
||||||
# Build timing scripts
|
# Build timing scripts
|
||||||
if (GTSAM_BUILD_TIMING)
|
if (GTSAM_BUILD_TIMING)
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
gtsamAddTestsGlob(base_unstable "test*.cpp" "" "gtsam_unstable")
|
|
@ -2,41 +2,8 @@
|
||||||
file(GLOB discrete_headers "*.h")
|
file(GLOB discrete_headers "*.h")
|
||||||
install(FILES ${discrete_headers} DESTINATION include/gtsam_unstable/discrete)
|
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
|
# Add all tests
|
||||||
gtsam_add_subdir_tests(discrete_unstable "${discrete_full_libs}" "${discrete_full_libs}" "${discrete_excluded_tests}")
|
add_subdirectory(tests)
|
||||||
add_dependencies(check.unstable check.discrete_unstable)
|
|
||||||
|
|
||||||
# List examples to build - comment out here to exclude from compilation
|
# Add examples
|
||||||
set(discrete_unstable_examples
|
add_subdirectory(examples)
|
||||||
schedulingExample
|
|
||||||
schedulingQuals12
|
|
||||||
schedulingQuals13
|
|
||||||
)
|
|
||||||
|
|
||||||
if (GTSAM_BUILD_EXAMPLES)
|
|
||||||
foreach(example ${discrete_unstable_examples})
|
|
||||||
add_executable(${example} "examples/${example}.cpp")
|
|
||||||
|
|
||||||
# Disable building during make all/install
|
|
||||||
if (GTSAM_ENABLE_INSTALL_EXAMPLE_FIX)
|
|
||||||
set_target_properties(${example} PROPERTIES EXCLUDE_FROM_ALL ON)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(NOT MSVC AND NOT XCODE_VERSION)
|
|
||||||
add_dependencies(examples ${example})
|
|
||||||
add_custom_target(${example}.run ${EXECUTABLE_OUTPUT_PATH}${example} ${ARGN})
|
|
||||||
endif()
|
|
||||||
|
|
||||||
target_link_libraries(${example} gtsam gtsam_unstable)
|
|
||||||
endforeach(example)
|
|
||||||
endif (GTSAM_BUILD_EXAMPLES)
|
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
set (excluded_examples
|
||||||
|
# fileToExclude.cpp
|
||||||
|
)
|
||||||
|
|
||||||
|
gtsamAddExamplesGlob("*.cpp" "${excluded_examples}" "gtsam_unstable")
|
|
@ -0,0 +1 @@
|
||||||
|
gtsamAddTestsGlob(discrete_unstable "test*.cpp" "" "gtsam_unstable")
|
|
@ -2,14 +2,5 @@
|
||||||
file(GLOB dynamics_headers "*.h")
|
file(GLOB dynamics_headers "*.h")
|
||||||
install(FILES ${dynamics_headers} DESTINATION include/gtsam_unstable/dynamics)
|
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
|
# Add all tests
|
||||||
gtsam_add_subdir_tests(dynamics_unstable "${dynamics_full_libs}" "${dynamics_full_libs}" "${dynamics_excluded_tests}")
|
add_subdirectory(tests)
|
||||||
add_dependencies(check.unstable check.dynamics_unstable)
|
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
gtsamAddTestsGlob(dynamics_unstable "test*.cpp" "" "gtsam_unstable")
|
|
@ -1,32 +1,5 @@
|
||||||
if(NOT MSVC)
|
set (excluded_examples
|
||||||
add_custom_target(unstable_examples)
|
# fileToExclude.cpp
|
||||||
endif()
|
)
|
||||||
|
|
||||||
# Build example executables
|
|
||||||
FILE(GLOB example_srcs "*.cpp")
|
|
||||||
foreach(example_src ${example_srcs} )
|
|
||||||
get_filename_component(example_base ${example_src} NAME_WE)
|
|
||||||
set( example_bin ${example_base} )
|
|
||||||
message(STATUS "Adding Example ${example_bin}")
|
|
||||||
if(NOT MSVC)
|
|
||||||
add_dependencies(examples ${example_bin})
|
|
||||||
endif()
|
|
||||||
add_executable(${example_bin} ${example_src})
|
|
||||||
|
|
||||||
# Disable building during make all/install
|
|
||||||
if (GTSAM_DISABLE_EXAMPLES_ON_INSTALL)
|
|
||||||
set_target_properties(${example_bin} PROPERTIES EXCLUDE_FROM_ALL ON)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
target_link_libraries(${example_bin} gtsam gtsam_unstable)
|
|
||||||
if(NOT MSVC AND NOT XCODE_VERSION)
|
|
||||||
add_custom_target(${example_bin}.run ${EXECUTABLE_OUTPUT_PATH}${example_bin} ${ARGN})
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Set up Visual Studio folder
|
|
||||||
if(MSVC)
|
|
||||||
set_property(TARGET ${example_bin} PROPERTY FOLDER "Examples")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
endforeach(example_src)
|
|
||||||
|
|
||||||
|
gtsamAddExamplesGlob("*.cpp" "${excluded_examples}" "gtsam_unstable")
|
||||||
|
|
|
@ -2,14 +2,5 @@
|
||||||
file(GLOB geometry_headers "*.h")
|
file(GLOB geometry_headers "*.h")
|
||||||
install(FILES ${geometry_headers} DESTINATION include/gtsam_unstable/geometry)
|
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
|
# Add all tests
|
||||||
gtsam_add_subdir_tests(geometry_unstable "${geometry_full_libs}" "${geometry_full_libs}" "${geometry_excluded_tests}")
|
add_subdirectory(tests)
|
||||||
add_dependencies(check.unstable check.geometry_unstable)
|
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
gtsamAddTestsGlob(geometry_unstable "test*.cpp" "" "gtsam_unstable")
|
|
@ -2,18 +2,5 @@
|
||||||
file(GLOB nonlinear_headers "*.h")
|
file(GLOB nonlinear_headers "*.h")
|
||||||
install(FILES ${nonlinear_headers} DESTINATION include/gtsam_unstable/nonlinear)
|
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
|
# Add all tests
|
||||||
gtsam_add_subdir_tests(nonlinear_unstable "${nonlinear_full_libs}" "${nonlinear_full_libs}" "${nonlinear_excluded_tests}")
|
add_subdirectory(tests)
|
||||||
add_dependencies(check.unstable check.nonlinear_unstable)
|
|
||||||
|
|
|
@ -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})
|
list(REMOVE_ITEM slam_headers ${slam_excluded_headers})
|
||||||
install(FILES ${slam_headers} DESTINATION include/gtsam_unstable/slam)
|
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
|
# Add all tests
|
||||||
gtsam_add_subdir_tests(slam_unstable "${slam_full_libs}" "${slam_full_libs}" "${slam_excluded_tests}")
|
add_subdirectory(tests)
|
||||||
add_dependencies(check.unstable check.slam_unstable)
|
|
||||||
|
|
|
@ -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
|
# exclude certain files
|
||||||
# note the source dir on each
|
# note the source dir on each
|
||||||
set (tests_exclude
|
set (tests_exclude "")
|
||||||
#"${CMAKE_CURRENT_SOURCE_DIR}/testOccupancyGrid.cpp"
|
|
||||||
)
|
|
||||||
|
|
||||||
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") # might not be best test - Richard & Jason & Frank
|
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") # might not be best test - Richard & Jason & Frank
|
||||||
# clang linker segfaults on large testSerializationSLAM
|
# clang linker segfaults on large testSerializationSLAM
|
||||||
list (APPEND tests_exclude "${CMAKE_CURRENT_SOURCE_DIR}/testSerializationSLAM.cpp")
|
list (APPEND tests_exclude "testSerializationSLAM.cpp")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Build tests
|
# Build tests
|
||||||
if (GTSAM_BUILD_TESTS)
|
gtsamAddTestsGlob(tests "test*.cpp" "${tests_exclude}" "gtsam")
|
||||||
# Subdirectory target for tests
|
|
||||||
add_custom_target(check.tests COMMAND ${CMAKE_CTEST_COMMAND})
|
|
||||||
set(is_test TRUE)
|
|
||||||
|
|
||||||
# Build grouped tests
|
if(MSVC)
|
||||||
gtsam_add_grouped_scripts("tests" # Use subdirectory as group label
|
set_property(SOURCE "${CMAKE_CURRENT_SOURCE_DIR}/testSerializationSLAM.cpp"
|
||||||
"test*.cpp;*.h" check "Test" # Standard for all tests
|
APPEND PROPERTY COMPILE_FLAGS "/bigobj")
|
||||||
"${tests_full_libs}" "${tests_full_libs}" "${tests_exclude}" # Pass in linking and exclusion lists
|
endif()
|
||||||
${is_test}) # Set all as tests
|
|
||||||
endif (GTSAM_BUILD_TESTS)
|
|
||||||
|
|
||||||
# Build timing scripts
|
# Build timing scripts
|
||||||
if (GTSAM_BUILD_TIMING)
|
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
|
"${tests_full_libs}" "${tests_full_libs}" "${tests_exclude}" # Pass in linking and exclusion lists
|
||||||
${is_test})
|
${is_test})
|
||||||
endif (GTSAM_BUILD_TIMING)
|
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)
|
install(FILES matlab.h DESTINATION include/wrap)
|
||||||
|
|
||||||
# Build tests
|
# Build tests
|
||||||
if (GTSAM_BUILD_TESTS)
|
add_subdirectory(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)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
gtsamAddTestsGlob(wrap "test*.cpp" "" "wrap_lib")
|
Loading…
Reference in New Issue