Commit 27c44905 authored by Richard Levitte's avatar Richard Levitte
Browse files

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: default avatarAndy Polyakov <appro@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/5591)
parent bbb9413b
Loading
Loading
Loading
Loading
+17 −2
Original line number Diff line number Diff line
@@ -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,8 +105,16 @@ my $procedure = {

            if (/^Note: including file: */) {
                (my $tail = $') =~ s/\s*\R$//;

                # 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;
        },