summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAki <please@ignore.pl>2023-01-26 17:28:42 +0100
committerAki <please@ignore.pl>2023-01-26 17:31:38 +0100
commita40e6361ba7172e0a3f3b16e2d286db9928e94e2 (patch)
tree6e9d32a8a3e87fcedfb963f77f5c97d365fab437
parent0df01f74aac44831c7a8e181625058d2db6b8133 (diff)
downloadkurator-a40e6361ba7172e0a3f3b16e2d286db9928e94e2.zip
kurator-a40e6361ba7172e0a3f3b16e2d286db9928e94e2.tar.gz
kurator-a40e6361ba7172e0a3f3b16e2d286db9928e94e2.tar.bz2
Added build version identification to title screen
Since this uses configure_file it might have problems sometimes when trying to detect updated value. It will be better to move it to use custom target instead.
-rw-r--r--CMakeLists.txt3
-rw-r--r--cmake/modules/GitRevParse.cmake14
-rw-r--r--kurator/CMakeLists.txt5
-rw-r--r--kurator/src/Title.cpp3
-rw-r--r--kurator/src/version.cpp.conf8
-rw-r--r--kurator/src/version.h10
-rw-r--r--version.txt.conf1
7 files changed, 44 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 145635f..fe35ab7 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -8,9 +8,12 @@ find_package(EnTT 3 REQUIRED)
find_package(nlohmann_json 3 REQUIRED)
find_package(raylib 4 REQUIRED)
include(AddResources)
+include(GitRevParse)
+git_rev_parse(KURATOR_VERSION)
add_subdirectory(campaign)
add_subdirectory(contrib)
add_subdirectory(kurator)
add_subdirectory(sim)
add_subdirectory(stats)
add_subdirectory(universe)
+configure_file(version.txt.conf "${CMAKE_CURRENT_BINARY_DIR}/version.txt" @ONLY)
diff --git a/cmake/modules/GitRevParse.cmake b/cmake/modules/GitRevParse.cmake
new file mode 100644
index 0000000..9005d65
--- /dev/null
+++ b/cmake/modules/GitRevParse.cmake
@@ -0,0 +1,14 @@
+function(git_rev_parse VAR)
+ execute_process(
+ COMMAND git rev-parse --short HEAD
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ RESULT_VARIABLE PARSE_RESULT
+ OUTPUT_VARIABLE PARSE_OUTPUT
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+ if(NOT PARSE_RESULT)
+ set(${VAR} ${PARSE_OUTPUT} PARENT_SCOPE)
+ else()
+ set(${VAR} "Unknown" PARENT_SCOPE)
+ endif()
+endfunction()
diff --git a/kurator/CMakeLists.txt b/kurator/CMakeLists.txt
index 2fd6c55..7add534 100644
--- a/kurator/CMakeLists.txt
+++ b/kurator/CMakeLists.txt
@@ -27,6 +27,11 @@ target_link_libraries(
PRIVATE stats
PRIVATE universe
)
+configure_file(src/version.cpp.conf "${CMAKE_CURRENT_BINARY_DIR}/version.cpp" @ONLY)
+target_sources(
+ ${PROJECT_NAME}
+ PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/version.cpp"
+)
add_resources(
kurator_resources FILES
resources/skybox.png
diff --git a/kurator/src/Title.cpp b/kurator/src/Title.cpp
index 2801799..e5d2e2f 100644
--- a/kurator/src/Title.cpp
+++ b/kurator/src/Title.cpp
@@ -8,6 +8,7 @@
#include "SceneBuilder.h"
#include "Session.h"
+#include "version.h"
namespace kurator
@@ -45,6 +46,8 @@ Title::draw() const
const int width = GetScreenWidth();
const int title = MeasureText(text, 20);
DrawText(text, (width - title) / 2, 100, 20, GRAY);
+ const int height = GetScreenHeight();
+ DrawText(VERSION, 10, height - 15, 10, DARKGRAY);
}
diff --git a/kurator/src/version.cpp.conf b/kurator/src/version.cpp.conf
new file mode 100644
index 0000000..a6d0aa0
--- /dev/null
+++ b/kurator/src/version.cpp.conf
@@ -0,0 +1,8 @@
+namespace kurator
+{
+
+
+const char* VERSION {"@KURATOR_VERSION@"};
+
+
+} // namespace kurator
diff --git a/kurator/src/version.h b/kurator/src/version.h
new file mode 100644
index 0000000..cf58629
--- /dev/null
+++ b/kurator/src/version.h
@@ -0,0 +1,10 @@
+#pragma once
+
+namespace kurator
+{
+
+
+extern const char* VERSION;
+
+
+} // namespace kurator
diff --git a/version.txt.conf b/version.txt.conf
new file mode 100644
index 0000000..926d433
--- /dev/null
+++ b/version.txt.conf
@@ -0,0 +1 @@
+@KURATOR_VERSION@