diff --git a/CMakeLists.txt b/CMakeLists.txt index c4dfec16d..a6f4099b2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -41,6 +41,7 @@ endif() option(GTSAM_BUILD_TESTS "Enable/Disable building of tests" ON) option(GTSAM_BUILD_TIMING "Enable/Disable building of timing scripts" ON) option(GTSAM_BUILD_EXAMPLES "Enable/Disable building of examples" ON) +option(GTSAM_BUILD_UNSTABLE "Enable/Disable libgtsam_unstable" ON) option(GTSAM_BUILD_WRAP "Enable/Disable building of matlab wrap utility (necessary for matlab interface)" ON) option(GTSAM_BUILD_SHARED_LIBRARY "Enable/Disable building of a shared version of gtsam" ON) option(GTSAM_BUILD_STATIC_LIBRARY "Enable/Disable building of a static version of gtsam" ON) @@ -113,6 +114,11 @@ if (GTSAM_BUILD_EXAMPLES) add_subdirectory(examples) endif(GTSAM_BUILD_EXAMPLES) +# Build gtsam_unstable +if (GTSAM_BUILD_UNSTABLE) + add_subdirectory(gtsam_unstable) +endif(GTSAM_BUILD_UNSTABLE) + # Set up CPack set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "GTSAM") set(CPACK_PACKAGE_VENDOR "Frank Dellaert, Georgia Institute of Technology") @@ -143,6 +149,7 @@ print_config_flag(${GTSAM_BUILD_WRAP} "Build Wrap print_config_flag(${GTSAM_BUILD_SHARED_LIBRARY} "Build shared GTSAM Library ") print_config_flag(${GTSAM_BUILD_STATIC_LIBRARY} "Build static GTSAM Library ") print_config_flag(${GTSAM_BUILD_CONVENIENCE_LIBRARIES} "Build Convenience Libraries ") +print_config_flag(${GTSAM_BUILD_UNSTABLE} "Build libgtsam_unstable ") print_config_flag(${GTSAM_ENABLE_INSTALL_TEST_FIX} "Tests excluded from all target ") string(TOUPPER "${CMAKE_BUILD_TYPE}" cmake_build_type_toupper) message(STATUS " Build type : ${CMAKE_BUILD_TYPE}") diff --git a/gtsam/unstable/CMakeLists.txt b/gtsam/unstable/CMakeLists.txt deleted file mode 100644 index 7cc8bfa31..000000000 --- a/gtsam/unstable/CMakeLists.txt +++ /dev/null @@ -1,62 +0,0 @@ -# Build full gtsam2 library as a single library -# and also build tests -set (gtsam2_subdirs - base - dynamics - geometry - slam -) - -# assemble core libaries -foreach(subdir ${gtsam2_subdirs}) - # Build convenience libraries - file(GLOB subdir_srcs "${subdir}/*.cpp") - set(${subdir}_srcs ${subdir_srcs}) - if (GTSAM2_BUILD_CONVENIENCE_LIBRARIES) - message(STATUS "Building Convenience Library: ${subdir}") - add_library(${subdir} STATIC ${subdir_srcs}) - endif() - - # Build local library and tests - message(STATUS "Building ${subdir}") - add_subdirectory(${subdir}) -endforeach(subdir) - -# assemble gtsam2 components -set(gtsam2_srcs - ${base_srcs} - ${discrete_srcs} - ${dynamics_srcs} - ${geometry_srcs} - ${slam_srcs} -) - -option (GTSAM2_BUILD_SHARED_LIBRARY "Enable/Disable building of a shared version of gtsam2" ON) - -# Versions -set(gtsam2_version ${GTSAM2_VERSION_MAJOR}.${GTSAM2_VERSION_MINOR}.${GTSAM2_VERSION_PATCH}) -set(gtsam2_soversion ${GTSAM2_VERSION_MAJOR}) -message(STATUS "GTSAM2 Version: ${gtsam2_version}") -message(STATUS "Install prefix: ${CMAKE_INSTALL_PREFIX}") - -# build shared and static versions of the library -message(STATUS "Building GTSAM2 - static") -add_library(gtsam2-static STATIC ${gtsam2_srcs}) -set_target_properties(gtsam2-static PROPERTIES - OUTPUT_NAME gtsam2 - CLEAN_DIRECT_OUTPUT 1 - VERSION ${gtsam2_version} - SOVERSION ${gtsam2_soversion}) -install(TARGETS gtsam2-static ARCHIVE DESTINATION lib) - -if (GTSAM2_BUILD_SHARED_LIBRARY) - message(STATUS "Building GTSAM2 - shared") - add_library(gtsam2-shared SHARED ${gtsam2_srcs}) - set_target_properties(gtsam2-shared PROPERTIES - OUTPUT_NAME gtsam2 - CLEAN_DIRECT_OUTPUT 1 - VERSION ${gtsam2_version} - SOVERSION ${gtsam2_soversion}) - install(TARGETS gtsam2-shared LIBRARY DESTINATION lib ) -endif(GTSAM2_BUILD_SHARED_LIBRARY) - diff --git a/gtsam/unstable/base/CMakeLists.txt b/gtsam/unstable/base/CMakeLists.txt deleted file mode 100644 index c7d4b7b8f..000000000 --- a/gtsam/unstable/base/CMakeLists.txt +++ /dev/null @@ -1,17 +0,0 @@ -# Install headers -file(GLOB base_headers "*.h") -install(FILES ${base_headers} DESTINATION include/gtsam2/base) - -# Components to link tests in this subfolder against -set(base_local_libs - base) - -set (base_full_libs - gtsam2-static) - -# Exclude tests that don't work -set (base_excluded_tests "") - -# Add all tests -gtsam_add_subdir_tests(base "${base_local_libs}" "${base_full_libs}" "${base_excluded_tests}") - diff --git a/gtsam/unstable/dynamics/CMakeLists.txt b/gtsam/unstable/dynamics/CMakeLists.txt deleted file mode 100644 index 6590832be..000000000 --- a/gtsam/unstable/dynamics/CMakeLists.txt +++ /dev/null @@ -1,17 +0,0 @@ -# Install headers -file(GLOB dynamics_headers "*.h") -install(FILES ${dynamics_headers} DESTINATION include/gtsam2/dynamics) - -# Components to link tests in this subfolder against -set(dynamics_local_libs - dynamics) - -set (dynamics_full_libs - gtsam2-static) - -# Exclude tests that don't work -set (dynamics_excluded_tests "") - -# Add all tests -gtsam_add_subdir_tests(dynamics "${dynamics_local_libs}" "${dynamics_full_libs}" "${dynamics_excluded_tests}") - diff --git a/gtsam/unstable/geometry/CMakeLists.txt b/gtsam/unstable/geometry/CMakeLists.txt deleted file mode 100644 index 09710a005..000000000 --- a/gtsam/unstable/geometry/CMakeLists.txt +++ /dev/null @@ -1,17 +0,0 @@ -# Install headers -file(GLOB geometry_headers "*.h") -install(FILES ${geometry_headers} DESTINATION include/gtsam2/geometry) - -# Components to link tests in this subfolder against -set(geometry_local_libs - geometry) - -set (geometry_full_libs - gtsam2-static) - -# Exclude tests that don't work -set (geometry_excluded_tests "") - -# Add all tests -gtsam_add_subdir_tests(geometry "${geometry_local_libs}" "${geometry_full_libs}" "${geometry_excluded_tests}") - diff --git a/gtsam/unstable/slam/CMakeLists.txt b/gtsam/unstable/slam/CMakeLists.txt deleted file mode 100644 index fd25a9af8..000000000 --- a/gtsam/unstable/slam/CMakeLists.txt +++ /dev/null @@ -1,17 +0,0 @@ -# Install headers -file(GLOB slam_headers "*.h") -install(FILES ${slam_headers} DESTINATION include/gtsam2/slam) - -# Components to link tests in this subfolder against -set(slam_local_libs - slam) - -set (slam_full_libs - gtsam2-static) - -# Exclude tests that don't work -set (slam_excluded_tests "") - -# Add all tests -gtsam_add_subdir_tests(slam "${slam_local_libs}" "${slam_full_libs}" "${slam_excluded_tests}") - diff --git a/gtsam/unstable/wrap/CMakeLists.txt b/gtsam/unstable/wrap/CMakeLists.txt deleted file mode 100644 index 92bb27c8e..000000000 --- a/gtsam/unstable/wrap/CMakeLists.txt +++ /dev/null @@ -1,52 +0,0 @@ -# Find wrap -find_package(Wrap REQUIRED) - -# Set up codegen -include(GtsamMatlabWrap) - -# Wrap codegen -#usage: wrap mexExtension interfacePath moduleName toolboxPath -# mexExtension : OS/CPU-dependent extension for MEX binaries -# interfacePath : *absolute* path to directory of module interface file -# moduleName : the name of the module, interface file must be called moduleName.h -# toolboxPath : the directory in which to generate the wrappers -# [mexFlags] : extra flags for the mex command - -# TODO: generate these includes programmatically -set(mexFlags "-I${Boost_INCLUDE_DIR} -I${Wrap_INCLUDE_DIR} -I${CMAKE_INSTALL_PREFIX}/include/gtsam2 -I${CMAKE_INSTALL_PREFIX}/include/gtsam2/dynamics -I${CMAKE_INSTALL_PREFIX}/include/gtsam2/discrete -L${CMAKE_INSTALL_PREFIX}/lib -lgtsam -lgtsam2") -set(toolbox_path ${CMAKE_BINARY_DIR}/wrap/gtsam2) -set(moduleName gtsam2) - -find_mexextension() - -# Code generation command -add_custom_target(wrap_gtsam2 ALL COMMAND - ${Wrap_CMD} ${GTSAM_MEX_BIN_EXTENSION} ${CMAKE_CURRENT_SOURCE_DIR}/../ ${moduleName} ${toolbox_path} "${mexFlags}") - -option(GTSAM2_INSTALL_MATLAB_TOOLBOX "Enable/Disable installation of matlab toolbox" ON) -option(GTSAM2_INSTALL_MATLAB_EXAMPLES "Enable/Disable installation of matlab examples" ON) -option(GTSAM2_INSTALL_MATLAB_TESTS "Enable/Disable installation of matlab tests" ON) - -set(GTSAM2_TOOLBOX_INSTALL_PATH ${CMAKE_INSTALL_PREFIX}/borg/toolbox CACHE DOCSTRING "Path to install matlab toolbox") - -if (GTSAM2_INSTALL_MATLAB_TOOLBOX) - # Primary toolbox files - message(STATUS "Installing Matlab Toolbox to ${GTSAM2_TOOLBOX_INSTALL_PATH}") - install(DIRECTORY DESTINATION ${GTSAM2_TOOLBOX_INSTALL_PATH}) # make an empty folder - # exploit need for trailing slash to specify a full folder, rather than just its contents to copy - install(DIRECTORY ${toolbox_path} DESTINATION ${GTSAM2_TOOLBOX_INSTALL_PATH}) - - # Examples - if (GTSAM2_INSTALL_MATLAB_EXAMPLES) - message(STATUS "Installing Matlab Toolbox Examples") - file(GLOB matlab_examples "${CMAKE_SOURCE_DIR}/examples/matlab/*.m") - install(FILES ${matlab_examples} DESTINATION ${GTSAM2_TOOLBOX_INSTALL_PATH}/gtsam2/examples) - endif (GTSAM2_INSTALL_MATLAB_EXAMPLES) - - # Tests - if (GTSAM2_INSTALL_MATLAB_TESTS) - message(STATUS "Installing Matlab Toolbox Tests") - file(GLOB matlab_tests "${CMAKE_SOURCE_DIR}/tests/matlab/*.m") - install(FILES ${matlab_tests} DESTINATION ${GTSAM2_TOOLBOX_INSTALL_PATH}/gtsam2/tests) - endif (GTSAM2_INSTALL_MATLAB_TESTS) -endif (GTSAM2_INSTALL_MATLAB_TOOLBOX) diff --git a/gtsam_unstable/CMakeLists.txt b/gtsam_unstable/CMakeLists.txt new file mode 100644 index 000000000..493e0000d --- /dev/null +++ b/gtsam_unstable/CMakeLists.txt @@ -0,0 +1,62 @@ +# Build full gtsam_unstable library as a single library +# and also build tests +set (gtsam_unstable_subdirs + base + dynamics + geometry + slam +) + +# assemble core libaries +foreach(subdir ${gtsam_unstable_subdirs}) + # Build convenience libraries + file(GLOB subdir_srcs "${subdir}/*.cpp") + set(${subdir}_srcs ${subdir_srcs}) + if (GTSAM_BUILD_CONVENIENCE_LIBRARIES) + message(STATUS "Building Convenience Library: ${subdir}_unstable") + add_library("${subdir}_unstable" STATIC ${subdir_srcs}) + endif() + + # Build local library and tests + message(STATUS "Building ${subdir}_unstable") + add_subdirectory(${subdir}) +endforeach(subdir) + +# assemble gtsam_unstable components +set(gtsam_unstable_srcs + ${base_srcs} + ${discrete_srcs} + ${dynamics_srcs} + ${geometry_srcs} + ${slam_srcs} +) + +option (GTSAM_UNSTABLE_BUILD_SHARED_LIBRARY "Enable/Disable building of a shared version of gtsam_unstable" ON) + +# Versions - same as core gtsam library +set(gtsam_unstable_version ${GTSAM_VERSION_MAJOR}.${GTSAM_VERSION_MINOR}.${GTSAM_VERSION_PATCH}) +set(gtsam_unstable_soversion ${GTSAM_VERSION_MAJOR}) +message(STATUS "GTSAM_UNSTABLE Version: ${gtsam_unstable_version}") +message(STATUS "Install prefix: ${CMAKE_INSTALL_PREFIX}") + +# build shared and static versions of the library +message(STATUS "Building GTSAM_UNSTABLE - static") +add_library(gtsam_unstable-static STATIC ${gtsam_unstable_srcs}) +set_target_properties(gtsam_unstable-static PROPERTIES + OUTPUT_NAME gtsam_unstable + CLEAN_DIRECT_OUTPUT 1 + VERSION ${gtsam_unstable_version} + SOVERSION ${gtsam_unstable_soversion}) +install(TARGETS gtsam_unstable-static ARCHIVE DESTINATION lib) + +if (GTSAM_UNSTABLE_BUILD_SHARED_LIBRARY) + message(STATUS "Building GTSAM_UNSTABLE - shared") + add_library(gtsam_unstable-shared SHARED ${gtsam_unstable_srcs}) + set_target_properties(gtsam_unstable-shared PROPERTIES + OUTPUT_NAME gtsam_unstable + CLEAN_DIRECT_OUTPUT 1 + VERSION ${gtsam_unstable_version} + SOVERSION ${gtsam_unstable_soversion}) + install(TARGETS gtsam_unstable-shared LIBRARY DESTINATION lib ) +endif(GTSAM_UNSTABLE_BUILD_SHARED_LIBRARY) + diff --git a/gtsam/unstable/base/BTree.h b/gtsam_unstable/base/BTree.h similarity index 100% rename from gtsam/unstable/base/BTree.h rename to gtsam_unstable/base/BTree.h diff --git a/gtsam_unstable/base/CMakeLists.txt b/gtsam_unstable/base/CMakeLists.txt new file mode 100644 index 000000000..7e455e9bf --- /dev/null +++ b/gtsam_unstable/base/CMakeLists.txt @@ -0,0 +1,19 @@ +# Install headers +file(GLOB base_headers "*.h") +install(FILES ${base_headers} DESTINATION include/gtsam_unstable/base) + +# Components to link tests in this subfolder against +set(base_local_libs + base + base_unstable) + +set (base_full_libs + gtsam-static + gtsam_unstable-static) + +# Exclude tests that don't work +set (base_excluded_tests "") + +# Add all tests +gtsam_add_subdir_tests(base_unstable "${base_local_libs}" "${base_full_libs}" "${base_excluded_tests}") + diff --git a/gtsam/unstable/base/DSF.h b/gtsam_unstable/base/DSF.h similarity index 99% rename from gtsam/unstable/base/DSF.h rename to gtsam_unstable/base/DSF.h index 06d69e169..5276779b0 100644 --- a/gtsam/unstable/base/DSF.h +++ b/gtsam_unstable/base/DSF.h @@ -23,7 +23,7 @@ #include #include #include -#include +#include namespace gtsam { diff --git a/gtsam/unstable/base/DSFVector.cpp b/gtsam_unstable/base/DSFVector.cpp similarity index 98% rename from gtsam/unstable/base/DSFVector.cpp rename to gtsam_unstable/base/DSFVector.cpp index 2d5f2d55a..cdea89f34 100644 --- a/gtsam/unstable/base/DSFVector.cpp +++ b/gtsam_unstable/base/DSFVector.cpp @@ -18,7 +18,7 @@ #include #include -#include +#include using namespace std; diff --git a/gtsam/unstable/base/DSFVector.h b/gtsam_unstable/base/DSFVector.h similarity index 100% rename from gtsam/unstable/base/DSFVector.h rename to gtsam_unstable/base/DSFVector.h diff --git a/gtsam/unstable/base/FixedVector.h b/gtsam_unstable/base/FixedVector.h similarity index 100% rename from gtsam/unstable/base/FixedVector.h rename to gtsam_unstable/base/FixedVector.h diff --git a/gtsam/unstable/base/tests/testBTree.cpp b/gtsam_unstable/base/tests/testBTree.cpp similarity index 99% rename from gtsam/unstable/base/tests/testBTree.cpp rename to gtsam_unstable/base/tests/testBTree.cpp index 5da901cbd..764873e3e 100644 --- a/gtsam/unstable/base/tests/testBTree.cpp +++ b/gtsam_unstable/base/tests/testBTree.cpp @@ -22,7 +22,7 @@ using namespace boost::assign; #include -#include +#include using namespace std; using namespace gtsam; diff --git a/gtsam/unstable/base/tests/testDSF.cpp b/gtsam_unstable/base/tests/testDSF.cpp similarity index 99% rename from gtsam/unstable/base/tests/testDSF.cpp rename to gtsam_unstable/base/tests/testDSF.cpp index a41ba30d3..0ea4303f2 100644 --- a/gtsam/unstable/base/tests/testDSF.cpp +++ b/gtsam_unstable/base/tests/testDSF.cpp @@ -22,7 +22,7 @@ using namespace boost::assign; #include -#include +#include using namespace std; using namespace gtsam; diff --git a/gtsam/unstable/base/tests/testDSFVector.cpp b/gtsam_unstable/base/tests/testDSFVector.cpp similarity index 99% rename from gtsam/unstable/base/tests/testDSFVector.cpp rename to gtsam_unstable/base/tests/testDSFVector.cpp index 8ae9d077d..8997559f5 100644 --- a/gtsam/unstable/base/tests/testDSFVector.cpp +++ b/gtsam_unstable/base/tests/testDSFVector.cpp @@ -24,7 +24,7 @@ using namespace boost::assign; #include -#include +#include using namespace std; using namespace gtsam; diff --git a/gtsam/unstable/base/tests/testFixedVector.cpp b/gtsam_unstable/base/tests/testFixedVector.cpp similarity index 98% rename from gtsam/unstable/base/tests/testFixedVector.cpp rename to gtsam_unstable/base/tests/testFixedVector.cpp index 1d0840dca..88263826d 100644 --- a/gtsam/unstable/base/tests/testFixedVector.cpp +++ b/gtsam_unstable/base/tests/testFixedVector.cpp @@ -16,7 +16,7 @@ #include -#include +#include using namespace gtsam; diff --git a/gtsam_unstable/dynamics/CMakeLists.txt b/gtsam_unstable/dynamics/CMakeLists.txt new file mode 100644 index 000000000..66d0b9ac1 --- /dev/null +++ b/gtsam_unstable/dynamics/CMakeLists.txt @@ -0,0 +1,26 @@ +# Install headers +file(GLOB dynamics_headers "*.h") +install(FILES ${dynamics_headers} DESTINATION include/gtsam_unstable/dynamics) + +# Components to link tests in this subfolder against +set(dynamics_local_libs + dynamics_unstable + slam + nonlinear + linear + inference + geometry + base + ccolamd +) + +set (dynamics_full_libs + gtsam-static + gtsam_unstable-static) + +# Exclude tests that don't work +set (dynamics_excluded_tests "") + +# Add all tests +gtsam_add_subdir_tests(dynamics_unstable "${dynamics_local_libs}" "${dynamics_full_libs}" "${dynamics_excluded_tests}") + diff --git a/gtsam/unstable/dynamics/DynamicsPriors.h b/gtsam_unstable/dynamics/DynamicsPriors.h similarity index 98% rename from gtsam/unstable/dynamics/DynamicsPriors.h rename to gtsam_unstable/dynamics/DynamicsPriors.h index 74908b209..2d0f9e6a6 100644 --- a/gtsam/unstable/dynamics/DynamicsPriors.h +++ b/gtsam_unstable/dynamics/DynamicsPriors.h @@ -11,7 +11,7 @@ #include -#include +#include namespace gtsam { diff --git a/gtsam/unstable/dynamics/FullIMUFactor.h b/gtsam_unstable/dynamics/FullIMUFactor.h similarity index 98% rename from gtsam/unstable/dynamics/FullIMUFactor.h rename to gtsam_unstable/dynamics/FullIMUFactor.h index 40ef80a15..29b77c661 100644 --- a/gtsam/unstable/dynamics/FullIMUFactor.h +++ b/gtsam_unstable/dynamics/FullIMUFactor.h @@ -9,7 +9,7 @@ #include #include #include -#include +#include namespace gtsam { diff --git a/gtsam/unstable/dynamics/IMUFactor.h b/gtsam_unstable/dynamics/IMUFactor.h similarity index 98% rename from gtsam/unstable/dynamics/IMUFactor.h rename to gtsam_unstable/dynamics/IMUFactor.h index 1d83604df..7ded5ef82 100644 --- a/gtsam/unstable/dynamics/IMUFactor.h +++ b/gtsam_unstable/dynamics/IMUFactor.h @@ -9,7 +9,7 @@ #include #include #include -#include +#include namespace gtsam { diff --git a/gtsam/unstable/dynamics/PoseRTV.cpp b/gtsam_unstable/dynamics/PoseRTV.cpp similarity index 98% rename from gtsam/unstable/dynamics/PoseRTV.cpp rename to gtsam_unstable/dynamics/PoseRTV.cpp index b3dcd2d12..4ab4bcf1d 100644 --- a/gtsam/unstable/dynamics/PoseRTV.cpp +++ b/gtsam_unstable/dynamics/PoseRTV.cpp @@ -10,8 +10,8 @@ #include #include -#include -#include +#include +#include namespace gtsam { diff --git a/gtsam/unstable/dynamics/PoseRTV.h b/gtsam_unstable/dynamics/PoseRTV.h similarity index 100% rename from gtsam/unstable/dynamics/PoseRTV.h rename to gtsam_unstable/dynamics/PoseRTV.h diff --git a/gtsam/unstable/dynamics/VelocityConstraint.h b/gtsam_unstable/dynamics/VelocityConstraint.h similarity index 98% rename from gtsam/unstable/dynamics/VelocityConstraint.h rename to gtsam_unstable/dynamics/VelocityConstraint.h index 836cdfcae..a35f09bb7 100644 --- a/gtsam/unstable/dynamics/VelocityConstraint.h +++ b/gtsam_unstable/dynamics/VelocityConstraint.h @@ -8,7 +8,7 @@ #include #include -#include +#include namespace gtsam { diff --git a/gtsam/unstable/dynamics/imuSystem.cpp b/gtsam_unstable/dynamics/imuSystem.cpp similarity index 98% rename from gtsam/unstable/dynamics/imuSystem.cpp rename to gtsam_unstable/dynamics/imuSystem.cpp index 11da98673..e5eaa3dff 100644 --- a/gtsam/unstable/dynamics/imuSystem.cpp +++ b/gtsam_unstable/dynamics/imuSystem.cpp @@ -4,7 +4,7 @@ * @author Alex Cunningham */ -#include +#include #include diff --git a/gtsam/unstable/dynamics/imuSystem.h b/gtsam_unstable/dynamics/imuSystem.h similarity index 91% rename from gtsam/unstable/dynamics/imuSystem.h rename to gtsam_unstable/dynamics/imuSystem.h index 1f518ef4a..b0bee8873 100644 --- a/gtsam/unstable/dynamics/imuSystem.h +++ b/gtsam_unstable/dynamics/imuSystem.h @@ -18,11 +18,11 @@ #include #include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include /** * This domain focuses on a single class of variables: PoseRTV, which diff --git a/gtsam/unstable/dynamics/imu_examples.h b/gtsam_unstable/dynamics/imu_examples.h similarity index 99% rename from gtsam/unstable/dynamics/imu_examples.h rename to gtsam_unstable/dynamics/imu_examples.h index 2eebb61a3..90bbc9d8b 100644 --- a/gtsam/unstable/dynamics/imu_examples.h +++ b/gtsam_unstable/dynamics/imu_examples.h @@ -7,7 +7,7 @@ #pragma once #include -#include +#include namespace gtsam { namespace examples { diff --git a/gtsam/unstable/dynamics/inertialUtils.cpp b/gtsam_unstable/dynamics/inertialUtils.cpp similarity index 95% rename from gtsam/unstable/dynamics/inertialUtils.cpp rename to gtsam_unstable/dynamics/inertialUtils.cpp index 473eff3ac..94d99f690 100644 --- a/gtsam/unstable/dynamics/inertialUtils.cpp +++ b/gtsam_unstable/dynamics/inertialUtils.cpp @@ -5,7 +5,7 @@ * @author Alex Cunningham */ -#include +#include namespace gtsam { namespace dynamics { diff --git a/gtsam/unstable/dynamics/inertialUtils.h b/gtsam_unstable/dynamics/inertialUtils.h similarity index 100% rename from gtsam/unstable/dynamics/inertialUtils.h rename to gtsam_unstable/dynamics/inertialUtils.h diff --git a/gtsam/unstable/dynamics/tests/testIMUSystem.cpp b/gtsam_unstable/dynamics/tests/testIMUSystem.cpp similarity index 98% rename from gtsam/unstable/dynamics/tests/testIMUSystem.cpp rename to gtsam_unstable/dynamics/tests/testIMUSystem.cpp index c7baaf4a5..ad66b2b60 100644 --- a/gtsam/unstable/dynamics/tests/testIMUSystem.cpp +++ b/gtsam_unstable/dynamics/tests/testIMUSystem.cpp @@ -5,8 +5,8 @@ #include -#include -#include +#include +#include using namespace gtsam; using namespace imu; diff --git a/gtsam/unstable/dynamics/tests/testInertialUtils.cpp b/gtsam_unstable/dynamics/tests/testInertialUtils.cpp similarity index 96% rename from gtsam/unstable/dynamics/tests/testInertialUtils.cpp rename to gtsam_unstable/dynamics/tests/testInertialUtils.cpp index d1206a555..5360aaae8 100644 --- a/gtsam/unstable/dynamics/tests/testInertialUtils.cpp +++ b/gtsam_unstable/dynamics/tests/testInertialUtils.cpp @@ -9,7 +9,7 @@ #include -#include +#include using namespace gtsam; diff --git a/gtsam/unstable/dynamics/tests/testPoseRTV.cpp b/gtsam_unstable/dynamics/tests/testPoseRTV.cpp similarity index 99% rename from gtsam/unstable/dynamics/tests/testPoseRTV.cpp rename to gtsam_unstable/dynamics/tests/testPoseRTV.cpp index 09afd24fe..381971502 100644 --- a/gtsam/unstable/dynamics/tests/testPoseRTV.cpp +++ b/gtsam_unstable/dynamics/tests/testPoseRTV.cpp @@ -8,8 +8,8 @@ #include #include -#include -#include +#include +#include using namespace gtsam; diff --git a/gtsam/unstable/dynamics/tests/testVelocityConstraint.cpp b/gtsam_unstable/dynamics/tests/testVelocityConstraint.cpp similarity index 98% rename from gtsam/unstable/dynamics/tests/testVelocityConstraint.cpp rename to gtsam_unstable/dynamics/tests/testVelocityConstraint.cpp index 99fb8e70e..eb5950fe7 100644 --- a/gtsam/unstable/dynamics/tests/testVelocityConstraint.cpp +++ b/gtsam_unstable/dynamics/tests/testVelocityConstraint.cpp @@ -4,7 +4,7 @@ */ #include -#include +#include using namespace gtsam; using namespace imu; diff --git a/gtsam_unstable/geometry/CMakeLists.txt b/gtsam_unstable/geometry/CMakeLists.txt new file mode 100644 index 000000000..684abc698 --- /dev/null +++ b/gtsam_unstable/geometry/CMakeLists.txt @@ -0,0 +1,20 @@ +# Install headers +file(GLOB geometry_headers "*.h") +install(FILES ${geometry_headers} DESTINATION include/gtsam_unstable/geometry) + +# Components to link tests in this subfolder against +set(geometry_local_libs + base + geometry + geometry_unstable) + +set (geometry_full_libs + gtsam-static + gtsam_unstable-static) + +# Exclude tests that don't work +set (geometry_excluded_tests "") + +# Add all tests +gtsam_add_subdir_tests(geometry_unstable "${geometry_local_libs}" "${geometry_full_libs}" "${geometry_excluded_tests}") + diff --git a/gtsam/unstable/geometry/Tensor1.h b/gtsam_unstable/geometry/Tensor1.h similarity index 97% rename from gtsam/unstable/geometry/Tensor1.h rename to gtsam_unstable/geometry/Tensor1.h index 63e406ef6..274a46e12 100644 --- a/gtsam/unstable/geometry/Tensor1.h +++ b/gtsam_unstable/geometry/Tensor1.h @@ -17,7 +17,7 @@ */ #pragma once -#include +#include namespace tensors { diff --git a/gtsam/unstable/geometry/Tensor1Expression.h b/gtsam_unstable/geometry/Tensor1Expression.h similarity index 98% rename from gtsam/unstable/geometry/Tensor1Expression.h rename to gtsam_unstable/geometry/Tensor1Expression.h index e06d9df06..3e2f419c3 100644 --- a/gtsam/unstable/geometry/Tensor1Expression.h +++ b/gtsam_unstable/geometry/Tensor1Expression.h @@ -21,7 +21,7 @@ #include #include #include -#include +#include namespace tensors { diff --git a/gtsam/unstable/geometry/Tensor2.h b/gtsam_unstable/geometry/Tensor2.h similarity index 97% rename from gtsam/unstable/geometry/Tensor2.h rename to gtsam_unstable/geometry/Tensor2.h index 76a0fb088..6ffd132a6 100644 --- a/gtsam/unstable/geometry/Tensor2.h +++ b/gtsam_unstable/geometry/Tensor2.h @@ -17,7 +17,7 @@ */ #pragma once -#include +#include namespace tensors { diff --git a/gtsam/unstable/geometry/Tensor2Expression.h b/gtsam_unstable/geometry/Tensor2Expression.h similarity index 99% rename from gtsam/unstable/geometry/Tensor2Expression.h rename to gtsam_unstable/geometry/Tensor2Expression.h index 8583c6396..30090203b 100644 --- a/gtsam/unstable/geometry/Tensor2Expression.h +++ b/gtsam_unstable/geometry/Tensor2Expression.h @@ -20,7 +20,7 @@ #include #include -#include +#include namespace tensors { diff --git a/gtsam/unstable/geometry/Tensor3.h b/gtsam_unstable/geometry/Tensor3.h similarity index 98% rename from gtsam/unstable/geometry/Tensor3.h rename to gtsam_unstable/geometry/Tensor3.h index 660b30be9..56e2bd52c 100644 --- a/gtsam/unstable/geometry/Tensor3.h +++ b/gtsam_unstable/geometry/Tensor3.h @@ -17,7 +17,7 @@ */ #pragma once -#include +#include namespace tensors { diff --git a/gtsam/unstable/geometry/Tensor3Expression.h b/gtsam_unstable/geometry/Tensor3Expression.h similarity index 99% rename from gtsam/unstable/geometry/Tensor3Expression.h rename to gtsam_unstable/geometry/Tensor3Expression.h index 1e1c9990f..7982b2481 100644 --- a/gtsam/unstable/geometry/Tensor3Expression.h +++ b/gtsam_unstable/geometry/Tensor3Expression.h @@ -19,7 +19,7 @@ #pragma once #include -#include +#include namespace tensors { diff --git a/gtsam/unstable/geometry/Tensor4.h b/gtsam_unstable/geometry/Tensor4.h similarity index 96% rename from gtsam/unstable/geometry/Tensor4.h rename to gtsam_unstable/geometry/Tensor4.h index 6fde1b72c..35f2b15c4 100644 --- a/gtsam/unstable/geometry/Tensor4.h +++ b/gtsam_unstable/geometry/Tensor4.h @@ -17,7 +17,7 @@ */ #pragma once -#include +#include namespace tensors { diff --git a/gtsam/unstable/geometry/Tensor5.h b/gtsam_unstable/geometry/Tensor5.h similarity index 97% rename from gtsam/unstable/geometry/Tensor5.h rename to gtsam_unstable/geometry/Tensor5.h index 6b11cb5ed..3fe98e73c 100644 --- a/gtsam/unstable/geometry/Tensor5.h +++ b/gtsam_unstable/geometry/Tensor5.h @@ -17,7 +17,7 @@ */ #pragma once -#include +#include namespace tensors { diff --git a/gtsam/unstable/geometry/Tensor5Expression.h b/gtsam_unstable/geometry/Tensor5Expression.h similarity index 98% rename from gtsam/unstable/geometry/Tensor5Expression.h rename to gtsam_unstable/geometry/Tensor5Expression.h index 10c4b8213..808ad0a5d 100644 --- a/gtsam/unstable/geometry/Tensor5Expression.h +++ b/gtsam_unstable/geometry/Tensor5Expression.h @@ -19,7 +19,7 @@ #pragma once #include -#include +#include namespace tensors { diff --git a/gtsam/unstable/geometry/projectiveGeometry.cpp b/gtsam_unstable/geometry/projectiveGeometry.cpp similarity index 93% rename from gtsam/unstable/geometry/projectiveGeometry.cpp rename to gtsam_unstable/geometry/projectiveGeometry.cpp index 94a1d86d0..53914bd1f 100644 --- a/gtsam/unstable/geometry/projectiveGeometry.cpp +++ b/gtsam_unstable/geometry/projectiveGeometry.cpp @@ -19,8 +19,8 @@ #include #include -#include -#include +#include +#include namespace gtsam { diff --git a/gtsam/unstable/geometry/projectiveGeometry.h b/gtsam_unstable/geometry/projectiveGeometry.h similarity index 98% rename from gtsam/unstable/geometry/projectiveGeometry.h rename to gtsam_unstable/geometry/projectiveGeometry.h index 3d8faa61d..f2f05614b 100644 --- a/gtsam/unstable/geometry/projectiveGeometry.h +++ b/gtsam_unstable/geometry/projectiveGeometry.h @@ -19,7 +19,7 @@ #pragma once #include -#include +#include namespace gtsam { diff --git a/gtsam/unstable/geometry/tensorInterface.h b/gtsam_unstable/geometry/tensorInterface.h similarity index 98% rename from gtsam/unstable/geometry/tensorInterface.h rename to gtsam_unstable/geometry/tensorInterface.h index f7d5bc29f..c037cf9cc 100644 --- a/gtsam/unstable/geometry/tensorInterface.h +++ b/gtsam_unstable/geometry/tensorInterface.h @@ -18,7 +18,7 @@ #pragma once -#include +#include #include namespace gtsam { diff --git a/gtsam/unstable/geometry/tensors.h b/gtsam_unstable/geometry/tensors.h similarity index 65% rename from gtsam/unstable/geometry/tensors.h rename to gtsam_unstable/geometry/tensors.h index 80c18dffa..bae027202 100644 --- a/gtsam/unstable/geometry/tensors.h +++ b/gtsam_unstable/geometry/tensors.h @@ -29,17 +29,17 @@ namespace tensors { } // namespace tensors // Expression templates -#include -#include -#include +#include +#include +#include // Tensor4 not needed so far -#include +#include // Actual tensor classes -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include diff --git a/gtsam/unstable/geometry/tests/testFundamental.cpp b/gtsam_unstable/geometry/tests/testFundamental.cpp similarity index 92% rename from gtsam/unstable/geometry/tests/testFundamental.cpp rename to gtsam_unstable/geometry/tests/testFundamental.cpp index 93732e14c..6cbcf6df1 100644 --- a/gtsam/unstable/geometry/tests/testFundamental.cpp +++ b/gtsam_unstable/geometry/tests/testFundamental.cpp @@ -23,9 +23,9 @@ using namespace boost::assign; #include -#include -#include -#include +#include +#include +#include using namespace std; using namespace gtsam; diff --git a/gtsam/unstable/geometry/tests/testHomography2.cpp b/gtsam_unstable/geometry/tests/testHomography2.cpp similarity index 97% rename from gtsam/unstable/geometry/tests/testHomography2.cpp rename to gtsam_unstable/geometry/tests/testHomography2.cpp index fa4845304..db20f9e76 100644 --- a/gtsam/unstable/geometry/tests/testHomography2.cpp +++ b/gtsam_unstable/geometry/tests/testHomography2.cpp @@ -24,9 +24,9 @@ using namespace boost::assign; #include #include -#include -#include -#include +#include +#include +#include #include using namespace std; diff --git a/gtsam/unstable/geometry/tests/testTensors.cpp b/gtsam_unstable/geometry/tests/testTensors.cpp similarity index 98% rename from gtsam/unstable/geometry/tests/testTensors.cpp rename to gtsam_unstable/geometry/tests/testTensors.cpp index e2c40e7b1..d4f6dadb2 100644 --- a/gtsam/unstable/geometry/tests/testTensors.cpp +++ b/gtsam_unstable/geometry/tests/testTensors.cpp @@ -23,9 +23,9 @@ using namespace boost::assign; #include -#include -#include -#include +#include +#include +#include using namespace std; using namespace gtsam; diff --git a/gtsam/unstable/mainpage.dox b/gtsam_unstable/mainpage.dox similarity index 60% rename from gtsam/unstable/mainpage.dox rename to gtsam_unstable/mainpage.dox index 262dab1a6..615f22cc6 100644 --- a/gtsam/unstable/mainpage.dox +++ b/gtsam_unstable/mainpage.dox @@ -4,16 +4,16 @@ namespace gtsam { /** -\mainpage GTSAM2 +\mainpage GTSAM_UNSTABLE -\section gtsam2_overview GTSAM2 Overview +\section gtsam_unstable_overview GTSAM_UNSTABLE Overview -GTSAM2 is a set of experimental additions to GTSAM that are not fully ready to be +GTSAM_UNSTABLE is a set of experimental additions to GTSAM that are not fully ready to be integrated into the rest of the library. This library is actively maintained, and should follow the same design procedures as GTSAM. Because parts of this library are supposed to be a part of GTSAM, all code should -be in the gtsam namespace, rather than a gtsam2 namespace. +be in the gtsam namespace, rather than a gtsam_unstable namespace. */ diff --git a/gtsam_unstable/slam/CMakeLists.txt b/gtsam_unstable/slam/CMakeLists.txt new file mode 100644 index 000000000..b0442044f --- /dev/null +++ b/gtsam_unstable/slam/CMakeLists.txt @@ -0,0 +1,26 @@ +# Install headers +file(GLOB slam_headers "*.h") +install(FILES ${slam_headers} DESTINATION include/gtsam_unstable/slam) + +# Components to link tests in this subfolder against +set(slam_local_libs + slam_unstable + slam + nonlinear + linear + inference + geometry + base + ccolamd +) + +set (slam_full_libs + gtsam-static + gtsam_unstable-static) + +# Exclude tests that don't work +set (slam_excluded_tests "") + +# Add all tests +gtsam_add_subdir_tests(slam_unstable "${slam_local_libs}" "${slam_full_libs}" "${slam_excluded_tests}") + diff --git a/gtsam/unstable/slam/simulated3D.cpp b/gtsam_unstable/slam/simulated3D.cpp similarity index 95% rename from gtsam/unstable/slam/simulated3D.cpp rename to gtsam_unstable/slam/simulated3D.cpp index 84b40780d..933d1f194 100644 --- a/gtsam/unstable/slam/simulated3D.cpp +++ b/gtsam_unstable/slam/simulated3D.cpp @@ -15,7 +15,7 @@ * @author Alex Cunningham **/ -#include +#include namespace gtsam { diff --git a/gtsam/unstable/slam/simulated3D.h b/gtsam_unstable/slam/simulated3D.h similarity index 100% rename from gtsam/unstable/slam/simulated3D.h rename to gtsam_unstable/slam/simulated3D.h diff --git a/gtsam/unstable/slam/tests/testSimulated3D.cpp b/gtsam_unstable/slam/tests/testSimulated3D.cpp similarity index 97% rename from gtsam/unstable/slam/tests/testSimulated3D.cpp rename to gtsam_unstable/slam/tests/testSimulated3D.cpp index 799261451..50171bc76 100644 --- a/gtsam/unstable/slam/tests/testSimulated3D.cpp +++ b/gtsam_unstable/slam/tests/testSimulated3D.cpp @@ -21,7 +21,7 @@ #include #include #include -#include +#include using namespace gtsam; using namespace simulated3D; diff --git a/gtsam_unstable/wrap/CMakeLists.txt b/gtsam_unstable/wrap/CMakeLists.txt new file mode 100644 index 000000000..854bf50de --- /dev/null +++ b/gtsam_unstable/wrap/CMakeLists.txt @@ -0,0 +1,52 @@ +# Find wrap +find_package(Wrap REQUIRED) + +# Set up codegen +include(GtsamMatlabWrap) + +# Wrap codegen +#usage: wrap mexExtension interfacePath moduleName toolboxPath +# mexExtension : OS/CPU-dependent extension for MEX binaries +# interfacePath : *absolute* path to directory of module interface file +# moduleName : the name of the module, interface file must be called moduleName.h +# toolboxPath : the directory in which to generate the wrappers +# [mexFlags] : extra flags for the mex command + +# TODO: generate these includes programmatically +set(mexFlags "-I${Boost_INCLUDE_DIR} -I${Wrap_INCLUDE_DIR} -I${CMAKE_INSTALL_PREFIX}/include/gtsam_unstable -I${CMAKE_INSTALL_PREFIX}/include/gtsam_unstable/dynamics -I${CMAKE_INSTALL_PREFIX}/include/gtsam_unstable/discrete -L${CMAKE_INSTALL_PREFIX}/lib -lgtsam -lgtsam_unstable") +set(toolbox_path ${CMAKE_BINARY_DIR}/wrap/gtsam_unstable) +set(moduleName gtsam_unstable) + +find_mexextension() + +# Code generation command +add_custom_target(wrap_gtsam_unstable ALL COMMAND + ${Wrap_CMD} ${GTSAM_MEX_BIN_EXTENSION} ${CMAKE_CURRENT_SOURCE_DIR}/../ ${moduleName} ${toolbox_path} "${mexFlags}") + +option(gtsam_unstable_INSTALL_MATLAB_TOOLBOX "Enable/Disable installation of matlab toolbox" ON) +option(gtsam_unstable_INSTALL_MATLAB_EXAMPLES "Enable/Disable installation of matlab examples" ON) +option(gtsam_unstable_INSTALL_MATLAB_TESTS "Enable/Disable installation of matlab tests" ON) + +set(gtsam_unstable_TOOLBOX_INSTALL_PATH ${CMAKE_INSTALL_PREFIX}/borg/toolbox CACHE DOCSTRING "Path to install matlab toolbox") + +if (gtsam_unstable_INSTALL_MATLAB_TOOLBOX) + # Primary toolbox files + message(STATUS "Installing Matlab Toolbox to ${gtsam_unstable_TOOLBOX_INSTALL_PATH}") + install(DIRECTORY DESTINATION ${gtsam_unstable_TOOLBOX_INSTALL_PATH}) # make an empty folder + # exploit need for trailing slash to specify a full folder, rather than just its contents to copy + install(DIRECTORY ${toolbox_path} DESTINATION ${gtsam_unstable_TOOLBOX_INSTALL_PATH}) + + # Examples + if (gtsam_unstable_INSTALL_MATLAB_EXAMPLES) + message(STATUS "Installing Matlab Toolbox Examples") + file(GLOB matlab_examples "${CMAKE_SOURCE_DIR}/examples/matlab/*.m") + install(FILES ${matlab_examples} DESTINATION ${gtsam_unstable_TOOLBOX_INSTALL_PATH}/gtsam_unstable/examples) + endif (gtsam_unstable_INSTALL_MATLAB_EXAMPLES) + + # Tests + if (gtsam_unstable_INSTALL_MATLAB_TESTS) + message(STATUS "Installing Matlab Toolbox Tests") + file(GLOB matlab_tests "${CMAKE_SOURCE_DIR}/tests/matlab/*.m") + install(FILES ${matlab_tests} DESTINATION ${gtsam_unstable_TOOLBOX_INSTALL_PATH}/gtsam_unstable/tests) + endif (gtsam_unstable_INSTALL_MATLAB_TESTS) +endif (gtsam_unstable_INSTALL_MATLAB_TOOLBOX) diff --git a/gtsam/unstable/wrap/gtsam2.h b/gtsam_unstable/wrap/gtsam_unstable.h similarity index 95% rename from gtsam/unstable/wrap/gtsam2.h rename to gtsam_unstable/wrap/gtsam_unstable.h index 257796b7b..376706e7f 100644 --- a/gtsam/unstable/wrap/gtsam2.h +++ b/gtsam_unstable/wrap/gtsam_unstable.h @@ -1,5 +1,5 @@ /** - * Matlab toolbox interface definition for GTSAM2 + * Matlab toolbox interface definition for gtsam_unstable */ // Most things are in the gtsam namespace @@ -11,7 +11,7 @@ class gtsam::Rot3; class gtsam::Pose3; class gtsam::SharedNoiseModel; -#include +#include class PoseRTV { PoseRTV(); PoseRTV(Vector rtv); @@ -60,7 +60,7 @@ class PoseRTV { Vector translationIntegrationVec(const PoseRTV& x2, double dt) const; }; -#include +#include namespace imu { class Values {