[FL-164] Add bootloader version (#417)
* Add bootloader versioning * Move some logic to api-hal-version * Backport to f4 * Dolphin: update version screen layout, make it more readable Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
This commit is contained in:
50
lib/version/version.c
Normal file
50
lib/version/version.c
Normal file
@@ -0,0 +1,50 @@
|
||||
#include "version.h"
|
||||
|
||||
struct Version {
|
||||
const char* git_hash;
|
||||
const char* git_branch;
|
||||
const char* git_branch_num;
|
||||
const char* build_date;
|
||||
const char* version;
|
||||
const char* target;
|
||||
};
|
||||
|
||||
/* version of current running firmware (bootloader/flipper) */
|
||||
static const Version version = {
|
||||
.git_hash = GIT_COMMIT,
|
||||
.git_branch = GIT_BRANCH,
|
||||
.git_branch_num = GIT_BRANCH_NUM,
|
||||
.build_date = BUILD_DATE,
|
||||
.version = VERSION,
|
||||
.target = TARGET,
|
||||
};
|
||||
|
||||
|
||||
const Version* version_get(void) {
|
||||
return &version;
|
||||
}
|
||||
|
||||
const char* version_get_githash(const Version* v) {
|
||||
return v ? v->git_hash : version.git_hash;
|
||||
}
|
||||
|
||||
const char* version_get_gitbranch(const Version* v) {
|
||||
return v ? v->git_branch : version.git_branch;
|
||||
}
|
||||
|
||||
const char* version_get_gitbranchnum(const Version* v) {
|
||||
return v ? v->git_branch_num : version.git_branch_num;
|
||||
}
|
||||
|
||||
const char* version_get_builddate(const Version* v) {
|
||||
return v ? v->build_date : version.build_date;
|
||||
}
|
||||
|
||||
const char* version_get_version(const Version* v) {
|
||||
return v ? v->version : version.version;
|
||||
}
|
||||
|
||||
const char* version_get_target(const Version* v) {
|
||||
return v ? v->target : version.target;
|
||||
}
|
||||
|
73
lib/version/version.h
Normal file
73
lib/version/version.h
Normal file
@@ -0,0 +1,73 @@
|
||||
#pragma once
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct Version Version;
|
||||
|
||||
/**
|
||||
* Gets current running firmware version handle.
|
||||
* You can store it somewhere. But if you want to retrieve data,
|
||||
* you have to use 'version_*_get()' set of functions.
|
||||
* Also, 'version_*_get()' imply to use this
|
||||
* handle if no handle (NULL_PTR) provided.
|
||||
*
|
||||
* @return Handle to version data.
|
||||
*/
|
||||
const Version* version_get(void);
|
||||
|
||||
/**
|
||||
* Gets git hash of build commit.
|
||||
*
|
||||
* @param v - ptr to version handle. If zero - gets current running fw info.
|
||||
* @return git hash
|
||||
*/
|
||||
const char* version_get_githash(const Version* v);
|
||||
|
||||
/**
|
||||
* Gets git branch of build commit.
|
||||
*
|
||||
* @param v - ptr to version handle. If zero - gets current running fw info.
|
||||
* @return git branch
|
||||
*/
|
||||
const char* version_get_gitbranch(const Version* v);
|
||||
|
||||
/**
|
||||
* Gets git number of build commit.
|
||||
*
|
||||
* @param v - ptr to version handle. If zero - gets current running fw info.
|
||||
* @return number of commit
|
||||
*/
|
||||
const char* version_get_gitbranchnum(const Version* v);
|
||||
|
||||
/**
|
||||
* Gets build date.
|
||||
*
|
||||
* @param v - ptr to version handle. If zero - gets current running fw info.
|
||||
* @return build date
|
||||
*/
|
||||
const char* version_get_builddate(const Version* v);
|
||||
|
||||
/**
|
||||
* Gets build version.
|
||||
* Build version is last tag in git history.
|
||||
*
|
||||
* @param v - ptr to version handle. If zero - gets current running fw info.
|
||||
* @return build date
|
||||
*/
|
||||
const char* version_get_version(const Version* v);
|
||||
|
||||
/**
|
||||
* Gets firmware target.
|
||||
* Build version is last tag for build commit.
|
||||
*
|
||||
* @param v - ptr to version handle. If zero - gets current running fw info.
|
||||
* @return build date
|
||||
*/
|
||||
const char* version_get_target(const Version* v);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user