v9-0003-Make-the-includes-field-an-array-in-MSVC-build-sc.patch
application/octet-stream
Filename: v9-0003-Make-the-includes-field-an-array-in-MSVC-build-sc.patch
Type: application/octet-stream
Part: 2
Patch
Format: format-patch
Series: patch v9-0003
Subject: Make the includes field an array in MSVC build scripts
| File | + | − |
|---|---|---|
| src/tools/msvc/Mkvcbuild.pm | 9 | 2 |
| src/tools/msvc/MSBuildProject.pm | 2 | 5 |
| src/tools/msvc/Project.pm | 7 | 5 |
From d5eae4bca8214f40238c84a95bfc96f4925bd970 Mon Sep 17 00:00:00 2001
From: David Rowley <dgrowley@gmail.com>
Date: Tue, 27 Jul 2021 22:21:08 +1200
Subject: [PATCH v9 3/6] Make the includes field an array in MSVC build scripts
Previously the 'includes' field was a string. It's slightly nicer to
manage this when it's defined as an array instead.
---
src/tools/msvc/MSBuildProject.pm | 7 ++-----
src/tools/msvc/Mkvcbuild.pm | 11 +++++++++--
src/tools/msvc/Project.pm | 12 +++++++-----
3 files changed, 18 insertions(+), 12 deletions(-)
diff --git a/src/tools/msvc/MSBuildProject.pm b/src/tools/msvc/MSBuildProject.pm
index ebe6530ba5..fdd22e89eb 100644
--- a/src/tools/msvc/MSBuildProject.pm
+++ b/src/tools/msvc/MSBuildProject.pm
@@ -313,11 +313,8 @@ sub WriteItemDefinitionGroup
my $targetmachine =
$self->{platform} eq 'Win32' ? 'MachineX86' : 'MachineX64';
- my $includes = $self->{includes};
- unless ($includes eq '' or $includes =~ /;$/)
- {
- $includes .= ';';
- }
+ my $includes = join ';', @{$self->{includes}}, "";
+
print $f <<EOF;
<ItemDefinitionGroup Condition="'\$(Configuration)|\$(Platform)'=='$cfgname|$self->{platform}'">
<ClCompile>
diff --git a/src/tools/msvc/Mkvcbuild.pm b/src/tools/msvc/Mkvcbuild.pm
index dbe2b4c5ac..f344ac661e 100644
--- a/src/tools/msvc/Mkvcbuild.pm
+++ b/src/tools/msvc/Mkvcbuild.pm
@@ -937,7 +937,11 @@ sub AddTransformModule
# Add PL dependencies
$p->AddIncludeDir($pl_src);
$p->AddReference($pl_proj);
- $p->AddIncludeDir($pl_proj->{includes});
+ foreach my $inc (@{ $pl_proj->{includes} })
+ {
+ $p->AddIncludeDir($inc);
+ }
+
foreach my $pl_lib (@{ $pl_proj->{libraries} })
{
$p->AddLibrary($pl_lib);
@@ -947,7 +951,10 @@ sub AddTransformModule
if ($type_proj)
{
$p->AddIncludeDir($type_src);
- $p->AddIncludeDir($type_proj->{includes});
+ foreach my $inc (@{ $type_proj->{includes} })
+ {
+ $p->AddIncludeDir($inc);
+ }
foreach my $type_lib (@{ $type_proj->{libraries} })
{
$p->AddLibrary($type_lib);
diff --git a/src/tools/msvc/Project.pm b/src/tools/msvc/Project.pm
index 2f1679ab44..e8095dbd0e 100644
--- a/src/tools/msvc/Project.pm
+++ b/src/tools/msvc/Project.pm
@@ -30,7 +30,7 @@ sub _new
references => [],
libraries => [],
suffixlib => [],
- includes => '',
+ includes => [],
prefixincludes => '',
defines => ';',
solution => $solution,
@@ -151,13 +151,15 @@ sub AddLibrary
sub AddIncludeDir
{
- my ($self, $inc) = @_;
+ my ($self, $incstr) = @_;
- if ($self->{includes} ne '')
+ foreach my $inc (split(/;/, $incstr))
{
- $self->{includes} .= ';';
+ if (! grep { $_ eq $inc} @{ $self->{includes} })
+ {
+ push @{ $self->{includes} }, $inc;
+ }
}
- $self->{includes} .= $inc;
return;
}
--
2.21.0.windows.1