From eeded812f727e6b49e5b1049640a4a29a02d0d46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Valverde?= Date: Thu, 21 Apr 2016 00:39:22 +0100 Subject: [PATCH] Add option to disable version.h MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit If the file '.git/wireshark-disable-versioning' exists then version.h will be commented out. Change-Id: If481b673463408a69c2ecf7c2e66d08c5855537f Reviewed-on: https://code.wireshark.org/review/14932 Reviewed-by: Alexis La Goutte Petri-Dish: Alexis La Goutte Tested-by: Petri Dish Buildbot Reviewed-by: João Valverde --- doc/README.developer | 10 ++++++++++ make-version.pl | 23 +++++++++++++++++++++-- 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/doc/README.developer b/doc/README.developer index 4d85df71a8..45868e5208 100644 --- a/doc/README.developer +++ b/doc/README.developer @@ -708,6 +708,16 @@ to avoid warnings at all. The compiler flags in the Makefiles are set to "treat warnings as errors", so your code won't even compile when warnings occur. +7. Miscellaneous notes + +Each commit in your branch corresponds to a different VCSVERSION string +automatically defined in the header 'version.h' during the build. If you happen +to find it convenient to disable this feature it can be done using: + + touch .git/wireshark-disable-versioning + +i.e., the file 'wireshark-disable-versioning' must exist in the git repo dir. + /* * Editor modelines - https://www.wireshark.org/tools/modelines.html * diff --git a/make-version.pl b/make-version.pl index aefe7908f7..fc1cb5709c 100755 --- a/make-version.pl +++ b/make-version.pl @@ -105,6 +105,7 @@ my %version_pref = ( my $srcdir = "."; my $info_cmd = ""; my $verbose = 0; +my $devnull = File::Spec->devnull(); # Ensure we run with correct locale $ENV{LANG} = "C"; @@ -125,7 +126,6 @@ sub read_repo_info { my $repo_version; my $do_hack = 1; my $info_source = "Unknown"; - my $devnull = File::Spec->devnull(); # Make sure git is available. if (!`$git_executable --version`) { @@ -636,6 +636,13 @@ sub update_versioned_files sub new_version_h { my $VCS_REVISION; + my $set_header = shift @_; + + if (!$set_header) { + $VCS_REVISION = "/* #undef VCSVERSION */\n"; + $VCS_REVISION .= "/* #undef VCSBRANCH */\n"; + return $VCS_REVISION; + } if ($git_description) { $VCS_REVISION = "#define VCSVERSION \"" . @@ -658,8 +665,18 @@ sub new_version_h # Don't change the file if it is not needed. sub print_VCS_REVISION { - my $VCS_REVISION = new_version_h(); + my $VCS_REVISION; my $needs_update = 1; + my $set_header = 1; + my $git_cdir; + + chomp($git_cdir = qx{git --git-dir="$srcdir/.git" rev-parse --git-common-dir 2> $devnull}); + if ($git_cdir && -f "$git_cdir/wireshark-disable-versioning") { + print_diag "Header versioning disabled using git override.\n"; + $set_header = 0; + } + + $VCS_REVISION = new_version_h($set_header); if (open(OLDREV, "<$version_file")) { my $old_VCS_REVISION = . ; if ($old_VCS_REVISION eq $VCS_REVISION) { @@ -676,6 +693,8 @@ sub print_VCS_REVISION print VER "$VCS_REVISION"; close VER; print "$version_file has been updated.\n"; + } elsif (!$set_header) { + print "$version_file disabled.\n"; } else { print "$version_file unchanged.\n"; }