summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJF002 <JF002@users.noreply.github.com>2021-05-16 11:37:39 +0200
committerGitHub <noreply@github.com>2021-05-16 11:37:39 +0200
commit5b2472c4bc84bbdd5e8326ea7562f6bc133cf00e (patch)
tree7b78058f711164ab36890c2acccb56c8e7ac6e91
parentb5884397191964a3bc080bd4c6953e2b00a564a9 (diff)
parenta4de61e1f5c7842d25bac0cfb22e4a9f0bff671c (diff)
Merge pull request #347 from jedi2light/feature-show-git-commit-hash-short
Feature: Store and show git short ref on PineTime alongside other firmware information
-rw-r--r--CMakeLists.txt12
-rw-r--r--docker/.gitpod.Dockerfile3
-rw-r--r--docker/Dockerfile3
-rw-r--r--src/Version.h.in2
-rw-r--r--src/displayapp/screens/FirmwareValidation.cpp11
-rw-r--r--src/displayapp/screens/FirmwareValidation.h3
-rw-r--r--src/displayapp/screens/SystemInfo.cpp2
7 files changed, 36 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index f7770136..6c529f39 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -55,10 +55,22 @@ if(BUILD_DFU)
set(BUILD_DFU true)
endif()
+set(PROJECT_GIT_COMMIT_HASH "")
+
+execute_process(COMMAND git rev-parse --short HEAD
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ OUTPUT_VARIABLE PROJECT_GIT_COMMIT_HASH
+ RESULT_VARIABLE PROJECT_GIT_COMMIT_HASH_SUCCESS)
+
+string(STRIP ${PROJECT_GIT_COMMIT_HASH} PROJECT_GIT_COMMIT_HASH)
+
+message("PROJECT_GIT_COMMIT_HASH_SUCCESS? " ${PROJECT_GIT_COMMIT_HASH_SUCCESS})
+
message("BUILD CONFIGURATION")
message("-------------------")
message(" * Version : " ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH})
message(" * Toolchain : " ${ARM_NONE_EABI_TOOLCHAIN_PATH})
+message(" * GitRef(S) : " ${PROJECT_GIT_COMMIT_HASH})
message(" * NRF52 SDK : " ${NRF5_SDK_PATH})
set(PROGRAMMER "???")
if(USE_JLINK)
diff --git a/docker/.gitpod.Dockerfile b/docker/.gitpod.Dockerfile
index 2f7099a5..4fbc7be0 100644
--- a/docker/.gitpod.Dockerfile
+++ b/docker/.gitpod.Dockerfile
@@ -19,8 +19,11 @@ RUN apt-get update -qq \
libffi-dev \
libssl-dev \
python3-dev \
+ git \
&& rm -rf /var/cache/apt/* /var/lib/apt/lists/*;
+# Git needed for PROJECT_GIT_COMMIT_HASH variable setting
+
# Needs to be installed as root
RUN pip3 install adafruit-nrfutil
RUN pip3 install -Iv cryptography==3.3
diff --git a/docker/Dockerfile b/docker/Dockerfile
index a6caa24e..0a4f69f0 100644
--- a/docker/Dockerfile
+++ b/docker/Dockerfile
@@ -19,8 +19,11 @@ RUN apt-get update -qq \
libssl-dev \
python3-dev \
python \
+ git \
&& rm -rf /var/cache/apt/* /var/lib/apt/lists/*;
+# Git needed for PROJECT_GIT_COMMIT_HASH variable setting
+
RUN pip3 install adafruit-nrfutil
RUN pip3 install -Iv cryptography==3.3
diff --git a/src/Version.h.in b/src/Version.h.in
index 6ff5938e..8cd39c96 100644
--- a/src/Version.h.in
+++ b/src/Version.h.in
@@ -8,11 +8,13 @@ namespace Pinetime {
static constexpr uint32_t Major() {return major;}
static constexpr uint32_t Minor() {return minor;}
static constexpr uint32_t Patch() {return patch;}
+ static constexpr const char* GitCommitHash() {return commitHash;}
static constexpr const char* VersionString() {return versionString;}
private:
static constexpr uint32_t major = @PROJECT_VERSION_MAJOR@;
static constexpr uint32_t minor = @PROJECT_VERSION_MINOR@;
static constexpr uint32_t patch = @PROJECT_VERSION_PATCH@;
+ static constexpr const char* commitHash = "@PROJECT_GIT_COMMIT_HASH@";
static constexpr const char* versionString = "@PROJECT_VERSION_MAJOR@.@PROJECT_VERSION_MINOR@.@PROJECT_VERSION_PATCH@";
};
} \ No newline at end of file
diff --git a/src/displayapp/screens/FirmwareValidation.cpp b/src/displayapp/screens/FirmwareValidation.cpp
index 873a22f5..ad37a3df 100644
--- a/src/displayapp/screens/FirmwareValidation.cpp
+++ b/src/displayapp/screens/FirmwareValidation.cpp
@@ -27,6 +27,17 @@ FirmwareValidation::FirmwareValidation(Pinetime::Applications::DisplayApp* app,
sprintf(version, "%ld.%ld.%ld", Version::Major(), Version::Minor(), Version::Patch());
lv_label_set_text(labelVersionValue, version);
+ labelShortRefInfo = lv_label_create(lv_scr_act(), nullptr);
+ lv_obj_align(labelShortRefInfo, nullptr, LV_ALIGN_IN_TOP_LEFT, 0, 25);
+ lv_label_set_text(labelShortRefInfo, "ShortRef : ");
+ lv_label_set_align(labelShortRefInfo, LV_LABEL_ALIGN_LEFT);
+
+ labelShortRefValue = lv_label_create(lv_scr_act(), nullptr);
+ lv_obj_align(labelShortRefValue, labelShortRefInfo, LV_ALIGN_OUT_RIGHT_MID, 0, 0);
+ lv_label_set_recolor(labelShortRefValue, true);
+ sprintf(shortref, "%s", Version::GitCommitHash());
+ lv_label_set_text(labelShortRefValue, shortref);
+
labelIsValidated = lv_label_create(lv_scr_act(), nullptr);
lv_obj_align(labelIsValidated, nullptr, LV_ALIGN_IN_TOP_LEFT, 0, 50);
lv_label_set_recolor(labelIsValidated, true);
diff --git a/src/displayapp/screens/FirmwareValidation.h b/src/displayapp/screens/FirmwareValidation.h
index 67662fd9..303c2154 100644
--- a/src/displayapp/screens/FirmwareValidation.h
+++ b/src/displayapp/screens/FirmwareValidation.h
@@ -25,7 +25,10 @@ namespace Pinetime {
lv_obj_t* labelVersionInfo;
lv_obj_t* labelVersionValue;
+ lv_obj_t* labelShortRefInfo;
+ lv_obj_t* labelShortRefValue;
char version[9];
+ char shortref[9];
lv_obj_t* labelIsValidated;
lv_obj_t* buttonValidate;
lv_obj_t* labelButtonValidate;
diff --git a/src/displayapp/screens/SystemInfo.cpp b/src/displayapp/screens/SystemInfo.cpp
index ab349d7b..e4ef6911 100644
--- a/src/displayapp/screens/SystemInfo.cpp
+++ b/src/displayapp/screens/SystemInfo.cpp
@@ -69,12 +69,14 @@ std::unique_ptr<Screen> SystemInfo::CreateScreen1() {
lv_label_set_text_fmt(label,
"#FFFF00 InfiniTime#\n\n"
"#444444 Version# %ld.%ld.%ld\n\n"
+ "#444444 Short Ref# %s\n\n"
"#444444 Build date#\n"
"%s\n"
"%s\n",
Version::Major(),
Version::Minor(),
Version::Patch(),
+ Version::GitCommitHash(),
__DATE__,
__TIME__);
lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);