[PATCH 4/4] waf: Get the version numbers from the version file.

chrisj at rtems.org chrisj at rtems.org
Thu Mar 12 05:38:51 UTC 2020


From: Chris Johns <chrisj at rtems.org>

---
 common/conf.py    | 15 ++++++++++++---
 common/version.py | 25 ++++++++++++++++++++++++-
 common/waf.py     |  5 ++++-
 wscript           |  3 +++
 4 files changed, 43 insertions(+), 5 deletions(-)

diff --git a/common/conf.py b/common/conf.py
index fe44640..97f8dfa 100644
--- a/common/conf.py
+++ b/common/conf.py
@@ -1,7 +1,10 @@
+import version as rtems_version
+
 extensions = [
 	"sphinx.ext.autodoc",
 	"sphinx.ext.coverage",
 	"sphinx.ext.doctest",
+	"sphinx.ext.extlinks",
 	"sphinx.ext.graphviz",
 	"sphinx.ext.intersphinx",
 	"sphinx.ext.mathjax",
@@ -9,6 +12,8 @@ extensions = [
 	"rtemsdomain",
 ]
 
+extlinks = {'release_path': ('https://ftp.rtems.org/pub/rtems/releases', None) }
+
 # Add any paths that contain templates here, relative to this directory.
 #templates_path = ['build/_templates']
 
@@ -23,17 +28,21 @@ master_doc = 'index'
 
 # General information about the project.
 project = u'RTEMS Documentation Project'
-copyright = u'1988, 2019 RTEMS Project and contributors'
+copyright = u'1988, 2020 RTEMS Project and contributors'
 
 # The version info for the project you're documenting, acts as replacement for
 # |version| and |release|, also used in various other places throughout the
 # built documents.
 #
 # The short X.Y version.
-#version = '@VERSION@'
+version = rtems_version.version()
 
 # The full version, including alpha/beta/rc tags.
-#release = '@RELEASE@'
+release = rtems_version.string()
+
+major = rtems_version.major()
+minor = rtems_version.minor()
+revision = rtems_version.revision()
 
 # The language for content autogenerated by Sphinx. Refer to documentation
 # for a list of supported languages.
diff --git a/common/version.py b/common/version.py
index 9beb3e7..281c880 100644
--- a/common/version.py
+++ b/common/version.py
@@ -1,6 +1,6 @@
 #
 # RTEMS Documentation Project (http://www.rtems.org/)
-# Copyright 2019 Chris Johns (chrisj at rtems.org)
+# Copyright 2019, 2020 Chris Johns (chrisj at rtems.org)
 # Copyright (C) 2019 embedded brains GmbH
 # All rights reserved.
 #
@@ -66,6 +66,9 @@ from __future__ import print_function
 import os.path
 
 _version = 'invalid'
+_major = 0
+_minor = 0
+_revision = 0
 _date = 'unknown date'
 _released = False
 
@@ -155,6 +158,17 @@ def get(ctx, rtems_major_version):
         _version = version
         _date = date
         _release = released
+    if version != 'invalid':
+        vs = _version.split('.')
+        _major = vs[0]
+        if len(vs) == 3:
+            _minor = vs[1]
+            _revision = vs[2]
+        elif len(vs) == 2:
+            _minor = 0
+            _revision = vs[1]
+        else:
+            ctx.fatal('Invalid version format: %s' % (_version))
     return version, date, released
 
 def string():
@@ -163,6 +177,15 @@ def string():
 def version():
     return _version
 
+def major():
+    return _major
+
+def minor():
+    return _minor
+
+def revision():
+    return revision
+
 def date():
     return _date
 
diff --git a/common/waf.py b/common/waf.py
index 066048d..36feef5 100644
--- a/common/waf.py
+++ b/common/waf.py
@@ -19,7 +19,10 @@ import conf
 sphinx_min_version = (1, 3)
 
 def version_cmdline(ctx):
-    return '-Drelease="%s" -Dversion="%s"' % (ctx.env.RELEASE, ctx.env.VERSION)
+    return '-Drelease="%s" -Dversion="%s" -Drtems_major="%s" ' \
+           '-Drtems_minor="%s" -D rtems_revision="%s"' \
+        % (ctx.env.RELEASE, ctx.env.VERSION, ctx.env.RTEMS_MAJOR,
+           ctx.env.RTEMS_MINOR, ctx.env.RTEMS_REVISION)
 
 def sphinx_cmdline(ctx, build_type, conf_dir, doctrees,
                    source_dir, output_dir, configs = []):
diff --git a/wscript b/wscript
index 5f8464d..cdeea95 100644
--- a/wscript
+++ b/wscript
@@ -86,6 +86,9 @@ def build(ctx):
     ctx.env.DATE = ver_date
     ctx.env.RELEASE = ver_version + ' (' + ver_date + ')'
     ctx.env.VERSION = ver_version
+    ctx.env.RTEMS_MAJOR = version.major()
+    ctx.env.RTEMS_MINOR = version.minor()
+    ctx.env.RTEMS_REVISION = version.revision()
     ctx.to_log('Build: %s%s' % (ctx.env.RELEASE, os.linesep))
 
     #
-- 
2.23.0



More information about the devel mailing list