aboutsummaryrefslogtreecommitdiffstats
path: root/make-version.pl
diff options
context:
space:
mode:
authorChristian Tellefsen <chris-git@tellefsen.net>2016-01-06 22:20:10 +0100
committerAlexis La Goutte <alexis.lagoutte@gmail.com>2016-01-27 09:28:13 +0000
commitadb731c1cd69855b1655a0f23001655392a07340 (patch)
treecf8851dcf2f4737b72304b769bcfbe6f543af3e2 /make-version.pl
parent884795e60f31f0442f6afb2a4cae5a30bc128e27 (diff)
Allow make-version.pl to use git when missing from path
This change allows make-version.pl to run correctly on Windows without having the git binary dir in PATH. This prevents problems when installing "Git for Windows" with default settings (git only available via the bundled shell (bash). Details: * Add Git to the list of packages to be looked up by CMake. * If Git is found by CMake, pass the full path to make-version.pl * make-version.pl: Test whether git is available, and display a warning if git is missing. On Unix-type systems this should have no impact. Tested on Windows Server 2012 R2 and Ubuntu 15.04. Change-Id: I7f7be2035c262658801586cb24c82b912848e31d Reviewed-on: https://code.wireshark.org/review/13111 Reviewed-by: Graham Bloice <graham.bloice@trihedral.com> Petri-Dish: Graham Bloice <graham.bloice@trihedral.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Diffstat (limited to 'make-version.pl')
-rwxr-xr-xmake-version.pl22
1 files changed, 15 insertions, 7 deletions
diff --git a/make-version.pl b/make-version.pl
index 62312e6c78..a3643ddef8 100755
--- a/make-version.pl
+++ b/make-version.pl
@@ -74,6 +74,7 @@ my $last_change = 0;
my $num_commits = 0;
my $commit_id = '';
my $repo_branch = "unknown";
+my $git_executable = "git";
my $git_description = undef;
my $get_vcs = 0;
my $set_vcs = 0;
@@ -119,6 +120,12 @@ sub read_repo_info {
my $do_hack = 1;
my $info_source = "Unknown";
+ # Make sure git is available.
+ if (!`$git_executable --version`) {
+ print STDERR "Git unavailable. Git revision will be missing from version string.\n";
+ return;
+ }
+
if ($version_pref{"pkg_enable"} > 0) {
$package_format = $version_pref{"pkg_format"};
}
@@ -132,7 +139,7 @@ sub read_repo_info {
$version_pref{"svn_client"} = 1;
} elsif (-d "$srcdir/.git/svn") {
$info_source = "Command line (git-svn)";
- $info_cmd = "(cd $srcdir; git svn info)";
+ $info_cmd = "(cd $srcdir; $git_executable svn info)";
}
#Git can give us:
@@ -163,13 +170,13 @@ sub read_repo_info {
use warnings "all";
no warnings "all";
- chomp($line = qx{git --git-dir="$srcdir"/.git log -1 --pretty=format:%at});
+ chomp($line = qx{$git_executable --git-dir="$srcdir"/.git log -1 --pretty=format:%at});
if ($? == 0 && length($line) > 1) {
$last_change = $line;
}
# Commits since last annotated tag.
- chomp($line = qx{git --git-dir="$srcdir"/.git describe --long --always --match "v*"});
+ chomp($line = qx{$git_executable --git-dir="$srcdir"/.git describe --long --always --match "v*"});
if ($? == 0 && length($line) > 1) {
my @parts = split(/-/, $line);
$git_description = $line;
@@ -179,7 +186,7 @@ sub read_repo_info {
# This will break in some cases. Hopefully not during
# official package builds.
- chomp($line = qx{git --git-dir="$srcdir"/.git rev-parse --abbrev-ref --symbolic-full-name \@\{upstream\}});
+ chomp($line = qx{$git_executable --git-dir="$srcdir"/.git rev-parse --abbrev-ref --symbolic-full-name \@\{upstream\}});
if ($? == 0 && length($line) > 1) {
$repo_branch = basename($line);
}
@@ -264,21 +271,21 @@ sub read_repo_info {
# If someone had properly tagged 1.9.0 we could also use
# "git describe --abbrev=1 --tags HEAD"
- $info_cmd = "(cd $srcdir; git log --format='%b' -n 1)";
+ $info_cmd = "(cd $srcdir; $git_executable log --format='%b' -n 1)";
$line = qx{$info_cmd};
if (defined($line)) {
if ($line =~ /svn path=.*; revision=(\d+)/) {
$num_commits = $1;
}
}
- $info_cmd = "(cd $srcdir; git log --format='%ad' -n 1 --date=iso)";
+ $info_cmd = "(cd $srcdir; $git_executable log --format='%ad' -n 1 --date=iso)";
$line = qx{$info_cmd};
if (defined($line)) {
if ($line =~ /(\d{4})-(\d\d)-(\d\d) (\d\d):(\d\d):(\d\d)/) {
$last_change = timegm($6, $5, $4, $3, $2 - 1, $1);
}
}
- $info_cmd = "(cd $srcdir; git branch)";
+ $info_cmd = "(cd $srcdir; $git_executable branch)";
$line = qx{$info_cmd};
if (defined($line)) {
if ($line =~ /\* (\S+)/) {
@@ -684,6 +691,7 @@ sub get_config {
"help|h", \$show_help,
"get-vcs|get-svn|g", \$get_vcs,
"set-vcs|set-svn|s", \$set_vcs,
+ "git-bin", \$git_executable,
"print-vcs", \$print_vcs,
"set-version|v", \$set_version,
"set-release|r|package-version|p", \$set_release