aboutsummaryrefslogtreecommitdiff
path: root/src/tools/msvc/Project.pm
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/msvc/Project.pm')
-rw-r--r--src/tools/msvc/Project.pm25
1 files changed, 19 insertions, 6 deletions
diff --git a/src/tools/msvc/Project.pm b/src/tools/msvc/Project.pm
index 05435c40595..47ec46fbde1 100644
--- a/src/tools/msvc/Project.pm
+++ b/src/tools/msvc/Project.pm
@@ -18,7 +18,8 @@ sub new {
guid => Win32::GuidGen(),
files => {},
references => [],
- libraries => '',
+ libraries => [],
+ suffixlib => [],
includes => '',
defines => ';',
solution => $solution,
@@ -86,12 +87,12 @@ sub AddReference {
}
sub AddLibrary {
- my ($self, $lib) = @_;
+ my ($self, $lib, $dbgsuffix) = @_;
- if ($self->{libraries} ne '') {
- $self->{libraries} .= ' ';
+ push @{$self->{libraries}}, $lib;
+ if ($dbgsuffix) {
+ push @{$self->{suffixlib}}, $lib;
}
- $self->{libraries} .= $lib;
}
sub AddIncludeDir {
@@ -351,7 +352,19 @@ sub WriteConfiguration
{
my ($self, $f, $cfgname, $p) = @_;
my $cfgtype = ($self->{type} eq "exe")?1:($self->{type} eq "dll"?2:4);
- my $libs = $self->{libraries};
+ my $libcfg = (uc $cfgname eq "RELEASE")?"MD":"MDd";
+ my $libs = '';
+ foreach my $lib (@{$self->{libraries}}) {
+ my $xlib = $lib;
+ foreach my $slib (@{$self->{suffixlib}}) {
+ if ($slib eq $lib) {
+ $xlib =~ s/\.lib$/$libcfg.lib/;
+ last;
+ }
+ }
+ $libs .= $xlib . " ";
+ }
+ $libs =~ s/ $//;
$libs =~ s/__CFGNAME__/$cfgname/g;
print $f <<EOF;
<Configuration Name="$cfgname|Win32" OutputDirectory=".\\$cfgname\\$self->{name}" IntermediateDirectory=".\\$cfgname\\$self->{name}"