diff mbox series

[FFmpeg-devel] configure: Add a --disable-version-tracking option

Message ID 20231215125219.85897-1-martin@martin.st
State Accepted
Commit 1e42a48e37228c679d3ab0764e53ffab62256ce8
Headers show
Series [FFmpeg-devel] configure: Add a --disable-version-tracking option | expand

Checks

Context Check Description
yinshiyou/make_loongarch64 success Make finished
yinshiyou/make_fate_loongarch64 success Make fate finished
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished

Commit Message

Martin Storsjö Dec. 15, 2023, 12:52 p.m. UTC
This disables regenerating ffversion.h whenever the checked out
git commit changes, speeding up development rebuilds.

Whenever this option is set, force the version to be printed as
"unknown" rather than showing potentially stale information.
---
 Makefile  | 7 ++++++-
 configure | 4 ++++
 2 files changed, 10 insertions(+), 1 deletion(-)

Comments

Martin Storsjö Dec. 20, 2023, 8:12 a.m. UTC | #1
On Fri, 15 Dec 2023, Martin Storsjö wrote:

> This disables regenerating ffversion.h whenever the checked out
> git commit changes, speeding up development rebuilds.
>
> Whenever this option is set, force the version to be printed as
> "unknown" rather than showing potentially stale information.
> ---
> Makefile  | 7 ++++++-
> configure | 4 ++++
> 2 files changed, 10 insertions(+), 1 deletion(-)

Any comments on the name here, or does this seem fine? Otherwise I'd go 
ahead with this in a day or two if there's no opposition to it.

// Martin
Anton Khirnov Dec. 20, 2023, 9:46 a.m. UTC | #2
Quoting Martin Storsjö (2023-12-20 09:12:21)
> On Fri, 15 Dec 2023, Martin Storsjö wrote:
> 
> > This disables regenerating ffversion.h whenever the checked out
> > git commit changes, speeding up development rebuilds.
> >
> > Whenever this option is set, force the version to be printed as
> > "unknown" rather than showing potentially stale information.
> > ---
> > Makefile  | 7 ++++++-
> > configure | 4 ++++
> > 2 files changed, 10 insertions(+), 1 deletion(-)
> 
> Any comments on the name here, or does this seem fine? Otherwise I'd go 
> ahead with this in a day or two if there's no opposition to it.

I am fine with the name and the general idea.
diff mbox series

Patch

diff --git a/Makefile b/Makefile
index 2fc3e538c1..dbc930270b 100644
--- a/Makefile
+++ b/Makefile
@@ -133,13 +133,18 @@  endif
 	$(LD) $(LDFLAGS) $(LDEXEFLAGS) $(LD_O) $(OBJS-$*) $(FF_EXTRALIBS)
 
 VERSION_SH  = $(SRC_PATH)/ffbuild/version.sh
+ifeq ($(VERSION_TRACKING),yes)
 GIT_LOG     = $(SRC_PATH)/.git/logs/HEAD
+endif
 
 .version: $(wildcard $(GIT_LOG)) $(VERSION_SH) ffbuild/config.mak
 .version: M=@
 
+ifneq ($(VERSION_TRACKING),yes)
+libavutil/ffversion.h .version: REVISION=unknown
+endif
 libavutil/ffversion.h .version:
-	$(M)$(VERSION_SH) $(SRC_PATH) libavutil/ffversion.h $(EXTRA_VERSION)
+	$(M)revision=$(REVISION) $(VERSION_SH) $(SRC_PATH) libavutil/ffversion.h $(EXTRA_VERSION)
 	$(Q)touch .version
 
 # force version.sh to run whenever version might have changed
diff --git a/configure b/configure
index 7d2ee66000..9911428213 100755
--- a/configure
+++ b/configure
@@ -504,6 +504,7 @@  Developer options (useful when working on FFmpeg itself):
   --enable-macos-kperf     enable macOS kperf (private) API
   --disable-large-tests    disable tests that use a large amount of memory
   --disable-ptx-compression don't compress CUDA PTX code even when possible
+  --disable-version-tracking don't include the git/release version in the build
 
 NOTE: Object files are built at the place where configure is launched.
 EOF
@@ -2576,6 +2577,7 @@  CMDLINE_SELECT="
     optimizations
     rpath
     stripping
+    version_tracking
 "
 
 PATHS_LIST="
@@ -3980,6 +3982,7 @@  enable $DOCUMENT_LIST
 enable $EXAMPLE_LIST
 enable $LIBRARY_LIST
 enable stripping
+enable version_tracking
 
 enable asm
 enable debug
@@ -8013,6 +8016,7 @@  SAMPLES:=${samples:-\$(FATE_SAMPLES)}
 NOREDZONE_FLAGS=$noredzone_flags
 LIBFUZZER_PATH=$libfuzzer_path
 IGNORE_TESTS=$ignore_tests
+VERSION_TRACKING=$version_tracking
 EOF
 
 map 'eval echo "${v}_FFLIBS=\$${v}_deps" >> ffbuild/config.mak' $LIBRARY_LIST