From 4eff17835248c62e2cd1333bfd6f8b06171989d8 Mon Sep 17 00:00:00 2001 From: Jai Moraes Date: Fri, 29 Nov 2024 16:00:18 -0500 Subject: [PATCH] ADDED: Test Installation when building with QNX (Review this for upstreaming) --- cmake/GtsamTesting.cmake | 7 ++++++- gtsam/CMakeLists.txt | 4 ++++ gtsam/config.h.in | 3 +++ gtsam/slam/dataset.cpp | 3 +++ tests/CMakeLists.txt | 5 +++++ 5 files changed, 21 insertions(+), 1 deletion(-) diff --git a/cmake/GtsamTesting.cmake b/cmake/GtsamTesting.cmake index 28965e6c6..24a340b79 100644 --- a/cmake/GtsamTesting.cmake +++ b/cmake/GtsamTesting.cmake @@ -196,8 +196,13 @@ macro(gtsamAddTestsGlob_impl groupName globPatterns excludedFiles linkLibraries) # Add TOPSRCDIR set_property(SOURCE ${script_src} APPEND PROPERTY COMPILE_DEFINITIONS "TOPSRCDIR=\"${GTSAM_SOURCE_DIR}\"") + if(QNX) + # Do not exclude from 'make all' and 'make install' + set_target_properties(${target_name} PROPERTIES EXCLUDE_FROM_ALL OFF) + else() # Exclude from 'make all' and 'make install' - set_target_properties(${script_name} PROPERTIES EXCLUDE_FROM_ALL ON) + 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/${groupName}") diff --git a/gtsam/CMakeLists.txt b/gtsam/CMakeLists.txt index 535d60eb1..bf3d8556f 100644 --- a/gtsam/CMakeLists.txt +++ b/gtsam/CMakeLists.txt @@ -82,6 +82,10 @@ IF(MSVC) ENDIF(MSVC) # Generate and install config and dllexport files +#For config.in searches +if(DEFINED ENV{QNX}) +set(QNX_TARGET_DATASET_DIR "$ENV{QNX_TARGET_DATASET_DIR}") +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/config.h.in b/gtsam/config.h.in index e7623c52b..5691b8f7f 100644 --- a/gtsam/config.h.in +++ b/gtsam/config.h.in @@ -27,6 +27,9 @@ // Paths to example datasets distributed with GTSAM #define GTSAM_SOURCE_TREE_DATASET_DIR "@GTSAM_SOURCE_DIR@/examples/Data" #define GTSAM_INSTALLED_DATASET_DIR "@GTSAM_TOOLBOX_INSTALL_PATH@/gtsam_examples/Data" +#ifdef __QNX__ +#define QNX_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/slam/dataset.cpp b/gtsam/slam/dataset.cpp index d7e925bd9..0baaccf1b 100644 --- a/gtsam/slam/dataset.cpp +++ b/gtsam/slam/dataset.cpp @@ -69,6 +69,9 @@ string findExampleDataFile(const string &name) { // Constants below are defined by CMake, see gtsam/gtsam/CMakeLists.txt rootsToSearch.push_back(GTSAM_SOURCE_TREE_DATASET_DIR); rootsToSearch.push_back(GTSAM_INSTALLED_DATASET_DIR); + #ifdef __QNX__ + rootsToSearch.push_back(QNX_INSTALLED_DATASET_DIR); + #endif // Search for filename as given, and with .graph and .txt extensions vector namesToSearch; diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 068b39eca..78cf1614a 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -14,3 +14,8 @@ if(MSVC) set_property(SOURCE "${CMAKE_CURRENT_SOURCE_DIR}/testSerializationSLAM.cpp" APPEND PROPERTY COMPILE_FLAGS "/bigobj") endif() + +if(QNX) +file(GLOB built_tests "${PROJECT_BINARY_DIR}/tests/test*") +install(FILES ${built_tests} DESTINATION ${CMAKE_INSTALL_BINDIR}/gtsam_tests/) +endif() \ No newline at end of file