py/mpconfig: Move MICROPY_VERSION macros to static ones in mpconfig.h.

It's more robust to have the version defined statically in a header file,
rather than dynamically generating it via git using a git tag.  In case
git doesn't exist, or a different source control tool is used, it's
important to still have the uPy version number available.
This commit is contained in:
Damien George 2018-12-15 15:13:33 +11:00
parent ce0c581179
commit 7cd59c5bc3
4 changed files with 21 additions and 23 deletions

View File

@ -35,7 +35,6 @@
#include "py/mphal.h"
#endif
#include "extmod/modwebsocket.h"
#include "genhdr/mpversion.h"
#if MICROPY_PY_WEBREPL

View File

@ -46,15 +46,7 @@ def get_version_info_from_git():
except OSError:
return None
# Try to extract MicroPython version from git tag
if git_tag.startswith("v"):
ver = git_tag[1:].split("-")[0].split(".")
if len(ver) == 2:
ver.append("0")
else:
ver = ["0", "0", "1"]
return git_tag, git_hash, ver
return git_tag, git_hash
def get_version_info_from_docs_conf():
with open(os.path.join(os.path.dirname(sys.argv[0]), "..", "docs", "conf.py")) as f:
@ -62,10 +54,7 @@ def get_version_info_from_docs_conf():
if line.startswith("version = release = '"):
ver = line.strip().split(" = ")[2].strip("'")
git_tag = "v" + ver
ver = ver.split(".")
if len(ver) == 2:
ver.append("0")
return git_tag, "<no hash>", ver
return git_tag, "<no hash>"
return None
def make_version_header(filename):
@ -74,7 +63,7 @@ def make_version_header(filename):
if info is None:
info = get_version_info_from_docs_conf()
git_tag, git_hash, ver = info
git_tag, git_hash = info
# Generate the file with the git and version info
file_data = """\
@ -82,12 +71,7 @@ def make_version_header(filename):
#define MICROPY_GIT_TAG "%s"
#define MICROPY_GIT_HASH "%s"
#define MICROPY_BUILD_DATE "%s"
#define MICROPY_VERSION_MAJOR (%s)
#define MICROPY_VERSION_MINOR (%s)
#define MICROPY_VERSION_MICRO (%s)
#define MICROPY_VERSION_STRING "%s.%s.%s"
""" % (git_tag, git_hash, datetime.date.today().strftime("%Y-%m-%d"),
ver[0], ver[1], ver[2], ver[0], ver[1], ver[2])
""" % (git_tag, git_hash, datetime.date.today().strftime("%Y-%m-%d"))
# Check if the file contents changed from last time
write_file = True

View File

@ -37,8 +37,6 @@
#if MICROPY_PY_SYS
#include "genhdr/mpversion.h"
// defined per port; type of these is irrelevant, just need pointer
extern struct _mp_dummy_t mp_sys_stdin_obj;
extern struct _mp_dummy_t mp_sys_stdout_obj;

View File

@ -26,6 +26,23 @@
#ifndef MICROPY_INCLUDED_PY_MPCONFIG_H
#define MICROPY_INCLUDED_PY_MPCONFIG_H
// Current version of MicroPython
#define MICROPY_VERSION_MAJOR (1)
#define MICROPY_VERSION_MINOR (9)
#define MICROPY_VERSION_MICRO (4)
// Combined version as a 32-bit number for convenience
#define MICROPY_VERSION ( \
MICROPY_VERSION_MAJOR << 16 \
| MICROPY_VERSION_MINOR << 8 \
| MICROPY_VERSION_MICRO)
// String version
#define MICROPY_VERSION_STRING \
MP_STRINGIFY(MICROPY_VERSION_MAJOR) "." \
MP_STRINGIFY(MICROPY_VERSION_MINOR) "." \
MP_STRINGIFY(MICROPY_VERSION_MICRO)
// This file contains default configuration settings for MicroPython.
// You can override any of the options below using mpconfigport.h file
// located in a directory of your port.