Update of /cvsroot/compbench/CompBenchmarks++/SupportedBenchmarks
In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv24112
Added Files:
benchmarks-genlibwrapper.pl
Log Message:
First import.
--- NEW FILE: benchmarks-genlibwrapper.pl ---
#!/usr/bin/perl -w
use strict;
my %DATA;
my $PACKAGE = $ARGV[0];
my $BENCHLIST_DIR = $ARGV[1];
$PACKAGE=~ s/.+Benchmark-(.*?)\.libwrapper.h/$1/;
sub parse {
my $f = "$BENCHLIST_DIR/benchmarks.list";
open(FD, $f) || die ("$!: $f");
while (<FD>) {
if (/^\s*#/) {
next;
}
if (/(.*):(.*):(.*)/) {
if ($2 ne $PACKAGE) {
next;
}
$DATA{$2}->{$1}=$3;
}
}
close(FD);
}
sub generate {
print "#include <Benchmark/Benchmark-DLLoader.h>\n";
print "#include <UI/UI.h>\n\n";
print "BenchmarkVector& CBMPackage$PACKAGE\::Benchmarks(void) {\n";
print " if (benchmarks.size()) return(benchmarks);\n";
foreach(keys %{$DATA{$PACKAGE}}) {
print " benchmarks.push_back(\"$_\");\n";
}
print " return(benchmarks);\n";
print "}\n\n";
print "CBMBenchmark *CBMPackage$PACKAGE\::Benchmark(std::string bid) {\n";
foreach(keys %{$DATA{$PACKAGE}}) {
print " if (bid == \"$_\") {\n";
print " return(new CBMBenchmark$DATA{$PACKAGE}->{$_}(this));\n";
print " }\n";
}
print " UI->Fatal(\"Unknown benchmark\");\n";
print " return(0);\n";
print "}\n\n";
print "CBMPackage *package_$PACKAGE = 0;\n";
print "CBMPackage *cbmlib_getPackage(void) {\n";
print " if (!package_$PACKAGE) {\n";
print " package_$PACKAGE=new CBMPackage$PACKAGE(cbmSystem);\n";
print " cbmlib_packages.push_back(package_$PACKAGE);\n";
print " }\n";
print " return(package_$PACKAGE);\n";
print "}\n";
}
parse();
generate();
|