openwrt-packages/net/vallumd/patches/001-CMake-skip-git-magic-if...

79 lines
3.1 KiB
Diff

From b70137d0cc62be7f43816a3ba33b7c3e6a2fbd4e Mon Sep 17 00:00:00 2001
From: Stijn Tintel <stijn@linux-ipv6.be>
Date: Fri, 18 Nov 2022 09:19:02 +0200
Subject: [PATCH] CMake: skip git magic if no .git dir exists
The checks to fail CMake if git describe isn't working break build when
building from source tarballs.
Test if there is a git directory, and completely skip the git magic if
not.
Fixes: f42e7beec46e ("CI: add explicit clone to fetch tags")
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
---
CMakeLists.txt | 51 +++++++++++++++++++++++++-------------------------
1 file changed, 26 insertions(+), 25 deletions(-)
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -9,35 +9,36 @@ set (VERSION_MAJOR 0)
set (VERSION_MINOR 2)
set (VERSION_PATCH 2)
-execute_process(COMMAND git describe --tags --dirty
- OUTPUT_VARIABLE GIT_DESCRIBE
- OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET)
-execute_process(COMMAND git describe --abbrev=0
- OUTPUT_VARIABLE GIT_LAST_TAG
- OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET)
+if (EXISTS .git/)
+ execute_process(COMMAND git describe --tags --dirty
+ OUTPUT_VARIABLE GIT_DESCRIBE
+ OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET)
+ execute_process(COMMAND git describe --abbrev=0
+ OUTPUT_VARIABLE GIT_LAST_TAG
+ OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET)
-string(LENGTH "${GIT_DESCRIBE}" GIT_DESCRIBE_LEN)
-string(LENGTH "${GIT_LAST_TAG}" GIT_LAST_TAG_LEN)
+ string(LENGTH "${GIT_DESCRIBE}" GIT_DESCRIBE_LEN)
+ string(LENGTH "${GIT_LAST_TAG}" GIT_LAST_TAG_LEN)
-if (GIT_DESCRIBE_LEN EQUAL 0 OR GIT_LAST_TAG_LEN EQUAL 0)
- message(FATAL_ERROR "git describe output empty")
-endif ()
+ if (GIT_DESCRIBE_LEN EQUAL 0 OR GIT_LAST_TAG_LEN EQUAL 0)
+ message(FATAL_ERROR "git describe output empty")
+ endif ()
-string(REGEX REPLACE "^${GIT_LAST_TAG}-" "" GIT_DESCRIBE_NOTAG "${GIT_DESCRIBE}")
+ string(REGEX REPLACE "^${GIT_LAST_TAG}-" "" GIT_DESCRIBE_NOTAG "${GIT_DESCRIBE}")
-if (NOT "${GIT_DESCRIBE}" STREQUAL "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}")
- if ("${GIT_LAST_TAG}" VERSION_LESS
- "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}")
- string(REGEX REPLACE "^${GIT_LAST_TAG}-"
- "" VERSION_TWEAK "0-pre-${GIT_DESCRIBE_NOTAG}")
- else ()
- string(REGEX REPLACE
- "^${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}-"
- "" VERSION_TWEAK "${GIT_DESCRIBE}")
+ if (NOT "${GIT_DESCRIBE}" STREQUAL "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}")
+ if ("${GIT_LAST_TAG}" VERSION_LESS
+ "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}")
+ string(REGEX REPLACE "^${GIT_LAST_TAG}-"
+ "" VERSION_TWEAK "0-pre-${GIT_DESCRIBE_NOTAG}")
+ else ()
+ string(REGEX REPLACE
+ "^${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}-"
+ "" VERSION_TWEAK "${GIT_DESCRIBE}")
+ endif ()
endif ()
endif ()
-
configure_file (
"${PROJECT_SOURCE_DIR}/src/config.h.in"
"${PROJECT_BINARY_DIR}/config.h"