diff --git a/CMakeLists.txt b/CMakeLists.txt index 26fd7f301..0ae9481ee 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,9 +5,17 @@ project(fastfetch LANGUAGES C ) -#e.g. +1 -#This allows to track builds between versions, without GitHub creating a new release -set(PROJECT_VERSION_EXTRA "+3") +# Track commits between version bumps for output in --version +# Ignored by --version-raw and github actions +if (EXISTS "${CMAKE_SOURCE_DIR}/.git") + execute_process( + COMMAND git describe --tags + WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" + OUTPUT_VARIABLE PROJECT_VERSION_TWEAK + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + string(REGEX MATCH "-[0-9]+" PROJECT_VERSION_TWEAK "${PROJECT_VERSION_TWEAK}") +endif() include(GNUInstallDirs) diff --git a/src/fastfetch.c b/src/fastfetch.c index 85cee00fb..78cde1fbb 100644 --- a/src/fastfetch.c +++ b/src/fastfetch.c @@ -617,7 +617,7 @@ static void parseOption(FFinstance* instance, FFdata* data, const char* key, con } else if(strcasecmp(key, "-v") == 0 || strcasecmp(key, "--version") == 0) { - puts("fastfetch "FASTFETCH_PROJECT_VERSION""FASTFETCH_PROJECT_VERSION_EXTRA); + puts("fastfetch "FASTFETCH_PROJECT_VERSION""FASTFETCH_PROJECT_VERSION_TWEAK); exit(0); } else if(strcasecmp(key, "--version-raw") == 0) diff --git a/src/fastfetch_config.h.in b/src/fastfetch_config.h.in index 3453cc4ec..71aae7ac4 100644 --- a/src/fastfetch_config.h.in +++ b/src/fastfetch_config.h.in @@ -4,7 +4,7 @@ #define FASTFETCH_PROJECT_NAME "@PROJECT_NAME@" #define FASTFETCH_PROJECT_VERSION "@PROJECT_VERSION@" #define FASTFETCH_PROJECT_VERSION_MAJOR @PROJECT_VERSION_MAJOR@ -#define FASTFETCH_PROJECT_VERSION_EXTRA "@PROJECT_VERSION_EXTRA@" +#define FASTFETCH_PROJECT_VERSION_TWEAK "@PROJECT_VERSION_TWEAK@" #define FASTFETCH_DATATEXT_STRUCTURE "@DATATEXT_STRUCTURE@" #define FASTFETCH_DATATEXT_CONFIG "@DATATEXT_CONFIG@" //Requires FASTFETCH_PROJECT_VERSION and FASTFETCH_DATATEXT_STRUCTURE to be set