util/postprocess-makedepend.pl: For VC, don't include system headers
All dependencies that VC gives us are absolute paths, so we need to check if some of them are within our source or build tree. We do that by comparing the start of each dependency with the absolute versions of our source and build directories. Reviewed-by: Andy Polyakov <appro@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5591)
This commit is contained in:
parent
bbb9413b7e
commit
27c4490521
1 changed files with 17 additions and 2 deletions
|
@ -9,8 +9,15 @@
|
|||
use strict;
|
||||
use warnings;
|
||||
|
||||
my $producer = shift @ARGV;
|
||||
use lib '.';
|
||||
use configdata;
|
||||
|
||||
use File::Spec::Functions qw(canonpath rel2abs);
|
||||
|
||||
my $abs_srcdir = rel2abs($config{sourcedir});
|
||||
my $abs_blddir = rel2abs($config{builddir});
|
||||
|
||||
my $producer = shift @ARGV;
|
||||
die "Producer not given\n" unless $producer;
|
||||
|
||||
my $procedure = {
|
||||
|
@ -98,7 +105,15 @@ my $procedure = {
|
|||
|
||||
if (/^Note: including file: */) {
|
||||
(my $tail = $') =~ s/\s*\R$//;
|
||||
return "${object}: \"$tail\"\n";
|
||||
|
||||
# VC gives us absolute paths for all include files, so to
|
||||
# remove system header dependencies, we need to check that
|
||||
# they don't match $abs_srcdir or $abs_blddir
|
||||
$tail = canonpath($tail);
|
||||
if ($tail =~ m|^\Q$abs_srcdir\E|i
|
||||
|| $tail =~ m|^\Q$abs_blddir\E|i) {
|
||||
return "${object}: \"$tail\"\n";
|
||||
}
|
||||
}
|
||||
|
||||
return undef;
|
||||
|
|
Loading…
Reference in a new issue