2006-09-25 Anders Carlsson <acarlsson@apple.com>
[WebKit-https.git] / WebCore / ksvg2 / scripts / generateJSBindings.pl
1 #!/usr/bin/perl -w
2
3 # This script is a temporary hack.
4 # Files are generated in the source directory, when they really should go
5 # to the DerivedSources directory.
6 # This should also eventually be a build rule driven off of .idl files
7 # however a build rule only solution is blocked by several radars:
8 # <rdar://problems/4251781&4251785>
9
10 use File::Path;
11 use Getopt::Long;
12
13 my $namespace = "kdom";
14 my $baseDirectory = ".";
15
16 GetOptions('namespace=s' => \$namespace,
17            'basedirectory=s' => \$baseDirectory);
18
19 my $kdomBindingsDirectory = "$baseDirectory/kdom/bindings";
20 my $bindingsDirectory = "$baseDirectory/$namespace/bindings";
21 my $idlDirectory = "$bindingsDirectory/idl";
22 my $outputDirectory = "$bindingsDirectory/js";
23
24 my @idlFiles;
25 push @idlFiles, map { chomp; $_ } `find $idlDirectory -name '*.idl' -print | grep -v defs`;
26
27 for my $idlPath (@idlFiles) {
28     my ($module, $filename) = ($idlPath =~ m|^$idlDirectory/(.*)/(.*)\.idl$|);
29     mkpath "$outputDirectory/$module";
30     print "$idlPath\n";
31     $command = "perl -w";
32     $command .= " -I$kdomBindingsDirectory";
33     $command .= " -I$bindingsDirectory" if !($namespace eq "kdom");
34     $command .= "   $kdomBindingsDirectory/kdomidl.pl";
35     $command .= " --generator js";
36     $command .= " --outputdir $outputDirectory";
37     $command .= " --input $idlPath";
38     $command .= " --includedir $kdomBindingsDirectory/idl";
39     $command .= " --includedir $idlDirectory" if !($namespace eq "kdom");
40     $command .= " --documentation $idlDirectory/$module/docs-$module.xml";
41     $command .= " --ontop" if !($namespace eq "kdom");
42     `$command`;
43 }