Commit 61af51d5 authored by Christoph Grüninger's avatar Christoph Grüninger Committed by Steffen Müthing

[cleanup] Remove leftover (?) file Doxydep

(cherry picked from commit 691ac90c)
Signed-off-by: Steffen Müthing's avatarSteffen Müthing <muething@dune-project.org>
parent 8fe92a21
#!/usr/bin/perl -w
use strict;
use English;
use IO::Handle;
# OPTIONS
my $defaulttarget = "doxygen-tag";
my $USAGE = "Doxydep <DOXYFILE> <DEPFILE> [TARGET]".
"\tDOXYFILE: Configuration file for Doxygen\n".
"\tDEPFILE: Outfile for the dependencies\n".
"\tTARGT: Target for the Makefile (default=$defaulttarget)";
my $doxyname = shift || die $USAGE;
my $depfile = shift || die $USAGE;
my $target;
$target = shift;
if (! $target) { $target = $defaulttarget };
# write an entry for DEPFILE
sub addDep ($) {
my $dep = shift;
if (defined($dep) && ! $dep eq "") {
print DEPFILE "$target: $dep\n\n";
print DEPFILE "$dep:\n\n";
}
}
# get all files in a directory, except . and ..
sub readDir ($) {
my $dir = shift;
$dir =~ s/\/$//;
$dir = $dir."/";
my @entries;
opendir DIR, $dir;
while (my $f = readdir DIR) {
if ($f !~ /^\.\.?$/) {
push (@entries, $dir.$f);
}
}
close DIR;
return @entries;
}
# find file matching the pattern
sub findFiles ($$$) {
my $dir = shift;
my $pattern = shift;
my $recursive = shift;
$pattern =~ s/\*/\\w*/g;
$pattern =~ s/\?/\\w/g;
my @entries;
push (@entries, readDir($dir));
my @existing;
while (my $file = pop(@entries)) {
if (( -d $file ) && ( $recursive eq "YES" )) {
push (@entries, readDir($file));
}
next unless -f $file;
next if ($file !~ /[\/^]$pattern$/);
if (( -f $file ) && ( -r $file )) {
push @existing, $file;
} else {
# warnen (nur nicht bei . und ..)
print "Warnung: ignoriere $file!\n";
}
}
return @existing;
};
# read all options from the Doxyfile into a hash
sub parseDoxyfile ($)
{
my $doxyname = shift;
my %doxyfile = ();
open DOXYFILE, $doxyname || die "Could not open $doxyname\n";
while (<DOXYFILE>) {
chomp;
next if (/^\s*\#/);
my $input =$_;
my $tag;
if ($input=~/^\s*(\S+)\s*=/) {
$tag = $1;
$doxyfile{$tag} = "";
while ($input=~/\\\s*$/) {
$input =~ s/\\\s*$//;
$doxyfile{$tag} = $doxyfile{$tag}.$input;
$input = DOXYFILE->getline();
};
$input =~ s/\\\s*$//;
$doxyfile{$tag} = $doxyfile{$tag}.$input;
$doxyfile{$tag} =~ s/\s+/ /g;
$doxyfile{$tag} =~ s/^\s*$tag\s*=\s*//;
}
}
close DOXYFILE;
return %doxyfile;
}
# WRITE DEPFILE
my %doxyfile = parseDoxyfile($doxyname);
open DEPFILE, ">$depfile" || die "Could not open $depfile\n";
# foreach input defined in INPUT = ...
foreach my $input (split(/ /, $doxyfile{"INPUT"})) {
next if (! defined($input));
next if ( $input eq "" );
if ( -f $input ) {
addDep($input);
}
else {
# foreach pattern defined in FILE_PATTERNS = ...
foreach my $pattern (split(/ /, $doxyfile{"FILE_PATTERNS"})) {
next if (! defined($pattern));
next if ( $pattern eq "" );
my @files = findFiles($input, $pattern, $doxyfile{"RECURSIVE"});
foreach my $f (@files) {
addDep($f);
}
}
}
}
addDep($doxyfile{"HTML_HEADER"});
addDep($doxyfile{"HTML_FOOTER"});
addDep($doxyfile{"LATEX_HEADER"});
close DEPFILE;
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment