mirror of
https://github.com/rmontanana/mdlp.git
synced 2025-08-15 07:25:56 +00:00
48 lines
1.5 KiB
Python
48 lines
1.5 KiB
Python
|
|
# read the version from the CMakeLists.txt file
|
|
import re
|
|
import sys
|
|
from pathlib import Path
|
|
|
|
def get_version_from_cmakelists(cmakelists_path):
|
|
# Read the CMakeLists.txt file
|
|
try:
|
|
with open(cmakelists_path, 'r') as file:
|
|
content = file.read()
|
|
except IOError as e:
|
|
print(f"Error reading {cmakelists_path}: {e}")
|
|
sys.exit(1)
|
|
# Use regex to find the version line
|
|
# The regex pattern looks for a line that starts with 'project' and captures the version number
|
|
# in the format VERSION x.y.z where x, y, and z are digits.
|
|
# It allows for optional whitespace around the parentheses and the version number.
|
|
version_pattern = re.compile(
|
|
r'project\s*\([^\)]*VERSION\s+([0-9]+\.[0-9]+\.[0-9]+)', re.IGNORECASE | re.DOTALL
|
|
)
|
|
match = version_pattern.search(content)
|
|
if match:
|
|
return match.group(1)
|
|
else:
|
|
return None
|
|
|
|
def main():
|
|
# Get the path to the CMakeLists.txt file
|
|
cmakelists_path = Path(__file__).parent / "CMakeLists.txt"
|
|
|
|
# Check if the file exists
|
|
if not cmakelists_path.exists():
|
|
print(f"Error: {cmakelists_path} does not exist.")
|
|
sys.exit(1)
|
|
|
|
# Get the version from the CMakeLists.txt file
|
|
version = get_version_from_cmakelists(cmakelists_path)
|
|
|
|
if version:
|
|
print(f"Version: {version}")
|
|
else:
|
|
print("Version not found in CMakeLists.txt.")
|
|
sys.exit(1)
|
|
|
|
if __name__ == "__main__":
|
|
main()
|