1.12.39
[gnumeric.git] / tools / check-gtk-includes
blobd9c7521e75766b405aba5b3190986518bb806353
1 #!/usr/bin/perl -w
3 # Gnumeric
5 # Copyright (C) 2008 Morten Welinder.
7 # This program is free software; you can redistribute it and/or
8 # modify it under the terms of the GNU General Public License as
9 # published by the Free Software Foundation; either version 2 of the
10 # License, or (at your option) any later version.
12 # This library is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 # General Public License for more details.
17 # You should have received a copy of the GNU General Public License
18 # along with this library; if not, see <https://www.gnu.org/licenses/>.
20 # Author: Morten Welinder <terra@gnome.org>
22 use strict;
24 my $exitcode = 0;
25 my $verbose = 0;
26 my $strict = 0;
28 warn "$0: should be run from top-level directory.\n"
29 unless -r "configure.ac" && -r 'ChangeLog';
31 my %base_exceptions =
32 ();
34 my %exceptions =
35 ();
38 local (*FIND);
39 open (*FIND, "find . '(' -type f -name '*.[ch]' -print ')' -o '(' -type d '(' -name intl -o -name macros -o -name .git -o -name win32 ')' -prune ')' |")
40 or die "$0: cannot execute find: $!\n";
41 FILE:
42 foreach my $filename (<FIND>) {
43 chomp $filename;
44 $filename =~ s|^\./||;
46 next if $exceptions{$filename};
47 my $basename = $filename;
48 $basename =~ s|^.*/||;
49 next if $base_exceptions{$basename};
51 local (*FIL);
52 if (open (*FIL, "< $filename")) {
53 # print STDERR "Checking $filename...\n";
54 my $lineno = 0;
55 my @lines;
56 LINE:
57 while (<FIL>) {
58 $lineno++;
60 if (m'^\s*\#\s*include\s+(<gtk/gtk[a-z].*>)') {
61 $exitcode = 1;
62 print STDERR "$0: $filename includes $1\n";
65 close (*FIL);
66 } else {
67 print STDERR "$0: Cannot read `$filename': $!\b";
68 $exitcode = 1;
71 close (*FIND);
74 exit $exitcode;