File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -55,17 +55,21 @@ function(build_compilation_setup target)
5555endfunction ()
5656
5757function (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" )
Original file line number Diff line number Diff 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
Original file line number Diff line number Diff 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)
You can’t perform that action at this time.
0 commit comments