Skip to content

Commit d8006fb

Browse files
committed
Creating an ISAACConfigVersion.cmake using the user specified install directory for the version lookup.
1 parent f63ad29 commit d8006fb

File tree

3 files changed

+48
-3
lines changed

3 files changed

+48
-3
lines changed

lib/CMakeLists.txt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,13 @@
11
cmake_minimum_required (VERSION 3.3)
22
project (isaac)
33

4+
configure_file (
5+
"${PROJECT_SOURCE_DIR}/ISAACConfigVersion.cmake.in"
6+
"${PROJECT_BINARY_DIR}/ISAACConfigVersion.cmake"
7+
@ONLY
8+
)
9+
410
install( FILES "${CMAKE_CURRENT_SOURCE_DIR}/isaac.hpp" DESTINATION "include" )
511
install( DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/isaac" DESTINATION "include" PATTERN "mainpage.dox" EXCLUDE )
612
install( FILES "${CMAKE_CURRENT_SOURCE_DIR}/ISAACConfig.cmake" DESTINATION "lib/cmake/ISAAC" )
7-
install( FILES "${CMAKE_CURRENT_SOURCE_DIR}/ISAACConfigVersion.cmake" DESTINATION "lib/cmake/ISAAC" )
13+
install( FILES "${PROJECT_BINARY_DIR}/ISAACConfigVersion.cmake" DESTINATION "lib/cmake/ISAAC" )

lib/ISAACConfig.cmake

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ set(ISAAC_INCLUDE_DIRS ${ISAAC_INCLUDE_DIRS} "${ISAAC_DIR}/isaac")
2626
###############################################################################
2727
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${ISAAC_DIR}/Modules")
2828

29-
3029
###############################################################################
3130
# OPTIONS
3231
###############################################################################
@@ -165,5 +164,18 @@ endif()
165164
################################################################################
166165
# Returning whether ISAAC could be found
167166
################################################################################
167+
168168
FIND_PACKAGE_HANDLE_STANDARD_ARGS(ISAAC
169-
REQUIRED_VARS ISAAC_LIBRARIES ISAAC_INCLUDE_DIRS JANSSON_LIBRARIES JANSSON_INCLUDE_DIRS CMAKE_THREAD_LIBS_INIT ISAAC_MPI_FOUND ICET_CORE_LIBS ICET_MPI_LIBS ICET_INCLUDE_DIRS Boost_FOUND ISAAC_PRIVATE_FOUND)
169+
REQUIRED_VARS
170+
ISAAC_LIBRARIES
171+
ISAAC_INCLUDE_DIRS
172+
JANSSON_LIBRARIES
173+
JANSSON_INCLUDE_DIRS
174+
CMAKE_THREAD_LIBS_INIT
175+
ISAAC_MPI_FOUND
176+
ICET_CORE_LIBS
177+
ICET_MPI_LIBS
178+
ICET_INCLUDE_DIRS
179+
Boost_FOUND
180+
ISAAC_PRIVATE_FOUND
181+
)

lib/ISAACConfigVersion.cmake.in

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
file(STRINGS "@CMAKE_INSTALL_PREFIX@/include/isaac/isaac_version.hpp" ISAAC_VERSION_MAJOR_HPP REGEX "#define ISAAC_VERSION_MAJOR ")
2+
file(STRINGS "@CMAKE_INSTALL_PREFIX@/include/isaac/isaac_version.hpp" ISAAC_VERSION_MINOR_HPP REGEX "#define ISAAC_VERSION_MINOR ")
3+
file(STRINGS "@CMAKE_INSTALL_PREFIX@/include/isaac/isaac_version.hpp" ISAAC_VERSION_PATCH_HPP REGEX "#define ISAAC_VERSION_PATCH ")
4+
5+
string(REGEX MATCH "([0-9]+)" ISAAC_VERSION_MAJOR ${ISAAC_VERSION_MAJOR_HPP})
6+
string(REGEX MATCH "([0-9]+)" ISAAC_VERSION_MINOR ${ISAAC_VERSION_MINOR_HPP})
7+
string(REGEX MATCH "([0-9]+)" ISAAC_VERSION_PATCH ${ISAAC_VERSION_PATCH_HPP})
8+
9+
set(PACKAGE_VERSION "${ISAAC_VERSION_MAJOR}.${ISAAC_VERSION_MINOR}.${ISAAC_VERSION_PATCH}")
10+
11+
# Check whether the requested PACKAGE_FIND_VERSION is exactly the one requested
12+
if("${PACKAGE_VERSION}" EQUAL "${PACKAGE_FIND_VERSION}")
13+
set(PACKAGE_VERSION_EXACT TRUE)
14+
else()
15+
set(PACKAGE_VERSION_EXACT FALSE)
16+
endif()
17+
18+
# Check whether the requested PACKAGE_FIND_VERSION is compatible
19+
if("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}")
20+
set(PACKAGE_VERSION_COMPATIBLE FALSE)
21+
else()
22+
set(PACKAGE_VERSION_COMPATIBLE TRUE)
23+
if ("${PACKAGE_VERSION}" VERSION_EQUAL "${PACKAGE_FIND_VERSION}")
24+
set(PACKAGE_VERSION_EXACT TRUE)
25+
endif()
26+
endif()
27+

0 commit comments

Comments
 (0)