Skip to content

Commit 342f30d

Browse files
authored
Merge pull request #137 from Ellon/fix/GTSAMConfigVersion.cmake_for_4.0.2
Fix GTSAM version detection for 4.0.2
2 parents a28806b + 0aaf496 commit 342f30d

File tree

4 files changed

+28
-181
lines changed

4 files changed

+28
-181
lines changed

cmake/GtsamMakeConfigFile.cmake

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,37 @@ function(GtsamMakeConfigFile PACKAGE_NAME)
2020
set(EXTRA_FILE "_does_not_exist_")
2121
endif()
2222

23+
# GTSAM defines its version variable as GTSAM_VERSION_STRING while other
24+
# projects may define it as <ProjectName>_VERSION. Since this file is
25+
# installed on the system as part of GTSAMCMakeTools and may be useful in
26+
# external projects, we need to handle both cases of version variable naming
27+
# here.
28+
if(NOT DEFINED ${PACKAGE_NAME}_VERSION AND DEFINED ${PACKAGE_NAME}_VERSION_STRING)
29+
set(${PACKAGE_NAME}_VERSION ${${PACKAGE_NAME}_VERSION_STRING})
30+
endif()
31+
32+
# Version file
33+
include(CMakePackageConfigHelpers)
34+
write_basic_package_version_file(
35+
"${PROJECT_BINARY_DIR}/${PACKAGE_NAME}ConfigVersion.cmake"
36+
VERSION ${${PACKAGE_NAME}_VERSION}
37+
COMPATIBILITY SameMajorVersion
38+
)
39+
40+
# Config file
2341
file(RELATIVE_PATH CONF_REL_INCLUDE_DIR "${CMAKE_INSTALL_PREFIX}/${DEF_INSTALL_CMAKE_DIR}" "${CMAKE_INSTALL_PREFIX}/include")
2442
file(RELATIVE_PATH CONF_REL_LIB_DIR "${CMAKE_INSTALL_PREFIX}/${DEF_INSTALL_CMAKE_DIR}" "${CMAKE_INSTALL_PREFIX}/lib")
2543
configure_file(${GTSAM_CONFIG_TEMPLATE_PATH}/Config.cmake.in "${PROJECT_BINARY_DIR}/${PACKAGE_NAME}Config.cmake" @ONLY)
2644
message(STATUS "Wrote ${PROJECT_BINARY_DIR}/${PACKAGE_NAME}Config.cmake")
2745

28-
# Install config and exports files (for find scripts)
29-
install(FILES "${PROJECT_BINARY_DIR}/${PACKAGE_NAME}Config.cmake" DESTINATION "${CMAKE_INSTALL_PREFIX}/${DEF_INSTALL_CMAKE_DIR}")
46+
# Install config, version and exports files (for find scripts)
47+
install(
48+
FILES
49+
"${PROJECT_BINARY_DIR}/${PACKAGE_NAME}Config.cmake"
50+
"${PROJECT_BINARY_DIR}/${PACKAGE_NAME}ConfigVersion.cmake"
51+
DESTINATION
52+
"${CMAKE_INSTALL_PREFIX}/${DEF_INSTALL_CMAKE_DIR}"
53+
)
3054
install(EXPORT ${PACKAGE_NAME}-exports DESTINATION ${DEF_INSTALL_CMAKE_DIR})
3155

3256
endfunction()

cmake/obsolete/FindGTSAM.cmake

Lines changed: 0 additions & 88 deletions
This file was deleted.

cmake/obsolete/FindGTSAM_UNSTABLE.cmake

Lines changed: 0 additions & 88 deletions
This file was deleted.

gtsam_extra.cmake.in

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
# Extra CMake definitions for GTSAM
22

3-
set (GTSAM_VERSION_MAJOR @GTSAM_VERSION_MAJOR@)
4-
set (GTSAM_VERSION_MINOR @GTSAM_VERSION_MINOR@)
5-
set (GTSAM_VERSION_PATCH @GTSAM_VERSION_PATCH@)
3+
# All version variables are handled by GTSAMConfigVersion.cmake, except these
4+
# two below. We continue to set them here in case someone uses them
65
set (GTSAM_VERSION_NUMERIC @GTSAM_VERSION_NUMERIC@)
76
set (GTSAM_VERSION_STRING "@GTSAM_VERSION_STRING@")
87

0 commit comments

Comments
 (0)