Add commit info to `version.h` (#19542)

* Initial commit

* Fix import order

* Fix deleted code instead of debug print line

* Format

* Update lib/python/qmk/cli/generate/version_h.py

Co-authored-by: Ryan <fauxpark@gmail.com>

* Renaming

* Update lib/python/qmk/cli/generate/version_h.py

Co-authored-by: Joel Challis <git@zvecr.com>

* Update lib/python/qmk/git.py

Co-authored-by: Joel Challis <git@zvecr.com>

---------

Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
master
Pablo Martínez 2023-02-02 19:23:27 +01:00 committed by GitHub
parent 53132ab9cf
commit d55b07696b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 18 additions and 3 deletions

View File

@ -6,7 +6,7 @@ from milc import cli
from qmk.path import normpath from qmk.path import normpath
from qmk.commands import dump_lines from qmk.commands import dump_lines
from qmk.git import git_get_version from qmk.git import git_get_qmk_hash, git_get_version, git_is_dirty
from qmk.constants import GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE from qmk.constants import GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE
TIME_FMT = '%Y-%m-%d-%H:%M:%S' TIME_FMT = '%Y-%m-%d-%H:%M:%S'
@ -29,23 +29,30 @@ def generate_version_h(cli):
current_time = strftime(TIME_FMT) current_time = strftime(TIME_FMT)
if cli.args.skip_git: if cli.args.skip_git:
git_dirty = False
git_version = "NA" git_version = "NA"
git_qmk_hash = "NA"
chibios_version = "NA" chibios_version = "NA"
chibios_contrib_version = "NA" chibios_contrib_version = "NA"
else: else:
git_dirty = git_is_dirty()
git_version = git_get_version() or current_time git_version = git_get_version() or current_time
git_qmk_hash = git_get_qmk_hash() or "Unknown"
chibios_version = git_get_version("chibios", "os") or current_time chibios_version = git_get_version("chibios", "os") or current_time
chibios_contrib_version = git_get_version("chibios-contrib", "os") or current_time chibios_contrib_version = git_get_version("chibios-contrib", "os") or current_time
# Build the version.h file. # Build the version.h file.
version_h_lines = [GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE, '#pragma once'] version_h_lines = [GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE, '#pragma once']
version_h_lines.append(f""" version_h_lines.append(
f"""
#define QMK_VERSION "{git_version}" #define QMK_VERSION "{git_version}"
#define QMK_BUILDDATE "{current_time}" #define QMK_BUILDDATE "{current_time}"
#define QMK_GIT_HASH "{git_qmk_hash}{'*' if git_dirty else ''}"
#define CHIBIOS_VERSION "{chibios_version}" #define CHIBIOS_VERSION "{chibios_version}"
#define CHIBIOS_CONTRIB_VERSION "{chibios_contrib_version}" #define CHIBIOS_CONTRIB_VERSION "{chibios_contrib_version}"
""") """
)
# Show the results # Show the results
dump_lines(cli.args.output, version_h_lines, cli.args.quiet) dump_lines(cli.args.output, version_h_lines, cli.args.quiet)

View File

@ -136,3 +136,11 @@ def git_get_ignored_files(check_dir='.'):
if invalid.returncode != 0: if invalid.returncode != 0:
return [] return []
return invalid.stdout.strip().splitlines() return invalid.stdout.strip().splitlines()
def git_get_qmk_hash():
output = cli.run(['git', 'rev-parse', '--short', 'HEAD'])
if output.returncode != 0:
return None
return output.stdout.strip()