blob: 8a96c039178365d6995ff30ab705472b2c9460c3 [file] [log] [blame]
from __future__ import print_function
import os
import re
class VersionInfo:
def __init__(self, major, minor, patch, prerelease):
self.major = major
self.minor = minor
self.patch = patch
self.prerelease = prerelease
def version_str(self):
version_str = "<unkown vtr version>"
if self.major != None and self.minor != None:
version_str = "{}.{}".format(self.major, self.minor)
return version_str
def release_str(self):
release_str = "<unkown vtr release>"
if self.major != None and self.minor != None and self.patch != None:
release_str = "{}.{}.{}".format(self.major, self.minor, self.patch)
if self.prerelease != None and self.prerelease != "":
release_str += "-{}".format(self.prerelease)
return release_str
def get_vtr_version():
return get_vtr_version_info().version_str()
def get_vtr_release():
return get_vtr_version_info().release_str()
def get_vtr_version_info():
#Assumes called with CWD set to the doc/src directory
root_cmakelists = os.getcwd() + "/../../CMakeLists.txt"
root_cmakelists = os.path.abspath(root_cmakelists)
major = None
minor = None
patch = None
prerelease = None
try:
major_regex = re.compile(r".*VTR_VERSION_MAJOR (?P<major>\d+)")
minor_regex = re.compile(r".*VTR_VERSION_MINOR (?P<minor>\d+)")
patch_regex = re.compile(r".*VTR_VERSION_PATCH (?P<patch>\d+)")
prerelease_regex = re.compile(r".*VTR_VERSION_PRERELEASE \"(?P<prerelease>.*)\"")
with open(root_cmakelists) as f:
for line in f:
match = major_regex.match(line)
if match:
major = match.group('major')
match = minor_regex.match(line)
if match:
minor = match.group("minor")
match = patch_regex.match(line)
if match:
patch = match.group("patch")
match = prerelease_regex.match(line)
if match:
prerelease = match.group("prerelease")
except IOError:
print("Warning: Failed to find root CMakeLists.txt to find VTR version")
pass
return VersionInfo(major, minor, patch, prerelease)