summaryrefslogtreecommitdiff
path: root/bin/find-unusedheaders.pl
diff options
context:
space:
mode:
authorBjoern Michaelsen <bjoern.michaelsen@canonical.com>2013-10-15 10:18:29 +0200
committerBjoern Michaelsen <bjoern.michaelsen@canonical.com>2013-10-15 10:18:29 +0200
commite4fbcc549a143992f72333404adb0180afa69e1a (patch)
treebe6e9d01ae9356b7a6bb77576fa987b9a40b055c /bin/find-unusedheaders.pl
parent1793e5c1ff5d4b84178b4805026b8d455f32b0e5 (diff)
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
Diffstat (limited to 'bin/find-unusedheaders.pl')
-rwxr-xr-xbin/find-unusedheaders.pl49
1 files changed, 49 insertions, 0 deletions
diff --git a/bin/find-unusedheaders.pl b/bin/find-unusedheaders.pl
new file mode 100755
index 000000000000..c6d7bdab59c8
--- /dev/null
+++ b/bin/find-unusedheaders.pl
@@ -0,0 +1,49 @@
+#!/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;
+ }
+ }
+}