diff options
author | Noah Misch | 2014-08-19 02:59:53 +0000 |
---|---|---|
committer | Noah Misch | 2014-08-19 02:59:53 +0000 |
commit | ee9569e4df1c3bdb6858f4f65d0770783c32a84d (patch) | |
tree | 4abc544d89e41c6bccbc01eb578919411fcd1461 /src/tools/msvc/Project.pm | |
parent | fb2aece8ae4e6f23310d7c87c7da3fec6f5df3a1 (diff) |
Finish adding file version information to installed Windows binaries.
In support of this, have the MSVC build follow GNU make in preferring
GNUmakefile over Makefile when a directory contains both.
Michael Paquier, reviewed by MauMau.
Diffstat (limited to 'src/tools/msvc/Project.pm')
-rw-r--r-- | src/tools/msvc/Project.pm | 38 |
1 files changed, 27 insertions, 11 deletions
diff --git a/src/tools/msvc/Project.pm b/src/tools/msvc/Project.pm index f343b2b9b8c..b9b5a239d8a 100644 --- a/src/tools/msvc/Project.pm +++ b/src/tools/msvc/Project.pm @@ -183,15 +183,7 @@ sub UseDef sub AddDir { my ($self, $reldir) = @_; - my $MF; - - my $t = $/; - undef $/; - open($MF, "$reldir\\Makefile") - || open($MF, "$reldir\\GNUMakefile") - || croak "Could not open $reldir\\Makefile\n"; - my $mf = <$MF>; - close($MF); + my $mf = read_makefile($reldir); $mf =~ s{\\\r?\n}{}g; if ($mf =~ m{^(?:SUB)?DIRS[^=]*=\s*(.*)$}mg) @@ -292,7 +284,15 @@ sub AddDir $mf =~ s{$replace_re}{}m; } - # See if this Makefile contains a description, and should have a RC file + $self->AddDirResourceFile($reldir); +} + +# If the directory's Makefile bears a description string, add a resource file. +sub AddDirResourceFile +{ + my ($self, $reldir) = @_; + my $mf = read_makefile($reldir); + if ($mf =~ /^PGFILEDESC\s*=\s*\"([^\"]+)\"/m) { my $desc = $1; @@ -300,7 +300,6 @@ sub AddDir if ($mf =~ /^PGAPPICON\s*=\s*(.*)$/m) { $ico = $1; } $self->AddResourceFile($reldir, $desc, $ico); } - $/ = $t; } sub AddResourceFile @@ -409,4 +408,21 @@ sub read_file return $txt; } +sub read_makefile +{ + my $reldir = shift; + my $F; + my $t = $/; + + undef $/; + open($F, "$reldir\\GNUmakefile") + || open($F, "$reldir\\Makefile") + || croak "Could not open $reldir\\Makefile\n"; + my $txt = <$F>; + close($F); + $/ = $t; + + return $txt; +} + 1; |