QNX for develop branch
* GitLab version (branch QNX_7.1_v4.1.1) * ADDED: Build tested with target `install` or `all` if cross compiling for QNX * ADDED: Test Installation when building with QNX (Review this for upstreaming) * UPDATED: Build tests, fixed some unit tests. Floating points still off. * UPDATED: Tests Fix * UPDATED: all non-serialization tests working. * QNX 8.0: Working version. * REMOVED: Removal of test prints * UPDATED: formatting to match, removed commented out testing linesrelease/4.3a0
parent
89fbe4bd2e
commit
93f463ddbf
|
@ -207,7 +207,8 @@ if(${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (NOT MSVC)
|
if ((NOT MSVC) AND (NOT QNX))
|
||||||
|
option(GTSAM_BUILD_WITH_MARCH_NATIVE "Enable/Disable building with all instructions supported by native architecture (binary may not be portable!)" ON)
|
||||||
if(GTSAM_BUILD_WITH_MARCH_NATIVE)
|
if(GTSAM_BUILD_WITH_MARCH_NATIVE)
|
||||||
# Check if Apple OS and compiler is [Apple]Clang
|
# Check if Apple OS and compiler is [Apple]Clang
|
||||||
if(APPLE AND (${CMAKE_CXX_COMPILER_ID} MATCHES "^(Apple)?Clang$"))
|
if(APPLE AND (${CMAKE_CXX_COMPILER_ID} MATCHES "^(Apple)?Clang$"))
|
||||||
|
|
|
@ -197,9 +197,11 @@ macro(gtsamAddTestsGlob_impl groupName globPatterns excludedFiles linkLibraries)
|
||||||
|
|
||||||
# Add TOPSRCDIR
|
# Add TOPSRCDIR
|
||||||
set_property(SOURCE ${script_src} APPEND PROPERTY COMPILE_DEFINITIONS "TOPSRCDIR=\"${GTSAM_SOURCE_DIR}\"")
|
set_property(SOURCE ${script_src} APPEND PROPERTY COMPILE_DEFINITIONS "TOPSRCDIR=\"${GTSAM_SOURCE_DIR}\"")
|
||||||
|
|
||||||
# Exclude from 'make all' and 'make install'
|
# Exclude from 'make all' and 'make install'
|
||||||
set_target_properties(${script_name} PROPERTIES EXCLUDE_FROM_ALL ON)
|
if(NOT QNX OR NOT DEFINED ENV{QNX_BUILD_TESTS})
|
||||||
|
set_target_properties(${script_name} PROPERTIES EXCLUDE_FROM_ALL ON)
|
||||||
|
endif()
|
||||||
|
|
||||||
# Configure target folder (for MSVC and Xcode)
|
# Configure target folder (for MSVC and Xcode)
|
||||||
set_property(TARGET ${script_name} PROPERTY FOLDER "Unit tests/${groupName}")
|
set_property(TARGET ${script_name} PROPERTY FOLDER "Unit tests/${groupName}")
|
||||||
|
@ -240,8 +242,10 @@ macro(gtsamAddTestsGlob_impl groupName globPatterns excludedFiles linkLibraries)
|
||||||
set_property(SOURCE ${script_srcs} APPEND PROPERTY COMPILE_DEFINITIONS "TOPSRCDIR=\"${GTSAM_SOURCE_DIR}\"")
|
set_property(SOURCE ${script_srcs} APPEND PROPERTY COMPILE_DEFINITIONS "TOPSRCDIR=\"${GTSAM_SOURCE_DIR}\"")
|
||||||
|
|
||||||
# Exclude from 'make all' and 'make install'
|
# Exclude from 'make all' and 'make install'
|
||||||
set_target_properties(${target_name} PROPERTIES EXCLUDE_FROM_ALL ON)
|
if(NOT QNX OR NOT DEFINED ENV{QNX_BUILD_TESTS})
|
||||||
|
set_target_properties(${target_name} PROPERTIES EXCLUDE_FROM_ALL ON)
|
||||||
|
endif()
|
||||||
|
|
||||||
# Configure target folder (for MSVC and Xcode)
|
# Configure target folder (for MSVC and Xcode)
|
||||||
set_property(TARGET ${script_name} PROPERTY FOLDER "Unit tests")
|
set_property(TARGET ${script_name} PROPERTY FOLDER "Unit tests")
|
||||||
endif()
|
endif()
|
||||||
|
|
|
@ -22,7 +22,7 @@ if(GTSAM_UNSTABLE_AVAILABLE)
|
||||||
print_enabled_config(${GTSAM_UNSTABLE_INSTALL_MATLAB_TOOLBOX} "Build MATLAB Toolbox for unstable")
|
print_enabled_config(${GTSAM_UNSTABLE_INSTALL_MATLAB_TOOLBOX} "Build MATLAB Toolbox for unstable")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(NOT MSVC AND NOT XCODE_VERSION)
|
if(NOT MSVC AND NOT XCODE_VERSION AND NOT QNX)
|
||||||
print_enabled_config(${GTSAM_BUILD_WITH_MARCH_NATIVE} "Build for native architecture ")
|
print_enabled_config(${GTSAM_BUILD_WITH_MARCH_NATIVE} "Build for native architecture ")
|
||||||
print_config("Build type" "${CMAKE_BUILD_TYPE}")
|
print_config("Build type" "${CMAKE_BUILD_TYPE}")
|
||||||
print_config("C compilation flags" "${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS_${CMAKE_BUILD_TYPE_UPPER}}")
|
print_config("C compilation flags" "${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS_${CMAKE_BUILD_TYPE_UPPER}}")
|
||||||
|
|
|
@ -1,2 +1,7 @@
|
||||||
file(GLOB ceres_headers "${CMAKE_CURRENT_SOURCE_DIR}/*.h")
|
file(GLOB ceres_headers "${CMAKE_CURRENT_SOURCE_DIR}/*.h")
|
||||||
install(FILES ${ceres_headers} DESTINATION include/gtsam/3rdparty/ceres)
|
if(NOT QNX)
|
||||||
|
install(FILES ${ceres_headers} DESTINATION include/gtsam/3rdparty/ceres)
|
||||||
|
else()
|
||||||
|
#Install in the install include directory rather than at the install prefix.
|
||||||
|
install(FILES ${ceres_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam/3rdparty/ceres)
|
||||||
|
endif()
|
|
@ -1 +1,6 @@
|
||||||
install(FILES metis.h DESTINATION include/gtsam/3rdparty/metis)
|
if(NOT QNX)
|
||||||
|
install(FILES metis.h DESTINATION include/gtsam/3rdparty/metis)
|
||||||
|
else()
|
||||||
|
#Install in the install include directory rather than at the install prefix.
|
||||||
|
install(FILES metis.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam/3rdparty/metis)
|
||||||
|
endif()
|
|
@ -99,6 +99,10 @@ IF(MSVC)
|
||||||
ENDIF(MSVC)
|
ENDIF(MSVC)
|
||||||
|
|
||||||
# Generate and install config and dllexport files
|
# Generate and install config and dllexport files
|
||||||
|
#For config.in searches
|
||||||
|
if(QNX)
|
||||||
|
set(QNX_TARGET_DATASET_DIR "$ENV{QNX_TARGET_DATASET_DIR}")
|
||||||
|
endif()
|
||||||
configure_file(config.h.in config.h)
|
configure_file(config.h.in config.h)
|
||||||
set(library_name GTSAM) # For substitution in dllexport.h.in
|
set(library_name GTSAM) # For substitution in dllexport.h.in
|
||||||
configure_file("${GTSAM_SOURCE_DIR}/cmake/dllexport.h.in" "dllexport.h")
|
configure_file("${GTSAM_SOURCE_DIR}/cmake/dllexport.h.in" "dllexport.h")
|
||||||
|
|
|
@ -1,9 +1,17 @@
|
||||||
# Install headers
|
# Install headers
|
||||||
|
# Header groups
|
||||||
file(GLOB base_headers "*.h")
|
file(GLOB base_headers "*.h")
|
||||||
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)
|
|
||||||
|
# Installation
|
||||||
|
if(NOT QNX)
|
||||||
|
install(FILES ${base_headers} DESTINATION include/gtsam/base)
|
||||||
|
install(FILES ${base_headers_tree} DESTINATION include/gtsam/base/treeTraversal)
|
||||||
|
else()
|
||||||
|
# For QNX, Install in the Installation's Include Directory
|
||||||
|
install(FILES ${base_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam/base)
|
||||||
|
install(FILES ${base_headers_tree} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam/base/treeTraversal)
|
||||||
|
endif()
|
||||||
|
|
||||||
# Build tests
|
# Build tests
|
||||||
add_subdirectory(tests)
|
add_subdirectory(tests)
|
||||||
|
|
|
@ -52,6 +52,10 @@ namespace boost { namespace serialization { struct U; } }
|
||||||
namespace std { template<> struct is_trivially_default_constructible<boost::serialization::U> : std::false_type {}; }
|
namespace std { template<> struct is_trivially_default_constructible<boost::serialization::U> : std::false_type {}; }
|
||||||
namespace std { template<> struct is_trivially_copy_constructible<boost::serialization::U> : std::false_type {}; }
|
namespace std { template<> struct is_trivially_copy_constructible<boost::serialization::U> : std::false_type {}; }
|
||||||
namespace std { template<> struct is_trivially_move_constructible<boost::serialization::U> : std::false_type {}; }
|
namespace std { template<> struct is_trivially_move_constructible<boost::serialization::U> : std::false_type {}; }
|
||||||
|
// QCC (The QNX GCC-based Compiler) also has this issue, but it also extends to trivial destructor.
|
||||||
|
#if defined(__QNX__)
|
||||||
|
namespace std { template<> struct is_trivially_destructible<boost::serialization::U> : std::false_type {}; }
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,10 @@
|
||||||
# Install headers
|
# Install headers
|
||||||
file(GLOB basis_headers "*.h")
|
file(GLOB basis_headers "*.h")
|
||||||
install(FILES ${basis_headers} DESTINATION include/gtsam/basis)
|
if(NOT QNX)
|
||||||
|
install(FILES ${basis_headers} DESTINATION include/gtsam/basis)
|
||||||
|
else()
|
||||||
|
install(FILES ${basis_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam/basis)
|
||||||
|
endif()
|
||||||
|
|
||||||
# Build tests
|
# Build tests
|
||||||
add_subdirectory(tests)
|
add_subdirectory(tests)
|
||||||
|
|
|
@ -26,7 +26,12 @@
|
||||||
|
|
||||||
// Paths to example datasets distributed with GTSAM
|
// Paths to example datasets distributed with GTSAM
|
||||||
#define GTSAM_SOURCE_TREE_DATASET_DIR "@GTSAM_SOURCE_DIR@/examples/Data"
|
#define GTSAM_SOURCE_TREE_DATASET_DIR "@GTSAM_SOURCE_DIR@/examples/Data"
|
||||||
|
#if !defined(__QNX__)
|
||||||
#define GTSAM_INSTALLED_DATASET_DIR "@GTSAM_TOOLBOX_INSTALL_PATH@/gtsam_examples/Data"
|
#define GTSAM_INSTALLED_DATASET_DIR "@GTSAM_TOOLBOX_INSTALL_PATH@/gtsam_examples/Data"
|
||||||
|
#else
|
||||||
|
//Set toolbox path to the path on the target.
|
||||||
|
#define GTSAM_INSTALLED_DATASET_DIR "@QNX_TARGET_DATASET_DIR@/gtsam_examples/Data"
|
||||||
|
#endif
|
||||||
|
|
||||||
// Whether GTSAM is compiled to use quaternions for Rot3 (otherwise uses rotation matrices)
|
// Whether GTSAM is compiled to use quaternions for Rot3 (otherwise uses rotation matrices)
|
||||||
#cmakedefine GTSAM_USE_QUATERNIONS
|
#cmakedefine GTSAM_USE_QUATERNIONS
|
||||||
|
|
|
@ -1,7 +1,12 @@
|
||||||
# Install headers
|
# Install headers
|
||||||
set(subdir discrete)
|
set(subdir discrete)
|
||||||
file(GLOB discrete_headers "*.h")
|
file(GLOB discrete_headers "*.h")
|
||||||
install(FILES ${discrete_headers} DESTINATION include/gtsam/discrete)
|
# FIXME: exclude headers
|
||||||
|
if(QNX)
|
||||||
|
install(FILES ${discrete_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam/discrete)
|
||||||
|
else()
|
||||||
|
install(FILES ${discrete_headers} DESTINATION include/gtsam/discrete)
|
||||||
|
endif()
|
||||||
|
|
||||||
# Add all tests
|
# Add all tests
|
||||||
add_subdirectory(tests)
|
add_subdirectory(tests)
|
||||||
|
|
|
@ -1,6 +1,10 @@
|
||||||
# Install headers
|
# Install headers
|
||||||
file(GLOB geometry_headers "*.h")
|
file(GLOB geometry_headers "*.h")
|
||||||
install(FILES ${geometry_headers} DESTINATION include/gtsam/geometry)
|
if(QNX)
|
||||||
|
install(FILES ${geometry_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam/geometry)
|
||||||
|
else()
|
||||||
|
install(FILES ${geometry_headers} DESTINATION include/gtsam/geometry)
|
||||||
|
endif()
|
||||||
|
|
||||||
# Build tests
|
# Build tests
|
||||||
add_subdirectory(tests)
|
add_subdirectory(tests)
|
||||||
|
|
|
@ -1,6 +1,10 @@
|
||||||
# Install headers
|
# Install headers
|
||||||
file(GLOB inference_headers "*.h")
|
file(GLOB inference_headers "*.h")
|
||||||
install(FILES ${inference_headers} DESTINATION include/gtsam/inference)
|
if(QNX)
|
||||||
|
install(FILES ${inference_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam/inference)
|
||||||
|
else()
|
||||||
|
install(FILES ${inference_headers} DESTINATION include/gtsam/inference)
|
||||||
|
endif()
|
||||||
|
|
||||||
# Build tests
|
# Build tests
|
||||||
add_subdirectory(tests)
|
add_subdirectory(tests)
|
||||||
|
|
|
@ -303,7 +303,7 @@ TEST(Ordering, MetisLoop) {
|
||||||
symbolicGraph.push_factor(0, 5);
|
symbolicGraph.push_factor(0, 5);
|
||||||
|
|
||||||
// METIS
|
// METIS
|
||||||
#if defined(__APPLE__)
|
#if defined(__APPLE__) || defined(__QNX__)
|
||||||
{
|
{
|
||||||
Ordering actual = Ordering::Create(Ordering::METIS, symbolicGraph);
|
Ordering actual = Ordering::Create(Ordering::METIS, symbolicGraph);
|
||||||
// - P( 1 0 3)
|
// - P( 1 0 3)
|
||||||
|
|
|
@ -1,6 +1,10 @@
|
||||||
# Install headers
|
# Install headers
|
||||||
file(GLOB linear_headers "*.h")
|
file(GLOB linear_headers "*.h")
|
||||||
install(FILES ${linear_headers} DESTINATION include/gtsam/linear)
|
if(QNX)
|
||||||
|
install(FILES ${linear_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam/linear)
|
||||||
|
else()
|
||||||
|
install(FILES ${linear_headers} DESTINATION include/gtsam/linear)
|
||||||
|
endif()
|
||||||
|
|
||||||
# Build tests
|
# Build tests
|
||||||
add_subdirectory(tests)
|
add_subdirectory(tests)
|
||||||
|
|
|
@ -1,6 +1,10 @@
|
||||||
# Install headers
|
# Install headers
|
||||||
file(GLOB navigation_headers "*.h")
|
file(GLOB navigation_headers "*.h")
|
||||||
install(FILES ${navigation_headers} DESTINATION include/gtsam/navigation)
|
if(QNX)
|
||||||
|
install(FILES ${navigation_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam/navigation)
|
||||||
|
else()
|
||||||
|
install(FILES ${navigation_headers} DESTINATION include/gtsam/navigation)
|
||||||
|
endif()
|
||||||
|
|
||||||
# Add all tests
|
# Add all tests
|
||||||
add_subdirectory(tests)
|
add_subdirectory(tests)
|
||||||
|
|
|
@ -1,9 +1,16 @@
|
||||||
# Install headers
|
# Install headers
|
||||||
file(GLOB nonlinear_headers "*.h")
|
file(GLOB nonlinear_headers "*.h")
|
||||||
install(FILES ${nonlinear_headers} DESTINATION "include/gtsam/nonlinear")
|
if(QNX)
|
||||||
|
install(FILES ${nonlinear_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam/nonlinear)
|
||||||
|
else()
|
||||||
|
install(FILES ${nonlinear_headers} DESTINATION include/gtsam/nonlinear)
|
||||||
|
endif()
|
||||||
|
|
||||||
file(GLOB nonlinear_headers_internal "internal/*.h")
|
file(GLOB nonlinear_headers_internal "internal/*.h")
|
||||||
install(FILES ${nonlinear_headers_internal} DESTINATION "include/gtsam/nonlinear/internal")
|
if(QNX)
|
||||||
|
install(FILES ${nonlinear_headers_internal} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam/nonlinear/internal)
|
||||||
|
else()
|
||||||
|
install(FILES ${nonlinear_headers_internal} DESTINATION include/gtsam/nonlinear/internal)
|
||||||
|
endif()
|
||||||
# Build tests
|
# Build tests
|
||||||
add_subdirectory(tests)
|
add_subdirectory(tests)
|
||||||
|
|
|
@ -32,7 +32,6 @@ using namespace std;
|
||||||
using namespace gtsam;
|
using namespace gtsam;
|
||||||
using namespace gtsam::serializationTestHelpers;
|
using namespace gtsam::serializationTestHelpers;
|
||||||
|
|
||||||
|
|
||||||
/* ************************************************************************* */
|
/* ************************************************************************* */
|
||||||
// Create GUIDs for Noisemodels
|
// Create GUIDs for Noisemodels
|
||||||
BOOST_CLASS_EXPORT_GUID(gtsam::noiseModel::Diagonal, "gtsam_noiseModel_Diagonal")
|
BOOST_CLASS_EXPORT_GUID(gtsam::noiseModel::Diagonal, "gtsam_noiseModel_Diagonal")
|
||||||
|
@ -153,9 +152,15 @@ TEST(Serialization, NoiseModelFactor1_backwards_compatibility) {
|
||||||
|
|
||||||
// Deserialize XML
|
// Deserialize XML
|
||||||
PriorFactor<Pose3> factor_deserialized_xml = PriorFactor<Pose3>();
|
PriorFactor<Pose3> factor_deserialized_xml = PriorFactor<Pose3>();
|
||||||
|
#if !defined(__QNX__)
|
||||||
deserializeFromXMLFile(GTSAM_SOURCE_TREE_DATASET_DIR
|
deserializeFromXMLFile(GTSAM_SOURCE_TREE_DATASET_DIR
|
||||||
"/../../gtsam/nonlinear/tests/priorFactor.xml",
|
"/../../gtsam/nonlinear/tests/priorFactor.xml",
|
||||||
factor_deserialized_xml);
|
factor_deserialized_xml);
|
||||||
|
#else
|
||||||
|
bool c = deserializeFromXMLFile(
|
||||||
|
"priorFactor.xml",
|
||||||
|
factor_deserialized_xml);
|
||||||
|
#endif
|
||||||
EXPECT(assert_equal(factor, factor_deserialized_xml));
|
EXPECT(assert_equal(factor, factor_deserialized_xml));
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,10 @@
|
||||||
# Install headers
|
# Install headers
|
||||||
file(GLOB sam_headers "*.h")
|
file(GLOB sam_headers "*.h")
|
||||||
install(FILES ${sam_headers} DESTINATION include/gtsam/sam)
|
if(QNX)
|
||||||
|
install(FILES ${sam_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam/sam)
|
||||||
|
else()
|
||||||
|
install(FILES ${sam_headers} DESTINATION include/gtsam/sam)
|
||||||
|
endif()
|
||||||
|
|
||||||
# Build tests
|
# Build tests
|
||||||
add_subdirectory(tests)
|
add_subdirectory(tests)
|
||||||
|
|
|
@ -1,6 +1,10 @@
|
||||||
# Install headers
|
# Install headers
|
||||||
file(GLOB sfm_headers "*.h")
|
file(GLOB sfm_headers "*.h")
|
||||||
install(FILES ${sfm_headers} DESTINATION include/gtsam/sfm)
|
if(QNX)
|
||||||
|
install(FILES ${sfm_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam/sfm)
|
||||||
|
else()
|
||||||
|
install(FILES ${sfm_headers} DESTINATION include/gtsam/sfm)
|
||||||
|
endif()
|
||||||
|
|
||||||
# Build tests
|
# Build tests
|
||||||
add_subdirectory(tests)
|
add_subdirectory(tests)
|
||||||
|
|
|
@ -4,7 +4,11 @@ set (slam_excluded_headers #"")
|
||||||
)
|
)
|
||||||
|
|
||||||
file(GLOB slam_headers "*.h")
|
file(GLOB slam_headers "*.h")
|
||||||
install(FILES ${slam_headers} DESTINATION include/gtsam/slam)
|
if(QNX)
|
||||||
|
install(FILES ${slam_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam/slam)
|
||||||
|
else()
|
||||||
|
install(FILES ${slam_headers} DESTINATION include/gtsam/slam)
|
||||||
|
endif()
|
||||||
|
|
||||||
# Build tests
|
# Build tests
|
||||||
add_subdirectory(tests)
|
add_subdirectory(tests)
|
||||||
|
|
|
@ -1,6 +1,10 @@
|
||||||
# Install headers
|
# Install headers
|
||||||
file(GLOB symbolic_headers "*.h")
|
file(GLOB symbolic_headers "*.h")
|
||||||
install(FILES ${symbolic_headers} DESTINATION include/gtsam/symbolic)
|
if(QNX)
|
||||||
|
install(FILES ${symbolic_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam/symbolic)
|
||||||
|
else()
|
||||||
|
install(FILES ${symbolic_headers} DESTINATION include/gtsam/symbolic)
|
||||||
|
endif()
|
||||||
|
|
||||||
# Build tests
|
# Build tests
|
||||||
add_subdirectory(tests)
|
add_subdirectory(tests)
|
||||||
|
|
|
@ -687,7 +687,7 @@ TEST(SymbolicBayesTree, COLAMDvsMETIS) {
|
||||||
{
|
{
|
||||||
Ordering ordering = Ordering::Create(Ordering::METIS, sfg);
|
Ordering ordering = Ordering::Create(Ordering::METIS, sfg);
|
||||||
// Linux and Mac split differently when using Metis
|
// Linux and Mac split differently when using Metis
|
||||||
#if defined(__APPLE__)
|
#if defined(__APPLE__) || defined(__QNX__)
|
||||||
EXPECT(assert_equal(Ordering{5, 4, 2, 1, 0, 3}, ordering));
|
EXPECT(assert_equal(Ordering{5, 4, 2, 1, 0, 3}, ordering));
|
||||||
#elif defined(_WIN32)
|
#elif defined(_WIN32)
|
||||||
EXPECT(assert_equal(Ordering{4, 3, 1, 0, 5, 2}, ordering));
|
EXPECT(assert_equal(Ordering{4, 3, 1, 0, 5, 2}, ordering));
|
||||||
|
@ -700,7 +700,7 @@ TEST(SymbolicBayesTree, COLAMDvsMETIS) {
|
||||||
// | | - P( 5 | 0 4)
|
// | | - P( 5 | 0 4)
|
||||||
// | - P( 2 | 1 3)
|
// | - P( 2 | 1 3)
|
||||||
SymbolicBayesTree expected;
|
SymbolicBayesTree expected;
|
||||||
#if defined(__APPLE__)
|
#if defined(__APPLE__) || defined(__QNX__)
|
||||||
expected.insertRoot(
|
expected.insertRoot(
|
||||||
NodeClique(Keys(1)(0)(3), 3,
|
NodeClique(Keys(1)(0)(3), 3,
|
||||||
Children( //
|
Children( //
|
||||||
|
|
|
@ -1,6 +1,10 @@
|
||||||
# Install headers
|
# Install headers
|
||||||
file(GLOB base_headers "*.h")
|
file(GLOB base_headers "*.h")
|
||||||
install(FILES ${base_headers} DESTINATION include/gtsam_unstable/base)
|
if(QNX)
|
||||||
|
install(FILES ${base_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam_unstable/base)
|
||||||
|
else()
|
||||||
|
install(FILES ${base_headers} DESTINATION include/gtsam_unstable/base)
|
||||||
|
endif()
|
||||||
|
|
||||||
# Add all tests
|
# Add all tests
|
||||||
add_subdirectory(tests)
|
add_subdirectory(tests)
|
||||||
|
|
|
@ -1,6 +1,10 @@
|
||||||
# Install headers
|
# Install headers
|
||||||
file(GLOB discrete_headers "*.h")
|
file(GLOB discrete_headers "*.h")
|
||||||
install(FILES ${discrete_headers} DESTINATION include/gtsam_unstable/discrete)
|
if(QNX)
|
||||||
|
install(FILES ${discrete_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam_unstable/discrete)
|
||||||
|
else()
|
||||||
|
install(FILES ${discrete_headers} DESTINATION include/gtsam_unstable/discrete)
|
||||||
|
endif()
|
||||||
|
|
||||||
# Add all tests
|
# Add all tests
|
||||||
add_subdirectory(tests)
|
add_subdirectory(tests)
|
||||||
|
|
|
@ -140,7 +140,11 @@ TEST(schedulingExample, test) {
|
||||||
|
|
||||||
/* ************************************************************************* */
|
/* ************************************************************************* */
|
||||||
TEST(schedulingExample, smallFromFile) {
|
TEST(schedulingExample, smallFromFile) {
|
||||||
|
#if !defined(__QNX__)
|
||||||
string path(TOPSRCDIR "/gtsam_unstable/discrete/examples/");
|
string path(TOPSRCDIR "/gtsam_unstable/discrete/examples/");
|
||||||
|
#else
|
||||||
|
string path(""); //Same Directory
|
||||||
|
#endif
|
||||||
Scheduler s(2, path + "small.csv");
|
Scheduler s(2, path + "small.csv");
|
||||||
|
|
||||||
// add areas
|
// add areas
|
||||||
|
|
|
@ -1,6 +1,10 @@
|
||||||
# Install headers
|
# Install headers
|
||||||
file(GLOB dynamics_headers "*.h")
|
file(GLOB dynamics_headers "*.h")
|
||||||
install(FILES ${dynamics_headers} DESTINATION include/gtsam_unstable/dynamics)
|
if(QNX)
|
||||||
|
install(FILES ${dynamics_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam_unstable/dynamics)
|
||||||
|
else()
|
||||||
|
install(FILES ${dynamics_headers} DESTINATION include/gtsam_unstable/dynamics)
|
||||||
|
endif()
|
||||||
|
|
||||||
# Add all tests
|
# Add all tests
|
||||||
add_subdirectory(tests)
|
add_subdirectory(tests)
|
||||||
|
|
|
@ -1,6 +1,10 @@
|
||||||
# Install headers
|
# Install headers
|
||||||
file(GLOB geometry_headers "*.h")
|
file(GLOB geometry_headers "*.h")
|
||||||
install(FILES ${geometry_headers} DESTINATION include/gtsam_unstable/geometry)
|
if(QNX)
|
||||||
|
install(FILES ${geometry_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam_unstable/geometry)
|
||||||
|
else()
|
||||||
|
install(FILES ${geometry_headers} DESTINATION include/gtsam_unstable/geometry)
|
||||||
|
endif()
|
||||||
|
|
||||||
# Add all tests
|
# Add all tests
|
||||||
add_subdirectory(tests)
|
add_subdirectory(tests)
|
||||||
|
|
|
@ -1,6 +1,10 @@
|
||||||
# Install headers
|
# Install headers
|
||||||
file(GLOB linear_headers "*.h")
|
file(GLOB linear_headers "*.h")
|
||||||
install(FILES ${linear_headers} DESTINATION include/gtsam_unstable/linear)
|
if(QNX)
|
||||||
|
install(FILES ${linear_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam_unstable/linear)
|
||||||
|
else()
|
||||||
|
install(FILES ${linear_headers} DESTINATION include/gtsam_unstable/linear)
|
||||||
|
endif()
|
||||||
|
|
||||||
# Add all tests
|
# Add all tests
|
||||||
add_subdirectory(tests)
|
add_subdirectory(tests)
|
||||||
|
|
|
@ -1,6 +1,10 @@
|
||||||
# Install headers
|
# Install headers
|
||||||
file(GLOB nonlinear_headers "*.h")
|
file(GLOB nonlinear_headers "*.h")
|
||||||
install(FILES ${nonlinear_headers} DESTINATION include/gtsam_unstable/nonlinear)
|
if(QNX)
|
||||||
|
install(FILES ${nonlinear_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam_unstable/nonlinear)
|
||||||
|
else()
|
||||||
|
install(FILES ${nonlinear_headers} DESTINATION include/gtsam_unstable/nonlinear)
|
||||||
|
endif()
|
||||||
|
|
||||||
# Add all tests
|
# Add all tests
|
||||||
add_subdirectory(tests)
|
add_subdirectory(tests)
|
||||||
|
|
|
@ -1,5 +1,9 @@
|
||||||
# Install headers
|
# Install headers
|
||||||
file(GLOB partition_headers "*.h")
|
file(GLOB partition_headers "*.h")
|
||||||
install(FILES ${partition_headers} DESTINATION include/gtsam_unstable/partition)
|
if(QNX)
|
||||||
|
install(FILES ${partition_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam_unstable/partition)
|
||||||
|
else()
|
||||||
|
install(FILES ${partition_headers} DESTINATION include/gtsam_unstable/partition)
|
||||||
|
endif()
|
||||||
|
|
||||||
add_subdirectory(tests)
|
add_subdirectory(tests)
|
||||||
|
|
|
@ -104,7 +104,13 @@ TEST ( Partition, edgePartitionByMetis2 )
|
||||||
graph.push_back(std::make_shared<GenericFactor3D>(1, 2, 1, NODE_POSE_3D, NODE_POSE_3D, 1));
|
graph.push_back(std::make_shared<GenericFactor3D>(1, 2, 1, NODE_POSE_3D, NODE_POSE_3D, 1));
|
||||||
graph.push_back(std::make_shared<GenericFactor3D>(2, 3, 2, NODE_POSE_3D, NODE_POSE_3D, 20));
|
graph.push_back(std::make_shared<GenericFactor3D>(2, 3, 2, NODE_POSE_3D, NODE_POSE_3D, 20));
|
||||||
graph.push_back(std::make_shared<GenericFactor3D>(3, 4, 3, NODE_POSE_3D, NODE_POSE_3D, 1));
|
graph.push_back(std::make_shared<GenericFactor3D>(3, 4, 3, NODE_POSE_3D, NODE_POSE_3D, 1));
|
||||||
|
//QNX Testing: fix tiebreaker to match
|
||||||
|
#if !defined(__QNX__)
|
||||||
std::vector<size_t> keys{0, 1, 2, 3, 4};
|
std::vector<size_t> keys{0, 1, 2, 3, 4};
|
||||||
|
#else
|
||||||
|
//Anything where 2 is before 0 will work.
|
||||||
|
std::vector<size_t> keys{2, 0, 3, 1, 4};
|
||||||
|
#endif
|
||||||
|
|
||||||
WorkSpace workspace(6);
|
WorkSpace workspace(6);
|
||||||
std::optional<MetisResult> actual = edgePartitionByMetis<GenericGraph3D>(graph, keys,
|
std::optional<MetisResult> actual = edgePartitionByMetis<GenericGraph3D>(graph, keys,
|
||||||
|
|
|
@ -5,7 +5,11 @@ set (slam_excluded_headers #"")
|
||||||
|
|
||||||
file(GLOB slam_headers "*.h")
|
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)
|
if(QNX)
|
||||||
|
install(FILES ${slam_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam_unstable/slam)
|
||||||
|
else()
|
||||||
|
install(FILES ${slam_headers} DESTINATION include/gtsam_unstable/slam)
|
||||||
|
endif()
|
||||||
|
|
||||||
# Add all tests
|
# Add all tests
|
||||||
add_subdirectory(tests)
|
add_subdirectory(tests)
|
||||||
|
|
|
@ -634,7 +634,6 @@ TEST(SubgraphSolver, Solves) {
|
||||||
KeyInfo keyInfo(Ab);
|
KeyInfo keyInfo(Ab);
|
||||||
std::map<Key, Vector> lambda;
|
std::map<Key, Vector> lambda;
|
||||||
system.build(Ab, keyInfo, lambda);
|
system.build(Ab, keyInfo, lambda);
|
||||||
|
|
||||||
// Create a perturbed (non-zero) RHS
|
// Create a perturbed (non-zero) RHS
|
||||||
const auto xbar = system.Rc1().optimize(); // merely for use in zero below
|
const auto xbar = system.Rc1().optimize(); // merely for use in zero below
|
||||||
auto values_y = VectorValues::Zero(xbar);
|
auto values_y = VectorValues::Zero(xbar);
|
||||||
|
|
Loading…
Reference in New Issue