summaryrefslogtreecommitdiff
path: root/lib/python
diff options
context:
space:
mode:
Diffstat (limited to 'lib/python')
-rw-r--r--lib/python/qmk/cli/generate/version_h.py4
-rw-r--r--lib/python/qmk/util.py10
2 files changed, 14 insertions, 0 deletions
diff --git a/lib/python/qmk/cli/generate/version_h.py b/lib/python/qmk/cli/generate/version_h.py
index fd87df3617..8156e85559 100644
--- a/lib/python/qmk/cli/generate/version_h.py
+++ b/lib/python/qmk/cli/generate/version_h.py
@@ -8,6 +8,7 @@ from qmk.path import normpath
8from qmk.commands import dump_lines 8from qmk.commands import dump_lines
9from qmk.git import git_get_qmk_hash, git_get_version, git_is_dirty 9from qmk.git import git_get_qmk_hash, git_get_version, git_is_dirty
10from qmk.constants import GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE 10from qmk.constants import GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE
11from qmk.util import triplet_to_bcd
11 12
12TIME_FMT = '%Y-%m-%d-%H:%M:%S' 13TIME_FMT = '%Y-%m-%d-%H:%M:%S'
13 14
@@ -32,12 +33,14 @@ def generate_version_h(cli):
32 git_dirty = False 33 git_dirty = False
33 git_version = "NA" 34 git_version = "NA"
34 git_qmk_hash = "NA" 35 git_qmk_hash = "NA"
36 git_bcd_version = "0x00000000"
35 chibios_version = "NA" 37 chibios_version = "NA"
36 chibios_contrib_version = "NA" 38 chibios_contrib_version = "NA"
37 else: 39 else:
38 git_dirty = git_is_dirty() 40 git_dirty = git_is_dirty()
39 git_version = git_get_version() or current_time 41 git_version = git_get_version() or current_time
40 git_qmk_hash = git_get_qmk_hash() or "Unknown" 42 git_qmk_hash = git_get_qmk_hash() or "Unknown"
43 git_bcd_version = triplet_to_bcd(git_version)
41 chibios_version = git_get_version("chibios", "os") or current_time 44 chibios_version = git_get_version("chibios", "os") or current_time
42 chibios_contrib_version = git_get_version("chibios-contrib", "os") or current_time 45 chibios_contrib_version = git_get_version("chibios-contrib", "os") or current_time
43 46
@@ -48,6 +51,7 @@ def generate_version_h(cli):
48 f""" 51 f"""
49#define QMK_VERSION "{git_version}" 52#define QMK_VERSION "{git_version}"
50#define QMK_BUILDDATE "{current_time}" 53#define QMK_BUILDDATE "{current_time}"
54#define QMK_VERSION_BCD {git_bcd_version}
51#define QMK_GIT_HASH "{git_qmk_hash}{'*' if git_dirty else ''}" 55#define QMK_GIT_HASH "{git_qmk_hash}{'*' if git_dirty else ''}"
52#define CHIBIOS_VERSION "{chibios_version}" 56#define CHIBIOS_VERSION "{chibios_version}"
53#define CHIBIOS_CONTRIB_VERSION "{chibios_contrib_version}" 57#define CHIBIOS_CONTRIB_VERSION "{chibios_contrib_version}"
diff --git a/lib/python/qmk/util.py b/lib/python/qmk/util.py
index 8f99410e1d..6da684a577 100644
--- a/lib/python/qmk/util.py
+++ b/lib/python/qmk/util.py
@@ -3,9 +3,12 @@
3import contextlib 3import contextlib
4import multiprocessing 4import multiprocessing
5import sys 5import sys
6import re
6 7
7from milc import cli 8from milc import cli
8 9
10TRIPLET_PATTERN = re.compile(r'^(\d+)\.(\d+)\.(\d+)')
11
9maybe_exit_should_exit = True 12maybe_exit_should_exit = True
10maybe_exit_reraise = False 13maybe_exit_reraise = False
11 14
@@ -96,3 +99,10 @@ def parallel_map(*args, **kwargs):
96 # before the results are returned. Returning a list ensures results are 99 # before the results are returned. Returning a list ensures results are
97 # materialised before any worker pool is shut down. 100 # materialised before any worker pool is shut down.
98 return list(map_fn(*args, **kwargs)) 101 return list(map_fn(*args, **kwargs))
102
103
104def triplet_to_bcd(ver: str):
105 m = TRIPLET_PATTERN.match(ver)
106 if not m:
107 return '0x00000000'
108 return f'0x{int(m.group(1)):02d}{int(m.group(2)):02d}{int(m.group(3)):04d}'