From 24cccb0a775f3f5cd39988529e86019517a3570a Mon Sep 17 00:00:00 2001 From: Aki Date: Sat, 17 Feb 2024 21:04:48 +0100 Subject: Regenerate version.txt on each commit --- CMakeLists.txt | 3 ++- cmake/modules/AddVersionFile.cmake | 15 +++++++++++++++ cmake/modules/generate_version_file.cmake | 3 +++ 3 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 cmake/modules/AddVersionFile.cmake create mode 100644 cmake/modules/generate_version_file.cmake 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) -- cgit v1.1