Parse Semantic Version
semver_parse()
parses a semantic version string and assigns the various version parts to the provided output variable.
Table of Contents
Example
include("rsp/version")
semver_parse(
VERSION "v2.0.0-beta.3+AF1004"
OUTPUT my_package
)
# (see example output below...)
Output
Full Version
The [OUTPUT]
variable will contain the full version string, as it was provided:
message("${my_package}") # v2.0.0-beta.3+AF1004
Major, Minor and Patch
The [OUTPUT]_VERSION
variable contains a CMake friendly version string (major.minor.patch)
message("${my_package}_VERSION") # 2.0.0
Semantic Version
The [OUTPUT]_SEMVER
variable contains the full semantic version, without eventual “v” prefix.
message("${my_package}_SEMVER") # 2.0.0-beta.3+AF1004
Major Version
The [OUTPUT]_MAJOR
variable contains the major version.
message("${my_package}_MAJOR") # 2
Minor Version
The [OUTPUT]_MINOR
variable contains the minor version.
message("${my_package}_MINOR") # 0
Patch Version
The [OUTPUT]_PATCH
variable contains the patch version.
message("${my_package}_PATCH") # 0
Pre-Release
The [OUTPUT]_PRE_RELEASE
variable contains the pre-release version.
message("${my_package}_PRE_RELEASE") # beta.3
Build Metadata
The [OUTPUT]_BUILD_METADATA
variable contains the build metadata.
message("${my_package}_BUILD_METADATA") # AF1004
Invalid Version
A fatal error is raised, in situations when the provided version string cannot be parsed in accordance with Semantic Version.
semver_parse(
VERSION "4.11"
OUTPUT my_package
) # Fatal Error: 4.11 is not a valid semantic version