Skip to content

Commit cf0711d

Browse files
committed
Adding more version information
- Most recent git tag (version) - Most recent git tag hash (needed for revision number) - Most recent git tag commit number - Commit number difference between current and last tagged commit
1 parent decf035 commit cf0711d

3 files changed

Lines changed: 54 additions & 13 deletions

File tree

Debug/cli/cli.c

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -708,21 +708,25 @@ void cliFunc_tick( char* args )
708708
void cliFunc_version( char* args )
709709
{
710710
print( NL );
711-
print( " \033[1mRevision:\033[0m " CLI_Revision NL );
712-
print( " \033[1mBranch:\033[0m " CLI_Branch NL );
711+
print( " \033[1mRevision:\033[0m " CLI_Revision NL );
712+
print( " \033[1mRevision #:\033[0m " CLI_RevisionNumberStr NL );
713+
print( " \033[1mVersion:\033[0m " CLI_Version " (+" );
714+
printInt16( CLI_RevisionNumber - CLI_VersionRevNumber );
715+
print( ":" CLI_VersionRevNumberStr ")" NL );
716+
print( " \033[1mBranch:\033[0m " CLI_Branch NL );
713717
print( " \033[1mTree Status:\033[0m " CLI_ModifiedStatus CLI_ModifiedFiles NL );
714-
print( " \033[1mRepo Origin:\033[0m " CLI_RepoOrigin NL );
715-
print( " \033[1mCommit Date:\033[0m " CLI_CommitDate NL );
716-
print( " \033[1mCommit Author:\033[0m " CLI_CommitAuthor NL );
717-
print( " \033[1mBuild Date:\033[0m " CLI_BuildDate NL );
718-
print( " \033[1mBuild OS:\033[0m " CLI_BuildOS NL );
719-
print( " \033[1mArchitecture:\033[0m " CLI_Arch NL );
718+
print( " \033[1mRepo Origin:\033[0m " CLI_RepoOrigin NL );
719+
print( " \033[1mCommit Date:\033[0m " CLI_CommitDate NL );
720+
print( " \033[1mCommit Author:\033[0m " CLI_CommitAuthor NL );
721+
print( " \033[1mBuild Date:\033[0m " CLI_BuildDate NL );
722+
print( " \033[1mBuild OS:\033[0m " CLI_BuildOS NL );
723+
print( " \033[1mArchitecture:\033[0m " CLI_Arch NL );
720724
print( " \033[1mChip Compiled:\033[0m " CLI_ChipShort " (" CLI_Chip ")" NL );
721-
print( " \033[1mCPU:\033[0m " CLI_CPU NL );
722-
print( " \033[1mDevice:\033[0m " CLI_Device NL );
723-
print( " \033[1mModules:\033[0m " CLI_Modules NL );
725+
print( " \033[1mCPU:\033[0m " CLI_CPU NL );
726+
print( " \033[1mDevice:\033[0m " CLI_Device NL );
727+
print( " \033[1mModules:\033[0m " CLI_Modules NL );
724728
#if defined(_teensy_)
725-
print( " \033[1mTeensy:\033[0m Yes" NL );
729+
print( " \033[1mTeensy:\033[0m Yes" NL );
726730
#endif
727731
#if defined(_kinetis_)
728732
print( NL );

Lib/CMake/buildinfo.cmake

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
###| CMAKE Kiibohd Controller Source Configurator |###
22
#
3-
# Written by Jacob Alexander in 2011-2016 for the Kiibohd Controller
3+
# Written by Jacob Alexander in 2011-2017 for the Kiibohd Controller
44
#
55
# Released into the Public Domain
66
#
@@ -79,6 +79,33 @@ execute_process ( COMMAND ${GIT_EXECUTABLE} rev-list --count HEAD
7979
RESULT_VARIABLE res_var
8080
)
8181

82+
#| Most Recent Tag (on branch)
83+
execute_process ( COMMAND ${GIT_EXECUTABLE} for-each-ref refs/tags --sort=-taggerdate "--format=%(refname:short)" --count=1
84+
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
85+
OUTPUT_VARIABLE Git_Recent_Tag
86+
ERROR_QUIET
87+
OUTPUT_STRIP_TRAILING_WHITESPACE
88+
RESULT_VARIABLE res_var
89+
)
90+
91+
#| Most Recent Tag Hash (on branch)
92+
execute_process ( COMMAND ${GIT_EXECUTABLE} rev-list -n 1 ${Git_Recent_Tag}
93+
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
94+
OUTPUT_VARIABLE Git_Recent_Tag_Revision
95+
ERROR_QUIET
96+
OUTPUT_STRIP_TRAILING_WHITESPACE
97+
RESULT_VARIABLE res_var
98+
)
99+
100+
#| Most Recent Tag Commit Number (on branch)
101+
execute_process ( COMMAND ${GIT_EXECUTABLE} rev-list --count ${Git_Recent_Tag_Revision}
102+
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
103+
OUTPUT_VARIABLE Git_Recent_Tag_Commit_Number
104+
ERROR_QUIET
105+
OUTPUT_STRIP_TRAILING_WHITESPACE
106+
RESULT_VARIABLE res_var
107+
)
108+
82109
#| Older versions of git (e.g. 1.7.1) dont' like rev-list --count
83110
#| If there's an error, try again with a less efficient version
84111
if ( NOT "${res_var}" STREQUAL "0" )

Lib/_buildvars.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,10 @@
2727

2828
// ----- Defines -----
2929

30+
// Helpers
31+
#define _STR_HELPER(x)
32+
#define _STR(x) _STR_HELPER(x)
33+
3034
// You can change these to give your code its own name.
3135
#define STR_MANUFACTURER L"@MANUFACTURER@"
3236
#define STR_PRODUCT L"Keyboard - @ScanModule@ @MacroModule@ @OutputModule@ @DebugModule@"
@@ -36,6 +40,12 @@
3640

3741
// Strings used in the CLI module
3842
#define CLI_Revision "@Git_Commit_Revision@"
43+
#define CLI_RevisionNumber @Git_Commit_Number@
44+
#define CLI_RevisionNumberStr "@Git_Commit_Number@"
45+
#define CLI_Version "@Git_Recent_Tag@"
46+
#define CLI_VersionRevision "@Git_Recent_Tag_Revision@"
47+
#define CLI_VersionRevNumber @Git_Recent_Tag_Commit_Number@
48+
#define CLI_VersionRevNumberStr "@Git_Recent_Tag_Commit_Number@"
3949
#define CLI_Branch "@Git_Branch_INFO@"
4050
#define CLI_ModifiedStatus "@Git_Modified_Status@"
4151
#define CLI_ModifiedFiles "@Git_Modified_Files@"

0 commit comments

Comments
 (0)