Distinguish builds with commit rather than build date

This commit is contained in:
ROllerozxa 2024-10-16 22:04:52 +02:00
commit 8ecccc1653
7 changed files with 38 additions and 4 deletions

View file

@ -15,6 +15,13 @@ endif()
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")
add_custom_target(GenerateGitVersion
COMMAND ${CMAKE_COMMAND}
-D "GENERATE_VERSION_SOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR}"
-D "GENERATE_VERSION_BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR}"
-P "${CMAKE_SOURCE_DIR}/cmake/Modules/GenerateGitVersion.cmake"
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}")
# Find core dependencies
# ----------------------
@ -89,7 +96,8 @@ include_directories(
${FREETYPE_INCLUDE_DIRS}
${JPEG_INCLUDE_DIRS}
${PNG_INCLUDE_DIRS}
${ZLIB_INCLUDE_DIRS})
${ZLIB_INCLUDE_DIRS}
${CMAKE_CURRENT_BINARY_DIR})
file(GLOB SRCS
src/tms/core/*.c
@ -237,6 +245,7 @@ else()
target_link_libraries(${PROJECT_NAME} ${OPENGL_LIBRARIES})
endif()
add_dependencies(${PROJECT_NAME} GenerateGitVersion)
# Compiler flags
# --------------

View file

@ -0,0 +1,14 @@
set(VERSION_GITHASH "(none)")
execute_process(COMMAND git rev-parse --short HEAD
WORKING_DIRECTORY "${GENERATE_VERSION_SOURCE_DIR}"
OUTPUT_VARIABLE VERSION_GITHASH OUTPUT_STRIP_TRAILING_WHITESPACE
ERROR_QUIET)
if(VERSION_GITHASH)
set(VERSION_GITHASH "${VERSION_GITHASH}")
endif()
configure_file(
${GENERATE_VERSION_SOURCE_DIR}/src/src/version_info_git.hh.in
${GENERATE_VERSION_BINARY_DIR}/version_info_git.hh)

View file

@ -20,8 +20,8 @@ menu_base::widget_clicked(principia_wdg *w, uint8_t button_id, int pid)
switch (button_id) {
case BTN_VERSION:
char msg[1024];
snprintf(msg, 1023, "Principia %s built at " __DATE__ " " __TIME__ ".",
principia_version_string());
snprintf(msg, 1023, "Principia %s commit %s",
principia_version_string(), principia_version_hash());
ui::message(msg);
break;

View file

@ -1,4 +1,5 @@
#include "version_info.hh"
#include "version_info_git.hh"
int principia_version_code() {
return PRINCIPIA_VERSION_CODE;
@ -7,3 +8,7 @@ int principia_version_code() {
const char* principia_version_string() {
return PRINCIPIA_VERSION_STRING;
}
const char* principia_version_hash() {
return PRINCIPIA_VERSION_HASH;
}

View file

@ -2,3 +2,4 @@
int principia_version_code();
const char* principia_version_string();
const char* principia_version_hash();

View file

@ -0,0 +1,5 @@
#pragma once
// Filled in by CMake
#define PRINCIPIA_VERSION_HASH "@VERSION_GITHASH@"

View file

@ -76,7 +76,7 @@ void print_log_header() {
"| |_) | | | | | | | (__| | |_) | | (_| |\n"
"| .__/|_| |_|_| |_|\\___|_| .__/|_|\\__,_|\n"
"|_| |_| \n"
"Version %d, built " __DATE__ " " __TIME__ "\n", principia_version_code());
"Version %s, commit %s\n", principia_version_string(), principia_version_hash());
}
int main(int argc, char **argv)