From cb53a34ff145f2785b5749bdf9e699b228b937dc Mon Sep 17 00:00:00 2001 From: Hans Ulrich Niedermann Date: Tue, 8 Oct 2024 21:21:00 +0200 Subject: [PATCH] Add extra version information to avrdude output Some downstream projects build avrdude and want to add their own version information to the avrdude version to distinguish their builds from others. This adds a clean way to do that without needing to patch the avrdude sources, for both cmake and automake based builds: cmake -DEXTRA_VERSION:STRING=-arduino.1-rc1 ../configure EXTRA_VERSION=-arduino.1-rc1 After building avrdude, the last line of "avrdude -?" will now look similar to the following, depending on whether you are building an avrdude git checkout or an avrdude release tarball: avrdude version 8.0-20240901-arduino.1-rc1 (30e19f23), https://github.com/avrdudes/avrdude avrdude version 8.1-arduino.1-rc1 (30e19f23), https://github.com/avrdudes/avrdude --- CMakeLists.txt | 5 +++-- src/configure.ac | 6 ++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 67e384935..6d034a6e0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -49,7 +49,7 @@ include(FindPackageMessage) include(GNUInstallDirs) set(CONFIG_DIR "${CMAKE_INSTALL_FULL_SYSCONFDIR}") -set(AVRDUDE_FULL_VERSION ${CMAKE_PROJECT_VERSION}) +set(AVRDUDE_FULL_VERSION "${CMAKE_PROJECT_VERSION}${EXTRA_VERSION_SUFFIX}") # ===================================== # Get Git commit info @@ -91,7 +91,7 @@ if(Git_FOUND) # If the commit is not tagged, include the date and commit hash in the full version string. if(NOT GIT_COMMIT_HASH STREQUAL GIT_TAG_HASH) - set(AVRDUDE_FULL_VERSION "${CMAKE_PROJECT_VERSION}-${GIT_COMMIT_DATE} (${GIT_COMMIT_HASH})") + set(AVRDUDE_FULL_VERSION "${CMAKE_PROJECT_VERSION}-${GIT_COMMIT_DATE}${EXTRA_VERSION_SUFFIX} (${GIT_COMMIT_HASH})") endif() endif() @@ -373,6 +373,7 @@ if (DEBUG_CMAKE) message(STATUS "CMAKE_FIND_ROOT_PATH: ${CMAKE_FIND_ROOT_PATH}") message(STATUS "CMAKE_C_COMPILER: ${CMAKE_C_COMPILER}") message(STATUS "CONFIG_DIR: ${CONFIG_DIR}") + message(STATUS "EXTRA_VERSION_SUFFIX: ${EXTRA_VERSION_SUFFIX}") message(STATUS "AVRDUDE_FULL_VERSION: ${AVRDUDE_FULL_VERSION}") message(STATUS "USE_EXTERNAL_LIBS: ${USE_EXTERNAL_LIBS}") message(STATUS "USE_LIBUSBWIN32: ${USE_LIBUSBWIN32}") diff --git a/src/configure.ac b/src/configure.ac index 91f6a4459..060564487 100644 --- a/src/configure.ac +++ b/src/configure.ac @@ -80,11 +80,13 @@ AC_MSG_RESULT([$PACKAGE_VERSION]) dnl Compose the full version message mirroring the cmake one, inform dnl about it and pass it on to avrdude.conf and the "avrdude -?" dnl version message +AC_ARG_VAR([EXTRA_VERSION_SUFFIX], + [extra version information to be appended to the version]) AC_MSG_CHECKING([versioninfo derived AVRDUDE_FULL_VERSION]) if test "x$GIT_COMMIT_HASH" = "x$GIT_TAG_HASH"; then - AVRDUDE_FULL_VERSION="$PACKAGE_VERSION" + AVRDUDE_FULL_VERSION="$PACKAGE_VERSION$EXTRA_VERSION_SUFFIX" else - AVRDUDE_FULL_VERSION="$PACKAGE_VERSION ($GIT_COMMIT_HASH)" + AVRDUDE_FULL_VERSION="$PACKAGE_VERSION$EXTRA_VERSION_SUFFIX ($GIT_COMMIT_HASH)" fi AC_MSG_RESULT([$AVRDUDE_FULL_VERSION]) AC_DEFINE_UNQUOTED([AVRDUDE_FULL_VERSION], ["$AVRDUDE_FULL_VERSION"],