From 3d599ad79bc1484443534e6c53008b6e295052a1 Mon Sep 17 00:00:00 2001 From: Tyler Wilding Date: Thu, 23 Jun 2022 18:44:27 -0400 Subject: [PATCH] game: use the tagged version number if available (#1526) --- game/CMakeLists.txt | 19 ++++++++++++++----- game/graphics/gfx.cpp | 4 +++- game/graphics/opengl_renderer/debug_gui.cpp | 4 +++- game/kernel/kmachine.cpp | 2 +- 4 files changed, 21 insertions(+), 8 deletions(-) diff --git a/game/CMakeLists.txt b/game/CMakeLists.txt index 32e25afcba..5c836c3657 100644 --- a/game/CMakeLists.txt +++ b/game/CMakeLists.txt @@ -131,21 +131,30 @@ set(RUNTIME_SOURCE find_package(Git) function(write_svnrev_h) + set(GIT_VERSION "") set(GIT_SHORT_SHA "") + set(GIT_TAG "") if (GIT_FOUND AND EXISTS ${CMAKE_SOURCE_DIR}/.git) EXECUTE_PROCESS(WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} COMMAND ${GIT_EXECUTABLE} rev-parse --short HEAD OUTPUT_VARIABLE GIT_SHORT_SHA OUTPUT_STRIP_TRAILING_WHITESPACE) + EXECUTE_PROCESS(WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} COMMAND ${GIT_EXECUTABLE} tag --points-at HEAD + OUTPUT_VARIABLE GIT_TAG + OUTPUT_STRIP_TRAILING_WHITESPACE + ERROR_QUIET) else() - set(GIT_SHORT_SHA "unk. rev.") + set(GIT_VERSION "unk. rev.") endif() - if(NOT GIT_SHORT_SHA) - set(GIT_SHORT_SHA "unk. rev.") - else() + if(GIT_TAG) + set(GIT_VERSION ${GIT_TAG}) + elseif(GIT_SHORT_SHA) string(SUBSTRING ${GIT_SHORT_SHA} 0 6 GIT_SHORT_SHA) + set(GIT_VERSION "rev. ${GIT_SHORT_SHA}") + else() + set(GIT_VERSION "unk. rev.") endif() - file(WRITE ${CMAKE_CURRENT_SOURCE_DIR}/kernel/svnrev.h "#define GIT_SHORT_SHA \"rev. ${GIT_SHORT_SHA}\"\n") + file(WRITE ${CMAKE_CURRENT_SOURCE_DIR}/kernel/svnrev.h "#define GIT_VERSION \"${GIT_VERSION}\"\n") endfunction() write_svnrev_h() diff --git a/game/graphics/gfx.cpp b/game/graphics/gfx.cpp index 36cf9a0ef2..fd3b05a887 100644 --- a/game/graphics/gfx.cpp +++ b/game/graphics/gfx.cpp @@ -17,6 +17,7 @@ #include "game/common/file_paths.h" #include "game/kernel/kscheme.h" +#include "game/kernel/svnrev.h" #include "game/runtime.h" #include "game/system/newpad.h" #include "pipelines/opengl.h" @@ -123,7 +124,8 @@ u32 Init() { if (g_main_thread_id != std::this_thread::get_id()) { lg::error("Ran Gfx::Init outside main thread. Init display elsewhere?"); } else { - Display::InitMainDisplay(640, 480, "OpenGOAL GL Window", g_settings); + Display::InitMainDisplay( + 640, 480, fmt::format("OpenGOAL - Work in Progress - {}", GIT_VERSION).c_str(), g_settings); } return 0; diff --git a/game/graphics/opengl_renderer/debug_gui.cpp b/game/graphics/opengl_renderer/debug_gui.cpp index 76ad6140f4..29df6807c6 100644 --- a/game/graphics/opengl_renderer/debug_gui.cpp +++ b/game/graphics/opengl_renderer/debug_gui.cpp @@ -3,6 +3,8 @@ #include +#include "game/kernel/svnrev.h" + #include "third-party/imgui/imgui.h" void FrameTimeRecorder::finish_frame() { @@ -137,7 +139,7 @@ void OpenGlDebugGui::draw(const DmaStats& dma_stats) { ImGui::EndMenu(); } - if (ImGui::BeginMenu("WORK IN PROGRESS VERSION!")) { + if (ImGui::BeginMenu(fmt::format("WORK IN PROGRESS VERSION ({})!", GIT_VERSION).c_str())) { ImGui::EndMenu(); } } diff --git a/game/kernel/kmachine.cpp b/game/kernel/kmachine.cpp index ab3b61b19d..f394c0ee17 100644 --- a/game/kernel/kmachine.cpp +++ b/game/kernel/kmachine.cpp @@ -1053,7 +1053,7 @@ void InitMachine_PCPort() { // TODO - we will eventually need a better way to know what game we are playing auto settings_path = file_util::get_user_settings_dir(); intern_from_c("*pc-settings-folder*")->value = make_string_from_c(settings_path.string().c_str()); - intern_from_c("*pc-settings-built-sha*")->value = make_string_from_c(GIT_SHORT_SHA); + intern_from_c("*pc-settings-built-sha*")->value = make_string_from_c(GIT_VERSION); } /*! * PC PORT FUNCTIONS END