Added cppcheck wrapped for use with Haiku sources (it's a tool for static c/c++ code analysis)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35432 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
+52
@@ -0,0 +1,52 @@
|
|||||||
|
#!/usr/bin/perl
|
||||||
|
|
||||||
|
use warnings;
|
||||||
|
use strict;
|
||||||
|
use File::Basename;
|
||||||
|
use File::Find;
|
||||||
|
|
||||||
|
if (scalar @ARGV < 2) {
|
||||||
|
die "Usage: $0 <dir to check> <file to log> <optional number of jobs>\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!-e "./ReadMe.cross-compile") {
|
||||||
|
die "ERROR: $0 must be called from Haiku top directory!\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
my %headers;
|
||||||
|
my $dirToCheck = shift @ARGV;
|
||||||
|
my $fileToLog = shift @ARGV;
|
||||||
|
my $jobs = 1;
|
||||||
|
if (scalar @ARGV) {
|
||||||
|
$jobs = shift @ARGV;
|
||||||
|
}
|
||||||
|
my $headersDirs;
|
||||||
|
my $cppcheck;
|
||||||
|
|
||||||
|
print "Scanning headers...\n";
|
||||||
|
find({ wanted => \&process, no_chdir => 1},
|
||||||
|
("headers/posix", "headers/libs", "headers/os", "headers/private"));
|
||||||
|
|
||||||
|
foreach my $dir (sort keys %headers) {
|
||||||
|
$headersDirs .= "-I $dir ";
|
||||||
|
}
|
||||||
|
|
||||||
|
print "Running cppcheck tool...\n";
|
||||||
|
$cppcheck = "cppcheck -j $jobs --force --auto-dealloc 3rdparty/cppcheck/haiku.lst --enable=exceptRealloc,possibleError,style $headersDirs $dirToCheck 2> $fileToLog";
|
||||||
|
|
||||||
|
system($cppcheck);
|
||||||
|
|
||||||
|
sub process
|
||||||
|
{
|
||||||
|
if (substr($_, -4, 4) eq '.svn') {
|
||||||
|
$File::Find::prune = 1;
|
||||||
|
} else {
|
||||||
|
return if $File::Find::dir eq $_; # skip toplevel folders
|
||||||
|
my $name = (fileparse($_))[0];
|
||||||
|
if (-d $_) {
|
||||||
|
push @{$headers{$File::Find::name}->{subdirs}}, $name;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Vendored
+17
@@ -0,0 +1,17 @@
|
|||||||
|
BAlert
|
||||||
|
BButton
|
||||||
|
BCheckBox
|
||||||
|
BControl
|
||||||
|
BMenuBar
|
||||||
|
BMenuField
|
||||||
|
BMenuItem
|
||||||
|
BMenuWindow
|
||||||
|
BPopUpMenu
|
||||||
|
BRadioButton
|
||||||
|
BScrollBar
|
||||||
|
BSplitView
|
||||||
|
BStringView
|
||||||
|
BTextControl
|
||||||
|
BView
|
||||||
|
BWindow
|
||||||
|
|
||||||
Reference in New Issue
Block a user