From 079035dbf4890e667c5e931295a1c24f28d9c0df Mon Sep 17 00:00:00 2001 From: Dimitri Staessens Date: Sun, 15 Feb 2026 17:54:30 +0100 Subject: build: Add git hash to version string Embed git commit hash into version.h and irmd --version output using git describe. Regenerated at build time to stay current across commits. Ouroboros version MAJOR.MINOR.PATCH (TAG-COMMITS-GHASH-dirty) Example for dirty work tree (uncommitted changes): $ irmd --version Ouroboros version 0.22.0 (0.22.0-36-g86dba544-dirty) Example after commit: $ sudo irmd --version Ouroboros version 0.22.0-37-g55fa9445 Officical release (on tag): Ouroboros version 0.22.0 Signed-off-by: Dimitri Staessens Signed-off-by: Sander Vrijders --- cmake/version.cmake | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'cmake/version.cmake') diff --git a/cmake/version.cmake b/cmake/version.cmake index 00183d34..1998e874 100644 --- a/cmake/version.cmake +++ b/cmake/version.cmake @@ -3,3 +3,21 @@ set(PACKAGE_VERSION_MINOR 22) set(PACKAGE_VERSION_PATCH 0) set(PACKAGE_VERSION "${PACKAGE_VERSION_MAJOR}.${PACKAGE_VERSION_MINOR}.${PACKAGE_VERSION_PATCH}") + +include(utils/GetGitHash) +get_git_hash(${CMAKE_SOURCE_DIR} ${PACKAGE_VERSION_MAJOR} ${PACKAGE_VERSION_MINOR} ${PACKAGE_VERSION_PATCH} PACKAGE_VERSION_STRING) + +configure_file("${CMAKE_SOURCE_DIR}/include/ouroboros/version.h.in" + "${CMAKE_BINARY_DIR}/include/ouroboros/version.h" @ONLY) + +add_custom_target(version_header ALL + COMMAND ${CMAKE_COMMAND} + -DGIT_DIR=${CMAKE_SOURCE_DIR} + -DINPUT_FILE=${CMAKE_SOURCE_DIR}/include/ouroboros/version.h.in + -DOUTPUT_FILE=${CMAKE_BINARY_DIR}/include/ouroboros/version.h + -DPACKAGE_VERSION_MAJOR=${PACKAGE_VERSION_MAJOR} + -DPACKAGE_VERSION_MINOR=${PACKAGE_VERSION_MINOR} + -DPACKAGE_VERSION_PATCH=${PACKAGE_VERSION_PATCH} + -P ${CMAKE_SOURCE_DIR}/cmake/utils/GenVersionHeader.cmake + COMMENT "Updating git hash in version.h" +) -- cgit v1.2.3