summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author0scar <qgt268@alumni.ku.dk>2023-09-03 10:01:56 +0000
committer0scar <qgt268@alumni.ku.dk>2023-09-03 10:04:27 +0000
commitcad0850e219862cc82271534c75c7aaa15303a3a (patch)
tree0df28018f0fe52c393bef8a0f46a7f9027abd1f3
parent36689ac93e7442ae3a00b61ef4dc719db1b9b78b (diff)
Add some versioning management
-rw-r--r--CMakeLists.txt26
-rw-r--r--tools/cmake/configure.h.in10
2 files changed, 36 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index b9f4d70..c769322 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -59,6 +59,23 @@ else()
-ffunction-sections -fdata-sections)
endif()
+## Add some information before project configuration
+# Git Sha1
+execute_process(COMMAND
+ ${GIT_EXECUTABLE} describe --match=NeVeRmAtCh --always --abbrev=16 --dirty
+ WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
+ OUTPUT_VARIABLE GIT_SHA
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+
+#
+string(TIMESTAMP COMPILATION_DATE "%F")
+
+set(ENGINE_VERSION_MAJOR ${PROJECT_VERSION_MAJOR})
+set(ENGINE_VERSION_MINOR ${PROJECT_VERSION_MINOR})
+set(ENGINE_VERSION_PATCH ${PROJECT_VERSION_PATCH})
+set(ENGINE_VERSION_TWEAK ${GIT_SHA})
+
##
set(ENGINE_SOURCES
@@ -121,6 +138,8 @@ target_compile_definitions(${PROJECT_NAME} PUBLIC
$<$<BOOL:${DAW_BUILD_HOTRELOAD}>:DAW_BUILD_HOTRELOAD>
)
+configure_file(${CMAKE_CURRENT_LIST_DIR}/tools/cmake/configure.h.in
+ ${CMAKE_BINARY_DIR}/include/engine/configure.h)
configure_file(${CMAKE_CURRENT_LIST_DIR}/tools/cmake/list_of_states.h.in
${CMAKE_BINARY_DIR}/include/states/list_of_states.h)
@@ -135,8 +154,15 @@ if (NOT NOT_SUBPROJECT)
endif()
include(DawAddState)
+
+
+
+
+
+
message("Configured ${PROJECT_NAME} ${PROJECT_VERSION}")
message("Build type: ${CMAKE_BUILD_TYPE}")
+message("version: ${ENGINE_VERSION_MAJOR}.${ENGINE_VERSION_MINOR}.${ENGINE_VERSION_PATCH}-${ENGINE_VERSION_TWEAK}")
message("enable debug: ${DAW_BUILD_DEBUG}")
message("enable hotreload: ${DAW_BUILD_HOTRELOAD}")
message("enable asan: ${DAW_BUILD_ASAN}")
diff --git a/tools/cmake/configure.h.in b/tools/cmake/configure.h.in
new file mode 100644
index 0000000..6a186df
--- /dev/null
+++ b/tools/cmake/configure.h.in
@@ -0,0 +1,10 @@
+#cmakedefine GIT_SHA "@GIT_SHA@"
+#cmakedefine COMPILATION_DATE "@COMPILATION_DATE@"
+
+#cmakedefine ENGINE_VERSION_MAJOR @ENGINE_VERSION_MAJOR@
+#cmakedefine ENGINE_VERSION_MINOR @ENGINE_VERSION_MINOR@
+#cmakedefine ENGINE_VERSION_PATCH @ENGINE_VERSION_PATCH@
+#cmakedefine ENGINE_VERSION_TWEAK "@ENGINE_VERSION_TWEAK@"
+
+#cmakedefine ENGINE_VERSION_TWEAK \
+ "@ENGINE_VERSION_MAJOR@.@ENGINE_VERSION_MINOR@.@ENGINE_VERSION_PATCH@-@ENGINE_VERSION_TWEAK@"