mirror of
https://gitlab.com/libeigen/eigen.git
synced 2026-04-10 11:34:33 +08:00
Expand CMake compatibility range for single-version specifications.
libeigen/eigen!2081 Closes #3004
This commit is contained in:
committed by
Rasmus Munk Larsen
parent
8a1083e9bf
commit
a1eeb02204
@@ -1,5 +1,5 @@
|
||||
# This is a CMake version file for the Config-mode of find_package().
|
||||
#
|
||||
#
|
||||
# The version constraint is compatible with the current package under the
|
||||
# following conditions:
|
||||
# - If a version range is specified, the package version falls within the
|
||||
@@ -12,7 +12,8 @@
|
||||
# - 3...<5 matches 3.0.0.0 to <5.0.0.0
|
||||
# - 3...<5.1 matches 3.0.0.0 to <5.1.0.0
|
||||
# - 3 matches 3.0.0.0 to <4.0.0.0
|
||||
# - 3.4 matches 3.4.0.0 to <3.5.0.0
|
||||
# - 3.4 matches 3.4.0.0 to <4.0.0.0 due to semantic versioning
|
||||
# - 3.4 EXACT matches 3.4.0.0 to <3.5.0.0
|
||||
|
||||
set(PACKAGE_VERSION "@CVF_VERSION@")
|
||||
|
||||
@@ -65,26 +66,30 @@ if (PACKAGE_FIND_VERSION_RANGE)
|
||||
set(PACKAGE_VERSION_COMPATIBLE TRUE)
|
||||
endif()
|
||||
else()
|
||||
# Create exclusive upper bound.
|
||||
|
||||
# Semantic versioning upper bound.
|
||||
math(EXPR _PACKAGE_FIND_VERSION_MAJOR "${PACKAGE_FIND_VERSION_MAJOR}+1")
|
||||
set(_PACKAGE_FIND_VERSION_SEMVER_UPPER "${_PACKAGE_FIND_VERSION_MAJOR}.0.0.0")
|
||||
|
||||
# Create exclusive upper bound for exact match.
|
||||
if (PACKAGE_FIND_VERSION_COUNT EQUAL 1)
|
||||
math(EXPR _PACKAGE_FIND_VERSION_MAJOR "${PACKAGE_FIND_VERSION_MAJOR}+1")
|
||||
set(_PACKAGE_FIND_VERSION_UPPER "${_PACKAGE_FIND_VERSION_MAJOR}.0.0.0")
|
||||
set(_PACKAGE_FIND_VERSION_EXACT_UPPER "${_PACKAGE_FIND_VERSION_SEMVER_UPPER}")
|
||||
elseif (PACKAGE_FIND_VERSION_COUNT EQUAL 2)
|
||||
math(EXPR _PACKAGE_FIND_VERSION_MINOR "${PACKAGE_FIND_VERSION_MINOR}+1")
|
||||
set(_PACKAGE_FIND_VERSION_UPPER "${PACKAGE_FIND_VERSION_MAJOR}.${_PACKAGE_FIND_VERSION_MINOR}.0.0")
|
||||
set(_PACKAGE_FIND_VERSION_EXACT_UPPER "${PACKAGE_FIND_VERSION_MAJOR}.${_PACKAGE_FIND_VERSION_MINOR}.0.0")
|
||||
elseif (PACKAGE_FIND_VERSION_COUNT EQUAL 3)
|
||||
math(EXPR _PACKAGE_FIND_VERSION_PATCH "${PACKAGE_FIND_VERSION_PATCH}+1")
|
||||
set(_PACKAGE_FIND_VERSION_UPPER "${PACKAGE_FIND_VERSION_MAJOR}.${PACKAGE_FIND_VERSION_MINOR}.${_PACKAGE_FIND_VERSION_PATCH}.0")
|
||||
set(_PACKAGE_FIND_VERSION_EXACT_UPPER "${PACKAGE_FIND_VERSION_MAJOR}.${PACKAGE_FIND_VERSION_MINOR}.${_PACKAGE_FIND_VERSION_PATCH}.0")
|
||||
elseif (PACKAGE_FIND_VERSION_COUNT EQUAL 4)
|
||||
math(EXPR _PACKAGE_FIND_VERSION_TWEAK "${PACKAGE_FIND_VERSION_TWEAK}+1")
|
||||
set(_PACKAGE_FIND_VERSION_UPPER "${PACKAGE_FIND_VERSION_MAJOR}.${PACKAGE_FIND_VERSION_MINOR}.${PACKAGE_FIND_VERSION_PATCH}.${_PACKAGE_FIND_VERSION_TWEAK}")
|
||||
set(_PACKAGE_FIND_VERSION_EXACT_UPPER "${PACKAGE_FIND_VERSION_MAJOR}.${PACKAGE_FIND_VERSION_MINOR}.${PACKAGE_FIND_VERSION_PATCH}.${_PACKAGE_FIND_VERSION_TWEAK}")
|
||||
endif()
|
||||
|
||||
if((_PACKAGE_VERSION_FULL VERSION_LESS PACKAGE_FIND_VERSION) OR (_PACKAGE_VERSION_FULL VERSION_GREATER_EQUAL _PACKAGE_FIND_VERSION_UPPER))
|
||||
if((_PACKAGE_VERSION_FULL VERSION_LESS PACKAGE_FIND_VERSION) OR (_PACKAGE_VERSION_FULL VERSION_GREATER_EQUAL _PACKAGE_FIND_VERSION_SEMVER_UPPER))
|
||||
set(PACKAGE_VERSION_COMPATIBLE FALSE)
|
||||
else()
|
||||
set(PACKAGE_VERSION_COMPATIBLE TRUE)
|
||||
if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION)
|
||||
if(_PACKAGE_VERSION_FULL VERSION_LESS _PACKAGE_FIND_VERSION_EXACT_UPPER)
|
||||
set(PACKAGE_VERSION_EXACT TRUE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
Reference in New Issue
Block a user