From 6a881563416bf9bc5ea0384bc23adb4297defa89 Mon Sep 17 00:00:00 2001 From: Maximilian Seidler Date: Thu, 6 Feb 2025 22:08:55 +0100 Subject: [PATCH 1/2] cmake: allow passing commit and version commit --- CMakeLists.txt | 48 +++++++++++++++++++++++++++++++----------------- 1 file changed, 31 insertions(+), 17 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2412e68..7b39303 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -28,25 +28,39 @@ set(CMAKE_CXX_STANDARD 23) add_compile_options(-Wall -Wextra -Wno-unused-parameter -Wno-unused-value -Wno-missing-field-initializers -Wno-narrowing) -# get git commit -execute_process( - OUTPUT_VARIABLE GIT_SHORT_HASH - OUTPUT_STRIP_TRAILING_WHITESPACE - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} - COMMAND git rev-parse --short HEAD -) - -# get git commit of v$VERSION -execute_process( - OUTPUT_VARIABLE GIT_TAG_SHORT_HASH - OUTPUT_STRIP_TRAILING_WHITESPACE - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} - COMMAND git rev-parse --short v${VERSION} -) + + add_compile_definitions(HYPRLOCK_VERSION="${VERSION}") -add_compile_definitions(HYPRLOCK_COMMIT="${GIT_SHORT_HASH}") -add_compile_definitions(HYPRLOCK_VERSION_COMMIT="${GIT_TAG_SHORT_HASH}") + +if (DEFINED HYPRLOCK_COMMIT) + add_compile_definitions(HYPRLOCK_COMMIT="${HYPRLOCK_COMMIT}") +else() + # get git commit + execute_process( + OUTPUT_VARIABLE GIT_SHORT_HASH + OUTPUT_STRIP_TRAILING_WHITESPACE + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + COMMAND git rev-parse --short HEAD + ) + add_compile_definitions(HYPRLOCK_COMMIT="${GIT_SHORT_HASH}") +endif() + +if (DEFINED HYPRLOCK_VERSION_COMMIT) + add_compile_definitions(HYPRLOCK_VERSION_COMMIT="${HYPRLOCK_VERSION_COMMIT}") +else() + # get git commit of v$VERSION + execute_process( + OUTPUT_VARIABLE GIT_TAG_SHORT_HASH + OUTPUT_STRIP_TRAILING_WHITESPACE + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + COMMAND git rev-parse --short v${VERSION} + ) + add_compile_definitions(HYPRLOCK_VERSION_COMMIT="${GIT_TAG_SHORT_HASH}") +endif() + +message(STATUS "VERSION COMMIT: ${HYPRLOCK_VERSION_COMMIT}") +message(STATUS "COMMIT: ${HYPRLOCK_COMMIT}") # position independent build: __FILE__ add_compile_options(-fmacro-prefix-map=${CMAKE_SOURCE_DIR}/=) From 177524be96bfbf10f822bb4611af43448cacdc80 Mon Sep 17 00:00:00 2001 From: Maximilian Seidler Date: Thu, 6 Feb 2025 22:08:55 +0100 Subject: [PATCH 2/2] nix: don't set HYPRLOCK_VERSION_COMMIT That makes it so `--version` always prints the short commit hash, instead of not printing it. --- nix/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nix/default.nix b/nix/default.nix index 670fed4..ce727e2 100644 --- a/nix/default.nix +++ b/nix/default.nix @@ -60,7 +60,7 @@ stdenv.mkDerivation { cmakeFlags = lib.mapAttrsToList lib.cmakeFeature { HYPRLOCK_COMMIT = shortRev; - HYPRLOCK_VERSION_COMMIT = shortRev; + HYPRLOCK_VERSION_COMMIT = ""; # Intentionally left empty (hyprlock --version will always print the commit) }; meta = {