mirror of
https://gitlab.kitware.com/cmake/cmake.git
synced 2026-09-25 04:09:36 +03:00
CMakePackageConfigHelpers: add more version compatibility modes
Add `SamePatchVersion`, `SameFullVersion`, and `SemanticVersion` support. Document `ExactVersion` as deprecated in favor of the clearer `SamePatchVersion`/`SameFullVersion` names. Closes: #18060
This commit is contained in:
committed by
Brad King
parent
92ab54ae3b
commit
9bd3346655
@@ -14,7 +14,9 @@ WriteBasicConfigVersionFile
|
||||
|
||||
WRITE_BASIC_CONFIG_VERSION_FILE(filename
|
||||
[VERSION major.minor.patch]
|
||||
COMPATIBILITY (AnyNewerVersion|SameMajorVersion|SameMinorVersion|ExactVersion)
|
||||
COMPATIBILITY (AnyNewerVersion|SameMajorVersion|SameMinorVersion|
|
||||
SamePatchVersion|SameFullVersion|ExactVersion|
|
||||
SemanticVersion)
|
||||
[ARCH_INDEPENDENT]
|
||||
)
|
||||
|
||||
@@ -33,7 +35,12 @@ function(WRITE_BASIC_CONFIG_VERSION_FILE _filename)
|
||||
message(FATAL_ERROR "Unknown keywords given to WRITE_BASIC_CONFIG_VERSION_FILE(): \"${CVF_UNPARSED_ARGUMENTS}\"")
|
||||
endif()
|
||||
|
||||
set(versionTemplateFile "${CMAKE_ROOT}/Modules/BasicConfigVersion-${CVF_COMPATIBILITY}.cmake.in")
|
||||
set(_compatibilityTemplate "${CVF_COMPATIBILITY}")
|
||||
if(CVF_COMPATIBILITY STREQUAL "ExactVersion")
|
||||
set(_compatibilityTemplate "SamePatchVersion")
|
||||
endif()
|
||||
|
||||
set(versionTemplateFile "${CMAKE_ROOT}/Modules/BasicConfigVersion-${_compatibilityTemplate}.cmake.in")
|
||||
if(NOT EXISTS "${versionTemplateFile}")
|
||||
message(FATAL_ERROR "Bad COMPATIBILITY value used for WRITE_BASIC_CONFIG_VERSION_FILE(): \"${CVF_COMPATIBILITY}\"")
|
||||
endif()
|
||||
|
||||
Reference in New Issue
Block a user