office-gobmx/bin/find-unusedheaders.pl
Bjoern Michaelsen e4fbcc549a fdo#70371: create findunusedheaders target
- you can now do "make unusedheaders" to look for headers that seem to be used
- also renamed the script in ./bin to follow the conventions there

Change-Id: Ia9487af02effd05bfbc5c3f5c04b928a407b0fa4
2013-10-15 10:18:29 +02:00

49 lines
1.2 KiB
Perl
Executable file

#!/usr/bin/perl
# This file is part of the LibreOffice project.
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
#
use strict;
use warnings;
use File::Find qw(finddepth);
use File::Basename;
# Find dirs in:
# workdir/unxlngx6.pro/Dep/CxxObject/
# workdir/unxlngx6.pro/Dep/CObject
#
# Concat these files and compare them with the output of
# `git ls-tree HEAD -r --name-only` and report files in the git ls-tree that aren't in the first.
my @files;
my $tmp;
my %data = ();
# define a wanted function
sub wanted {
return if($_ eq '.' || $_ eq '..' || -d $_);
$tmp = basename($File::Find::name);
# remove file extension ( .o )
$tmp =~ s/\.[^.]*$//;
$data{$tmp} = $File::Find::name;
}
finddepth(\&wanted, 'workdir/unxlngx6.pro/Dep/CxxObject');
finddepth(\&wanted, 'workdir/unxlngx6.pro/Dep/CObject');
my @gitfiles = `git ls-tree HEAD -r --name-only`;
# loop over found gitfiles
foreach my $file (@gitfiles){
if($file =~ /\.[hxx|h|c|cxx]$/){
$tmp = basename($file);
$tmp =~ s/\.[^.]*$//;
chomp($tmp);
if(!exists($data{$tmp})){
print $file;
}
}
}