diff -r 000000000000 -r 83f4b4db085c sbsv1_os/e32toolp/genutil/conv_khronos_hdr_to_cpp.pl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sbsv1_os/e32toolp/genutil/conv_khronos_hdr_to_cpp.pl Tue Feb 02 01:39:43 2010 +0200 @@ -0,0 +1,86 @@ +# Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). +# All rights reserved. +# This component and the accompanying materials are made available +# under the terms of "Eclipse Public License v1.0" +# which accompanies this distribution, and is available +# at the URL "http://www.eclipse.org/legal/epl-v10.html". +# +# Initial Contributors: +# Nokia Corporation - initial contribution. +# +# Contributors: +# +# Description: +# Convert the given header file from Khronos into a stub implementation file +# +# + +use File::Basename; +use File::Path; + +my $debug = 0; +my $prog = "conv_khronos_hdr_to_cpp.pl"; +my $source = shift; +my $target = shift; +my $operation_mode = shift; +my @lines; + +if ($debug) + { + print "$prog: Args $source $target $operation_mode\n"; + } + +if ("$operation_mode" eq "delete") + { + &cleanup(); + exit 0; + } +elsif ("$operation_mode" eq "create") + { + &setupFiles(); + &generateStubImplementation(); + exit 0; + } +else + { + print "Usage error: $prog source target [create|delete]\n"; + exit 1; + } + +sub cleanup() + { + unlink "$target"; + } + +sub setupFiles() + { + my $dir; + $dir = dirname($target); + mkpath $dir; + + open(INFILE, "$source") or die "Can't open input file $source; $!\n"; + open(OUTFILE, ">$target") or die "Can't open output file $target; $!\n"; + print OUTFILE '/* Auto-generated: ' . "$prog" . ' v1.0 */' . "\n"; + print OUTFILE '/* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). All rights reserved. */' . "\n"; + } + +sub generateStubImplementation() + { + @lines = ; + foreach (@lines) + { + # Find function prototype lines + if (/^GL_APICALL/) + { + # Convert the function prototype into a stub function definition + s/\;$/ { }/; + # Record the stub functions. There will be a stub implementation + # file which includes these stub functions. This ensures we never + # accidentally miss a new function added to the header file supplied + # as $source. We expect compiler warnings (missing use of arguments, + # absent return value etc.). The aim is to get something which will + # compile so that a DEF file can be generated. + print OUTFILE "$_"; + } + } + }