[Compbench-devel] CompBenchmarks++/SupportedBenchmarks benchmarks-genlibwrapper.pl, NONE, 1.1
Brought to you by:
xfred
From: Frederic T. <xf...@us...> - 2007-01-03 22:04:21
|
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(); |