diff --git a/cmake/GtsamBuildTypes.cmake b/cmake/GtsamBuildTypes.cmake index 55ddf61bc..cf0dfdfc7 100644 --- a/cmake/GtsamBuildTypes.cmake +++ b/cmake/GtsamBuildTypes.cmake @@ -207,7 +207,8 @@ if(${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang") 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) # Check if Apple OS and compiler is [Apple]Clang if(APPLE AND (${CMAKE_CXX_COMPILER_ID} MATCHES "^(Apple)?Clang$")) diff --git a/cmake/GtsamTesting.cmake b/cmake/GtsamTesting.cmake index 47b059213..8b290dd85 100644 --- a/cmake/GtsamTesting.cmake +++ b/cmake/GtsamTesting.cmake @@ -199,7 +199,9 @@ macro(gtsamAddTestsGlob_impl groupName globPatterns excludedFiles linkLibraries) set_property(SOURCE ${script_src} APPEND PROPERTY COMPILE_DEFINITIONS "TOPSRCDIR=\"${GTSAM_SOURCE_DIR}\"") # Exclude from 'make all' and 'make install' - set_target_properties(${script_name} PROPERTIES EXCLUDE_FROM_ALL ON) + if(NOT QNX) + set_target_properties(${script_name} PROPERTIES EXCLUDE_FROM_ALL ON) + endif() # Configure target folder (for MSVC and Xcode) set_property(TARGET ${script_name} PROPERTY FOLDER "Unit tests/${groupName}") @@ -240,8 +242,13 @@ macro(gtsamAddTestsGlob_impl groupName globPatterns excludedFiles linkLibraries) set_property(SOURCE ${script_srcs} APPEND PROPERTY COMPILE_DEFINITIONS "TOPSRCDIR=\"${GTSAM_SOURCE_DIR}\"") # Exclude from 'make all' and 'make install' - set_target_properties(${target_name} PROPERTIES EXCLUDE_FROM_ALL ON) - + # QNX is cross-compiled for, and does not support make, cmake, or ctest natively. + # Therefore, running tests must be done by manually copying test executables and required data files over. + # for more info, check PR#1968 https://github.com/borglab/gtsam/pull/1968 + if(NOT QNX) + set_target_properties(${target_name} PROPERTIES EXCLUDE_FROM_ALL ON) + endif() + # Configure target folder (for MSVC and Xcode) set_property(TARGET ${script_name} PROPERTY FOLDER "Unit tests") endif() diff --git a/cmake/HandlePrintConfiguration.cmake b/cmake/HandlePrintConfiguration.cmake index ac68be20f..17693e46c 100644 --- a/cmake/HandlePrintConfiguration.cmake +++ b/cmake/HandlePrintConfiguration.cmake @@ -22,7 +22,7 @@ if(GTSAM_UNSTABLE_AVAILABLE) print_enabled_config(${GTSAM_UNSTABLE_INSTALL_MATLAB_TOOLBOX} "Build MATLAB Toolbox for unstable") 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_config("Build type" "${CMAKE_BUILD_TYPE}") print_config("C compilation flags" "${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS_${CMAKE_BUILD_TYPE_UPPER}}") diff --git a/gtsam/3rdparty/GeographicLib/include/GeographicLib/CMakeLists.txt b/gtsam/3rdparty/GeographicLib/include/GeographicLib/CMakeLists.txt index d4029a1e5..a249e02b5 100644 --- a/gtsam/3rdparty/GeographicLib/include/GeographicLib/CMakeLists.txt +++ b/gtsam/3rdparty/GeographicLib/include/GeographicLib/CMakeLists.txt @@ -1,6 +1,6 @@ # Install the header files including the generated Config.h (which is in # the build tree). file (GLOB HEADERS [A-Za-z]*.hpp) -install (FILES ${HEADERS} DESTINATION include/GeographicLib) +install (FILES ${HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/GeographicLib) install (FILES ${CMAKE_CURRENT_BINARY_DIR}/Config.h DESTINATION include/GeographicLib) diff --git a/gtsam/3rdparty/cephes/CMakeLists.txt b/gtsam/3rdparty/cephes/CMakeLists.txt index d1c8cfe0d..42fde8685 100644 --- a/gtsam/3rdparty/cephes/CMakeLists.txt +++ b/gtsam/3rdparty/cephes/CMakeLists.txt @@ -20,7 +20,7 @@ set(CEPHES_HEADER_FILES dllexport.h) # Add header files -install(FILES ${CEPHES_HEADER_FILES} DESTINATION include/gtsam/3rdparty/cephes) +install(FILES ${CEPHES_HEADER_FILES} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam/3rdparty/cephes) set(CEPHES_SOURCES cephes/airy.c diff --git a/gtsam/3rdparty/ceres/CMakeLists.txt b/gtsam/3rdparty/ceres/CMakeLists.txt index 98b2cffce..5113722f7 100644 --- a/gtsam/3rdparty/ceres/CMakeLists.txt +++ b/gtsam/3rdparty/ceres/CMakeLists.txt @@ -1,2 +1,2 @@ file(GLOB ceres_headers "${CMAKE_CURRENT_SOURCE_DIR}/*.h") -install(FILES ${ceres_headers} DESTINATION include/gtsam/3rdparty/ceres) \ No newline at end of file +install(FILES ${ceres_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam/3rdparty/ceres) diff --git a/gtsam/3rdparty/metis/include/CMakeLists.txt b/gtsam/3rdparty/metis/include/CMakeLists.txt index 73754eebf..684df7220 100644 --- a/gtsam/3rdparty/metis/include/CMakeLists.txt +++ b/gtsam/3rdparty/metis/include/CMakeLists.txt @@ -1 +1 @@ -install(FILES metis.h DESTINATION include/gtsam/3rdparty/metis) \ No newline at end of file +install(FILES metis.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam/3rdparty/metis) diff --git a/gtsam/CMakeLists.txt b/gtsam/CMakeLists.txt index 1714e72ef..a5a6f19af 100644 --- a/gtsam/CMakeLists.txt +++ b/gtsam/CMakeLists.txt @@ -100,6 +100,15 @@ IF(MSVC) ENDIF(MSVC) # Generate and install config and dllexport files +#For config.in searches +if(QNX) +# QNX is cross-compiled for, and does not support make, cmake, or ctest natively. Additionally, space is limited in our embedded usecase. +# Therefore, running tests must be done by manually copying test executables and required data files over, preferably avoiding +# copying the whole source tree. Thus, we set the default file lookup to the recommended test folder, with the option +# to manually change it. +# for more info, check PR#1968 https://github.com/borglab/gtsam/pull/1968 +set(QNX_TARGET_DATASET_DIR "/data/home/root/qnxuser/test" CACHE STRING "Path to your on-target testing folder.") +endif() configure_file(config.h.in config.h) set(library_name GTSAM) # For substitution in dllexport.h.in configure_file("${GTSAM_SOURCE_DIR}/cmake/dllexport.h.in" "dllexport.h") diff --git a/gtsam/base/CMakeLists.txt b/gtsam/base/CMakeLists.txt index 66d3ec721..1ab671bdc 100644 --- a/gtsam/base/CMakeLists.txt +++ b/gtsam/base/CMakeLists.txt @@ -1,9 +1,9 @@ # Install headers file(GLOB base_headers "*.h") -install(FILES ${base_headers} DESTINATION include/gtsam/base) +install(FILES ${base_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam/base) file(GLOB base_headers_tree "treeTraversal/*.h") -install(FILES ${base_headers_tree} DESTINATION include/gtsam/base/treeTraversal) +install(FILES ${base_headers_tree} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam/base/treeTraversal) # Build tests add_subdirectory(tests) diff --git a/gtsam/base/std_optional_serialization.h b/gtsam/base/std_optional_serialization.h index db5e994e9..322fba1e2 100644 --- a/gtsam/base/std_optional_serialization.h +++ b/gtsam/base/std_optional_serialization.h @@ -53,6 +53,10 @@ namespace boost { namespace serialization { struct U{}; } } namespace std { template<> struct is_trivially_default_constructible : std::false_type {}; } namespace std { template<> struct is_trivially_copy_constructible : std::false_type {}; } namespace std { template<> struct is_trivially_move_constructible : 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 : std::false_type {}; } +#endif #endif #endif diff --git a/gtsam/basis/CMakeLists.txt b/gtsam/basis/CMakeLists.txt index 203fd96a2..e13af1dab 100644 --- a/gtsam/basis/CMakeLists.txt +++ b/gtsam/basis/CMakeLists.txt @@ -1,6 +1,6 @@ # Install headers file(GLOB basis_headers "*.h") -install(FILES ${basis_headers} DESTINATION include/gtsam/basis) +install(FILES ${basis_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam/basis) # Build tests add_subdirectory(tests) diff --git a/gtsam/config.h.in b/gtsam/config.h.in index 58b93ee1c..9ba562cc4 100644 --- a/gtsam/config.h.in +++ b/gtsam/config.h.in @@ -26,7 +26,12 @@ // Paths to example datasets distributed with GTSAM #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" +#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) #cmakedefine GTSAM_USE_QUATERNIONS diff --git a/gtsam/discrete/CMakeLists.txt b/gtsam/discrete/CMakeLists.txt index 1c6aa9747..bd4d823c5 100644 --- a/gtsam/discrete/CMakeLists.txt +++ b/gtsam/discrete/CMakeLists.txt @@ -1,7 +1,8 @@ # Install headers set(subdir discrete) file(GLOB discrete_headers "*.h") -install(FILES ${discrete_headers} DESTINATION include/gtsam/discrete) +# FIXME: exclude headers +install(FILES ${discrete_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam/discrete) # Add all tests add_subdirectory(tests) diff --git a/gtsam/geometry/CMakeLists.txt b/gtsam/geometry/CMakeLists.txt index dabdde45c..4ec545946 100644 --- a/gtsam/geometry/CMakeLists.txt +++ b/gtsam/geometry/CMakeLists.txt @@ -1,6 +1,6 @@ # Install headers file(GLOB geometry_headers "*.h") -install(FILES ${geometry_headers} DESTINATION include/gtsam/geometry) +install(FILES ${geometry_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam/geometry) # Build tests add_subdirectory(tests) diff --git a/gtsam/hybrid/CMakeLists.txt b/gtsam/hybrid/CMakeLists.txt index cdada00dd..19453dd01 100644 --- a/gtsam/hybrid/CMakeLists.txt +++ b/gtsam/hybrid/CMakeLists.txt @@ -1,7 +1,7 @@ # Install headers set(subdir hybrid) file(GLOB hybrid_headers "*.h") -install(FILES ${hybrid_headers} DESTINATION include/gtsam/hybrid) +install(FILES ${hybrid_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam/hybrid) # Add all tests add_subdirectory(tests) diff --git a/gtsam/inference/CMakeLists.txt b/gtsam/inference/CMakeLists.txt index c3df3a989..c028db92d 100644 --- a/gtsam/inference/CMakeLists.txt +++ b/gtsam/inference/CMakeLists.txt @@ -1,6 +1,6 @@ # Install headers file(GLOB inference_headers "*.h") -install(FILES ${inference_headers} DESTINATION include/gtsam/inference) +install(FILES ${inference_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam/inference) # Build tests add_subdirectory(tests) diff --git a/gtsam/inference/tests/testOrdering.cpp b/gtsam/inference/tests/testOrdering.cpp index b6cfcb6ed..7b7628f5b 100644 --- a/gtsam/inference/tests/testOrdering.cpp +++ b/gtsam/inference/tests/testOrdering.cpp @@ -303,7 +303,7 @@ TEST(Ordering, MetisLoop) { symbolicGraph.push_factor(0, 5); // METIS -#if defined(__APPLE__) +#if defined(__APPLE__) || defined(__QNX__) { Ordering actual = Ordering::Create(Ordering::METIS, symbolicGraph); // - P( 1 0 3) diff --git a/gtsam/linear/CMakeLists.txt b/gtsam/linear/CMakeLists.txt index 084c27057..adba2a078 100644 --- a/gtsam/linear/CMakeLists.txt +++ b/gtsam/linear/CMakeLists.txt @@ -1,6 +1,6 @@ # Install headers file(GLOB linear_headers "*.h") -install(FILES ${linear_headers} DESTINATION include/gtsam/linear) +install(FILES ${linear_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam/linear) # Build tests add_subdirectory(tests) diff --git a/gtsam/navigation/CMakeLists.txt b/gtsam/navigation/CMakeLists.txt index e2b2fdce6..67795cbf4 100644 --- a/gtsam/navigation/CMakeLists.txt +++ b/gtsam/navigation/CMakeLists.txt @@ -1,6 +1,6 @@ # Install headers file(GLOB navigation_headers "*.h") -install(FILES ${navigation_headers} DESTINATION include/gtsam/navigation) +install(FILES ${navigation_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam/navigation) # Add all tests add_subdirectory(tests) diff --git a/gtsam/nonlinear/CMakeLists.txt b/gtsam/nonlinear/CMakeLists.txt index 29ff2efa5..1347fec2f 100644 --- a/gtsam/nonlinear/CMakeLists.txt +++ b/gtsam/nonlinear/CMakeLists.txt @@ -1,9 +1,9 @@ # Install headers file(GLOB nonlinear_headers "*.h") -install(FILES ${nonlinear_headers} DESTINATION "include/gtsam/nonlinear") +install(FILES ${nonlinear_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam/nonlinear) file(GLOB nonlinear_headers_internal "internal/*.h") -install(FILES ${nonlinear_headers_internal} DESTINATION "include/gtsam/nonlinear/internal") +install(FILES ${nonlinear_headers_internal} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam/nonlinear/internal) # Build tests add_subdirectory(tests) diff --git a/gtsam/nonlinear/tests/testSerializationNonlinear.cpp b/gtsam/nonlinear/tests/testSerializationNonlinear.cpp index d6f693a23..5d5067a29 100644 --- a/gtsam/nonlinear/tests/testSerializationNonlinear.cpp +++ b/gtsam/nonlinear/tests/testSerializationNonlinear.cpp @@ -32,7 +32,6 @@ using namespace std; using namespace gtsam; using namespace gtsam::serializationTestHelpers; - /* ************************************************************************* */ // Create GUIDs for Noisemodels BOOST_CLASS_EXPORT_GUID(gtsam::noiseModel::Diagonal, "gtsam_noiseModel_Diagonal") @@ -153,9 +152,20 @@ TEST(Serialization, NoiseModelFactor1_backwards_compatibility) { // Deserialize XML PriorFactor factor_deserialized_xml = PriorFactor(); + #if !defined(__QNX__) deserializeFromXMLFile(GTSAM_SOURCE_TREE_DATASET_DIR "/../../gtsam/nonlinear/tests/priorFactor.xml", factor_deserialized_xml); + #else + /*QNX is cross-compiled for, and does not support make, cmake, or ctest natively. Additionally, space is a large constraint on embedded systems. + * Therefore, running tests must be done by manually copying test executables and required data files over, preferably avoiding + * copying the whole source tree. Thus, we set the default file lookup to the same folder. Please copy data files to the same folder as this test. + * for more info, check PR#1968 https://github.com/borglab/gtsam/pull/1968 + */ + bool c = deserializeFromXMLFile( + "priorFactor.xml", + factor_deserialized_xml); + #endif EXPECT(assert_equal(factor, factor_deserialized_xml)); #endif } diff --git a/gtsam/sam/CMakeLists.txt b/gtsam/sam/CMakeLists.txt index bf20b751c..204bef3ad 100644 --- a/gtsam/sam/CMakeLists.txt +++ b/gtsam/sam/CMakeLists.txt @@ -1,6 +1,6 @@ # Install headers file(GLOB sam_headers "*.h") -install(FILES ${sam_headers} DESTINATION include/gtsam/sam) +install(FILES ${sam_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam/sam) # Build tests add_subdirectory(tests) diff --git a/gtsam/sfm/CMakeLists.txt b/gtsam/sfm/CMakeLists.txt index fde997840..4b9dfe6fe 100644 --- a/gtsam/sfm/CMakeLists.txt +++ b/gtsam/sfm/CMakeLists.txt @@ -1,6 +1,6 @@ # Install headers file(GLOB sfm_headers "*.h") -install(FILES ${sfm_headers} DESTINATION include/gtsam/sfm) +install(FILES ${sfm_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam/sfm) # Build tests add_subdirectory(tests) diff --git a/gtsam/slam/CMakeLists.txt b/gtsam/slam/CMakeLists.txt index 22645973d..66bb168fe 100644 --- a/gtsam/slam/CMakeLists.txt +++ b/gtsam/slam/CMakeLists.txt @@ -4,7 +4,7 @@ set (slam_excluded_headers #"") ) file(GLOB slam_headers "*.h") -install(FILES ${slam_headers} DESTINATION include/gtsam/slam) +install(FILES ${slam_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam/slam) # Build tests add_subdirectory(tests) diff --git a/gtsam/symbolic/CMakeLists.txt b/gtsam/symbolic/CMakeLists.txt index feb073f69..e72733a0c 100644 --- a/gtsam/symbolic/CMakeLists.txt +++ b/gtsam/symbolic/CMakeLists.txt @@ -1,6 +1,6 @@ # Install headers file(GLOB symbolic_headers "*.h") -install(FILES ${symbolic_headers} DESTINATION include/gtsam/symbolic) +install(FILES ${symbolic_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam/symbolic) # Build tests add_subdirectory(tests) diff --git a/gtsam/symbolic/tests/testSymbolicBayesTree.cpp b/gtsam/symbolic/tests/testSymbolicBayesTree.cpp index e4a47bdfb..04fe0434b 100644 --- a/gtsam/symbolic/tests/testSymbolicBayesTree.cpp +++ b/gtsam/symbolic/tests/testSymbolicBayesTree.cpp @@ -687,7 +687,7 @@ TEST(SymbolicBayesTree, COLAMDvsMETIS) { { Ordering ordering = Ordering::Create(Ordering::METIS, sfg); // 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)); #elif defined(_WIN32) EXPECT(assert_equal(Ordering{4, 3, 1, 0, 5, 2}, ordering)); @@ -700,7 +700,7 @@ TEST(SymbolicBayesTree, COLAMDvsMETIS) { // | | - P( 5 | 0 4) // | - P( 2 | 1 3) SymbolicBayesTree expected; -#if defined(__APPLE__) +#if defined(__APPLE__) || defined(__QNX__) expected.insertRoot( NodeClique(Keys(1)(0)(3), 3, Children( // diff --git a/gtsam_unstable/base/CMakeLists.txt b/gtsam_unstable/base/CMakeLists.txt index 2cb96be36..bbeb5b190 100644 --- a/gtsam_unstable/base/CMakeLists.txt +++ b/gtsam_unstable/base/CMakeLists.txt @@ -1,6 +1,6 @@ # Install headers file(GLOB base_headers "*.h") -install(FILES ${base_headers} DESTINATION include/gtsam_unstable/base) +install(FILES ${base_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam_unstable/base) # Add all tests add_subdirectory(tests) diff --git a/gtsam_unstable/discrete/CMakeLists.txt b/gtsam_unstable/discrete/CMakeLists.txt index 18346a45a..0576cf22b 100644 --- a/gtsam_unstable/discrete/CMakeLists.txt +++ b/gtsam_unstable/discrete/CMakeLists.txt @@ -1,6 +1,6 @@ # Install headers file(GLOB discrete_headers "*.h") -install(FILES ${discrete_headers} DESTINATION include/gtsam_unstable/discrete) +install(FILES ${discrete_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam_unstable/discrete) # Add all tests add_subdirectory(tests) diff --git a/gtsam_unstable/discrete/tests/testScheduler.cpp b/gtsam_unstable/discrete/tests/testScheduler.cpp index 5f9b7f287..ab3a0df05 100644 --- a/gtsam_unstable/discrete/tests/testScheduler.cpp +++ b/gtsam_unstable/discrete/tests/testScheduler.cpp @@ -140,7 +140,11 @@ TEST(schedulingExample, test) { /* ************************************************************************* */ TEST(schedulingExample, smallFromFile) { + #if !defined(__QNX__) string path(TOPSRCDIR "/gtsam_unstable/discrete/examples/"); + #else + string path(""); //Same Directory + #endif Scheduler s(2, path + "small.csv"); // add areas diff --git a/gtsam_unstable/dynamics/CMakeLists.txt b/gtsam_unstable/dynamics/CMakeLists.txt index 66aef9455..4e24d9d19 100644 --- a/gtsam_unstable/dynamics/CMakeLists.txt +++ b/gtsam_unstable/dynamics/CMakeLists.txt @@ -1,6 +1,6 @@ # Install headers file(GLOB dynamics_headers "*.h") -install(FILES ${dynamics_headers} DESTINATION include/gtsam_unstable/dynamics) +install(FILES ${dynamics_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam_unstable/dynamics) # Add all tests add_subdirectory(tests) diff --git a/gtsam_unstable/geometry/CMakeLists.txt b/gtsam_unstable/geometry/CMakeLists.txt index c8b7e250f..986015be1 100644 --- a/gtsam_unstable/geometry/CMakeLists.txt +++ b/gtsam_unstable/geometry/CMakeLists.txt @@ -1,6 +1,6 @@ # Install headers file(GLOB geometry_headers "*.h") -install(FILES ${geometry_headers} DESTINATION include/gtsam_unstable/geometry) +install(FILES ${geometry_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam_unstable/geometry) # Add all tests add_subdirectory(tests) diff --git a/gtsam_unstable/linear/CMakeLists.txt b/gtsam_unstable/linear/CMakeLists.txt index 99a4b814e..a1bced843 100644 --- a/gtsam_unstable/linear/CMakeLists.txt +++ b/gtsam_unstable/linear/CMakeLists.txt @@ -1,6 +1,6 @@ # Install headers file(GLOB linear_headers "*.h") -install(FILES ${linear_headers} DESTINATION include/gtsam_unstable/linear) +install(FILES ${linear_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam_unstable/linear) # Add all tests add_subdirectory(tests) diff --git a/gtsam_unstable/nonlinear/CMakeLists.txt b/gtsam_unstable/nonlinear/CMakeLists.txt index 9e0cb68e1..a80a9fc55 100644 --- a/gtsam_unstable/nonlinear/CMakeLists.txt +++ b/gtsam_unstable/nonlinear/CMakeLists.txt @@ -1,6 +1,6 @@ # Install headers file(GLOB nonlinear_headers "*.h") -install(FILES ${nonlinear_headers} DESTINATION include/gtsam_unstable/nonlinear) +install(FILES ${nonlinear_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam_unstable/nonlinear) # Add all tests add_subdirectory(tests) diff --git a/gtsam_unstable/partition/CMakeLists.txt b/gtsam_unstable/partition/CMakeLists.txt index 74951bf93..74195d882 100644 --- a/gtsam_unstable/partition/CMakeLists.txt +++ b/gtsam_unstable/partition/CMakeLists.txt @@ -1,5 +1,5 @@ # Install headers file(GLOB partition_headers "*.h") -install(FILES ${partition_headers} DESTINATION include/gtsam_unstable/partition) +install(FILES ${partition_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam_unstable/partition) add_subdirectory(tests) diff --git a/gtsam_unstable/partition/tests/testFindSeparator.cpp b/gtsam_unstable/partition/tests/testFindSeparator.cpp index a659c3c22..f425be8c7 100644 --- a/gtsam_unstable/partition/tests/testFindSeparator.cpp +++ b/gtsam_unstable/partition/tests/testFindSeparator.cpp @@ -104,7 +104,13 @@ TEST ( Partition, edgePartitionByMetis2 ) graph.push_back(std::make_shared(1, 2, 1, NODE_POSE_3D, NODE_POSE_3D, 1)); graph.push_back(std::make_shared(2, 3, 2, NODE_POSE_3D, NODE_POSE_3D, 20)); graph.push_back(std::make_shared(3, 4, 3, NODE_POSE_3D, NODE_POSE_3D, 1)); + //QNX Testing: fix tiebreaker to match + #if !defined(__QNX__) std::vector keys{0, 1, 2, 3, 4}; + #else + //Anything where 2 is before 0 will work. + std::vector keys{2, 0, 3, 1, 4}; + #endif WorkSpace workspace(6); std::optional actual = edgePartitionByMetis(graph, keys, diff --git a/gtsam_unstable/slam/CMakeLists.txt b/gtsam_unstable/slam/CMakeLists.txt index a86beac63..83d3ca476 100644 --- a/gtsam_unstable/slam/CMakeLists.txt +++ b/gtsam_unstable/slam/CMakeLists.txt @@ -5,7 +5,7 @@ set (slam_excluded_headers #"") file(GLOB slam_headers "*.h") list(REMOVE_ITEM slam_headers ${slam_excluded_headers}) -install(FILES ${slam_headers} DESTINATION include/gtsam_unstable/slam) +install(FILES ${slam_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam_unstable/slam) # Add all tests add_subdirectory(tests)