mirror of
				https://github.com/mfulz/qmk_firmware.git
				synced 2025-10-31 05:12:33 +01:00 
			
		
		
		
	 d55b07696b
			
		
	
	
		d55b07696b
		
			
		
	
	
	
	
		
			
			* 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>
		
			
				
	
	
		
			59 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| """Used by the make system to generate version.h for use in code.
 | |
| """
 | |
| from time import strftime
 | |
| 
 | |
| from milc import cli
 | |
| 
 | |
| from qmk.path import normpath
 | |
| from qmk.commands import dump_lines
 | |
| 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
 | |
| 
 | |
| TIME_FMT = '%Y-%m-%d-%H:%M:%S'
 | |
| 
 | |
| 
 | |
| @cli.argument('-o', '--output', arg_only=True, type=normpath, help='File to write to')
 | |
| @cli.argument('-q', '--quiet', arg_only=True, action='store_true', help="Quiet mode, only output error messages")
 | |
| @cli.argument('--skip-git', arg_only=True, action='store_true', help='Skip Git operations')
 | |
| @cli.argument('--skip-all', arg_only=True, action='store_true', help='Use placeholder values for all defines (implies --skip-git)')
 | |
| @cli.subcommand('Used by the make system to generate version.h for use in code', hidden=True)
 | |
| def generate_version_h(cli):
 | |
|     """Generates the version.h file.
 | |
|     """
 | |
|     if cli.args.skip_all:
 | |
|         cli.args.skip_git = True
 | |
| 
 | |
|     if cli.args.skip_all:
 | |
|         current_time = "1970-01-01-00:00:00"
 | |
|     else:
 | |
|         current_time = strftime(TIME_FMT)
 | |
| 
 | |
|     if cli.args.skip_git:
 | |
|         git_dirty = False
 | |
|         git_version = "NA"
 | |
|         git_qmk_hash = "NA"
 | |
|         chibios_version = "NA"
 | |
|         chibios_contrib_version = "NA"
 | |
|     else:
 | |
|         git_dirty = git_is_dirty()
 | |
|         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_contrib_version = git_get_version("chibios-contrib", "os") or current_time
 | |
| 
 | |
|     # Build the version.h file.
 | |
|     version_h_lines = [GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE, '#pragma once']
 | |
| 
 | |
|     version_h_lines.append(
 | |
|         f"""
 | |
| #define QMK_VERSION "{git_version}"
 | |
| #define QMK_BUILDDATE "{current_time}"
 | |
| #define QMK_GIT_HASH  "{git_qmk_hash}{'*' if git_dirty else ''}"
 | |
| #define CHIBIOS_VERSION "{chibios_version}"
 | |
| #define CHIBIOS_CONTRIB_VERSION "{chibios_contrib_version}"
 | |
| """
 | |
|     )
 | |
| 
 | |
|     # Show the results
 | |
|     dump_lines(cli.args.output, version_h_lines, cli.args.quiet)
 |