Skip to content

Commit ffbd82b

Browse files
committed
Fix version for Arch
1 parent 6fe4663 commit ffbd82b

3 files changed

Lines changed: 41 additions & 20 deletions

File tree

build.cmake

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -55,17 +55,21 @@ function(build_compilation_setup target)
5555
endfunction()
5656

5757
function(build_version_definition target definition)
58-
# Get version from debian/changelog
59-
execute_process(
60-
COMMAND dpkg-parsechangelog -SVersion
61-
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
62-
OUTPUT_VARIABLE pkg_version
63-
OUTPUT_STRIP_TRAILING_WHITESPACE
64-
RESULT_VARIABLE dpkg_result
65-
)
66-
if((NOT dpkg_result EQUAL 0) OR (pkg_version STREQUAL ""))
67-
message(WARNING "Failed to get version from debian/changelog using dpkg-parsechangelog")
68-
set(pkg_version "${PROJECT_VERSION}")
58+
if(DEFINED PROJECT_VERSION_OVERRIDE AND NOT "${PROJECT_VERSION_OVERRIDE}" STREQUAL "")
59+
set(pkg_version "${PROJECT_VERSION_OVERRIDE}")
60+
else()
61+
# Get version from debian/changelog
62+
execute_process(
63+
COMMAND dpkg-parsechangelog -SVersion
64+
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
65+
OUTPUT_VARIABLE pkg_version
66+
OUTPUT_STRIP_TRAILING_WHITESPACE
67+
RESULT_VARIABLE dpkg_result
68+
)
69+
if((NOT dpkg_result EQUAL 0) OR (pkg_version STREQUAL ""))
70+
message(WARNING "Failed to get version from debian/changelog using dpkg-parsechangelog")
71+
set(pkg_version "${PROJECT_VERSION}")
72+
endif()
6973
endif()
7074
if(pkg_version STREQUAL "")
7175
message(FATAL_ERROR "Cannot add ${definition} compile definition: PROJECT_VERSION empty")

build.sh

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,17 +25,12 @@ if [ "$ARCH_BUILD" = true ]; then
2525
exit 1
2626
fi
2727

28-
if [ ! -f debian/changelog ]; then
29-
echo "Error: debian/changelog not found; cannot determine version for Arch build."
30-
exit 1
31-
fi
32-
33-
ARCH_VERSION=$(sed -n '1{s/^[^(]*(\([^)]*\)).*/\1/p}' debian/changelog)
28+
ARCH_VERSION=$(git describe --tags --abbrev=0 2>/dev/null)
3429
if [ -z "$ARCH_VERSION" ]; then
35-
echo "Error: could not parse version from debian/changelog."
30+
echo "Error: no git tags found; cannot determine version for Arch build."
3631
exit 1
3732
fi
38-
echo "Using version ${ARCH_VERSION} from debian/changelog"
33+
echo "Using version ${ARCH_VERSION} from latest git tag"
3934

4035
ARCH_BUILDDIR=$(mktemp -d -p "$PWD" archpkgbuild.XXXXXX)
4136
trap 'rm -rf "$ARCH_BUILDDIR"' EXIT

release.sh

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -297,10 +297,32 @@ main() {
297297
print_error "Usage: $0 <version> [--update|--force]"
298298
echo "Example: $0 1.0.0 or $0 v1.0.0"
299299
echo " $0 26.01 --update"
300+
echo " $0 --update (uses latest git tag as version)"
300301
exit 1
301302
fi
302303

303-
version=$1
304+
# Check if first arg is a flag (no version provided)
305+
if [[ "$1" == --* ]]; then
306+
version=$(git describe --tags --abbrev=0 2>/dev/null)
307+
if [ -z "$version" ]; then
308+
print_error "No git tags found; cannot determine version"
309+
exit 1
310+
fi
311+
print_step "Using version from latest git tag: $version"
312+
case "$1" in
313+
--update|--force)
314+
mode="update"
315+
FORCE_UPDATE=1
316+
;;
317+
*)
318+
print_error "Unknown option: $1"
319+
exit 1
320+
;;
321+
esac
322+
else
323+
version=$1
324+
fi
325+
304326
if [ $# -gt 1 ]; then
305327
case "$2" in
306328
--update|--force)

0 commit comments

Comments
 (0)