|
|
@ -86,11 +86,17 @@ def create_make_command(keyboard, keymap, target=None, parallel=1, **env_vars): |
|
|
|
return create_make_target(':'.join(make_args), parallel, **env_vars) |
|
|
|
return create_make_target(':'.join(make_args), parallel, **env_vars) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def get_git_version(repo_dir='.', check_dir='.'): |
|
|
|
def get_git_version(current_time, repo_dir='.', check_dir='.'): |
|
|
|
"""Returns the current git version for a repo, or the current time. |
|
|
|
"""Returns the current git version for a repo, or the current time. |
|
|
|
""" |
|
|
|
""" |
|
|
|
git_describe_cmd = ['git', 'describe', '--abbrev=6', '--dirty', '--always', '--tags'] |
|
|
|
git_describe_cmd = ['git', 'describe', '--abbrev=6', '--dirty', '--always', '--tags'] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if repo_dir != '.': |
|
|
|
|
|
|
|
repo_dir = Path('lib') / repo_dir |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if check_dir != '.': |
|
|
|
|
|
|
|
check_dir = repo_dir / check_dir |
|
|
|
|
|
|
|
|
|
|
|
if Path(check_dir).exists(): |
|
|
|
if Path(check_dir).exists(): |
|
|
|
git_describe = cli.run(git_describe_cmd, stdin=DEVNULL, cwd=repo_dir) |
|
|
|
git_describe = cli.run(git_describe_cmd, stdin=DEVNULL, cwd=repo_dir) |
|
|
|
|
|
|
|
|
|
|
@ -100,23 +106,40 @@ def get_git_version(repo_dir='.', check_dir='.'): |
|
|
|
else: |
|
|
|
else: |
|
|
|
cli.log.warn(f'"{" ".join(git_describe_cmd)}" returned error code {git_describe.returncode}') |
|
|
|
cli.log.warn(f'"{" ".join(git_describe_cmd)}" returned error code {git_describe.returncode}') |
|
|
|
print(git_describe.stderr) |
|
|
|
print(git_describe.stderr) |
|
|
|
return strftime(time_fmt) |
|
|
|
return current_time |
|
|
|
|
|
|
|
|
|
|
|
return strftime(time_fmt) |
|
|
|
return current_time |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def write_version_h(git_version, build_date, chibios_version, chibios_contrib_version): |
|
|
|
def create_version_h(skip_git=False, skip_all=False): |
|
|
|
"""Generate and write quantum/version.h |
|
|
|
"""Generate version.h contents |
|
|
|
""" |
|
|
|
""" |
|
|
|
version_h = [ |
|
|
|
if skip_all: |
|
|
|
f'#define QMK_VERSION "{git_version}"', |
|
|
|
current_time = "1970-01-01-00:00:00" |
|
|
|
f'#define QMK_BUILDDATE "{build_date}"', |
|
|
|
else: |
|
|
|
f'#define CHIBIOS_VERSION "{chibios_version}"', |
|
|
|
current_time = strftime(time_fmt) |
|
|
|
f'#define CHIBIOS_CONTRIB_VERSION "{chibios_contrib_version}"', |
|
|
|
|
|
|
|
] |
|
|
|
if skip_git: |
|
|
|
|
|
|
|
git_version = "NA" |
|
|
|
|
|
|
|
chibios_version = "NA" |
|
|
|
|
|
|
|
chibios_contrib_version = "NA" |
|
|
|
|
|
|
|
else: |
|
|
|
|
|
|
|
git_version = get_git_version(current_time) |
|
|
|
|
|
|
|
chibios_version = get_git_version(current_time, "chibios", "os") |
|
|
|
|
|
|
|
chibios_contrib_version = get_git_version(current_time, "chibios-contrib", "os") |
|
|
|
|
|
|
|
|
|
|
|
version_h_file = Path('quantum/version.h') |
|
|
|
version_h_lines = f"""/* This file was automatically generated. Do not edit or copy. |
|
|
|
version_h_file.write_text('\n'.join(version_h)) |
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#pragma once |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#define QMK_VERSION "{git_version}" |
|
|
|
|
|
|
|
#define QMK_BUILDDATE "{current_time}" |
|
|
|
|
|
|
|
#define CHIBIOS_VERSION "{chibios_version}" |
|
|
|
|
|
|
|
#define CHIBIOS_CONTRIB_VERSION "{chibios_contrib_version}" |
|
|
|
|
|
|
|
""" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return version_h_lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def compile_configurator_json(user_keymap, bootloader=None, parallel=1, **env_vars): |
|
|
|
def compile_configurator_json(user_keymap, bootloader=None, parallel=1, **env_vars): |
|
|
@ -149,13 +172,8 @@ def compile_configurator_json(user_keymap, bootloader=None, parallel=1, **env_va |
|
|
|
keymap_dir.mkdir(exist_ok=True, parents=True) |
|
|
|
keymap_dir.mkdir(exist_ok=True, parents=True) |
|
|
|
keymap_c.write_text(c_text) |
|
|
|
keymap_c.write_text(c_text) |
|
|
|
|
|
|
|
|
|
|
|
# Write the version.h file |
|
|
|
version_h = Path('quantum/version.h') |
|
|
|
git_version = get_git_version() |
|
|
|
version_h.write_text(create_version_h()) |
|
|
|
build_date = strftime('%Y-%m-%d-%H:%M:%S') |
|
|
|
|
|
|
|
chibios_version = get_git_version("lib/chibios", "lib/chibios/os") |
|
|
|
|
|
|
|
chibios_contrib_version = get_git_version("lib/chibios-contrib", "lib/chibios-contrib/os") |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
write_version_h(git_version, build_date, chibios_version, chibios_contrib_version) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Return a command that can be run to make the keymap and flash if given |
|
|
|
# Return a command that can be run to make the keymap and flash if given |
|
|
|
verbose = 'true' if cli.config.general.verbose else 'false' |
|
|
|
verbose = 'true' if cli.config.general.verbose else 'false' |
|
|
@ -181,10 +199,6 @@ def compile_configurator_json(user_keymap, bootloader=None, parallel=1, **env_va |
|
|
|
make_command.append(f'{key}={value}') |
|
|
|
make_command.append(f'{key}={value}') |
|
|
|
|
|
|
|
|
|
|
|
make_command.extend([ |
|
|
|
make_command.extend([ |
|
|
|
f'GIT_VERSION={git_version}', |
|
|
|
|
|
|
|
f'BUILD_DATE={build_date}', |
|
|
|
|
|
|
|
f'CHIBIOS_VERSION={chibios_version}', |
|
|
|
|
|
|
|
f'CHIBIOS_CONTRIB_VERSION={chibios_contrib_version}', |
|
|
|
|
|
|
|
f'KEYBOARD={user_keymap["keyboard"]}', |
|
|
|
f'KEYBOARD={user_keymap["keyboard"]}', |
|
|
|
f'KEYMAP={user_keymap["keymap"]}', |
|
|
|
f'KEYMAP={user_keymap["keymap"]}', |
|
|
|
f'KEYBOARD_FILESAFE={keyboard_filesafe}', |
|
|
|
f'KEYBOARD_FILESAFE={keyboard_filesafe}', |
|
|
|