summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAki <please@ignore.pl>2024-02-17 21:04:48 +0100
committerAki <please@ignore.pl>2024-02-17 21:06:38 +0100
commit24cccb0a775f3f5cd39988529e86019517a3570a (patch)
tree1c6f0f591abfc16e32358dbcf2f3fa3c5c3f9434
parentebbb8b46e21dc98d4d8dc9e208689fbebfcd275b (diff)
downloadstarshatter-24cccb0a775f3f5cd39988529e86019517a3570a.zip
starshatter-24cccb0a775f3f5cd39988529e86019517a3570a.tar.gz
starshatter-24cccb0a775f3f5cd39988529e86019517a3570a.tar.bz2
Regenerate version.txt on each commit
-rw-r--r--CMakeLists.txt3
-rw-r--r--cmake/modules/AddVersionFile.cmake15
-rw-r--r--cmake/modules/generate_version_file.cmake3
3 files changed, 20 insertions, 1 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8797278..0bca9e2 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -3,6 +3,7 @@ set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_EXTENSIONS Yes)
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules")
project(Starshatter)
+include(AddVersionFile)
include(GitDescribe)
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
if(CMAKE_HOST_SYSTEM_NAME MATCHES Windows)
@@ -28,7 +29,7 @@ add_subdirectory(NetEx)
add_subdirectory(Starserver)
add_subdirectory(StarsEx)
add_subdirectory(Starshatter)
-configure_file(version.txt.conf ${CMAKE_CURRENT_BINARY_DIR}/version.txt @ONLY)
+add_version_file(version.txt version.txt.conf)
install(
FILES NOTICE COPYING
COMPONENT Copyright
diff --git a/cmake/modules/AddVersionFile.cmake b/cmake/modules/AddVersionFile.cmake
new file mode 100644
index 0000000..67b3371
--- /dev/null
+++ b/cmake/modules/AddVersionFile.cmake
@@ -0,0 +1,15 @@
+set(ADD_VERSION_FILE_DIR "${CMAKE_CURRENT_LIST_DIR}")
+function(add_version_file OUTPUT TEMPLATE)
+ add_custom_target(
+ ${OUTPUT}
+ ALL
+ BYPRODUCTS "${CMAKE_CURRENT_BINARY_DIR}/${OUTPUT}"
+ DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/${TEMPLATE}"
+ WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
+ COMMAND
+ cmake
+ -DCMAKE_MODULE_PATH='${ADD_VERSION_FILE_DIR}'
+ -DOUTPUT='${CMAKE_CURRENT_BINARY_DIR}/${OUTPUT}'
+ -DTEMPLATE='${CMAKE_CURRENT_SOURCE_DIR}/${TEMPLATE}'
+ -P "${ADD_VERSION_FILE_DIR}/generate_version_file.cmake")
+endfunction()
diff --git a/cmake/modules/generate_version_file.cmake b/cmake/modules/generate_version_file.cmake
new file mode 100644
index 0000000..e8d8196
--- /dev/null
+++ b/cmake/modules/generate_version_file.cmake
@@ -0,0 +1,3 @@
+include(GitDescribe)
+git_describe(STARSHATTER_VERSION)
+configure_file("${TEMPLATE}" "${OUTPUT}" @ONLY)