diff options
Diffstat (limited to 'source4/build/pidl/pidl.pl')
-rwxr-xr-x | source4/build/pidl/pidl.pl | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/source4/build/pidl/pidl.pl b/source4/build/pidl/pidl.pl index c45b17c3c4..5c3f8e5054 100755 --- a/source4/build/pidl/pidl.pl +++ b/source4/build/pidl/pidl.pl @@ -22,6 +22,7 @@ use eparser; use validator; use util; use template; +use swig; my($opt_help) = 0; my($opt_parse) = 0; @@ -33,6 +34,7 @@ my($opt_server) = 0; my($opt_parser) = 0; my($opt_eparser) = 0; my($opt_keep) = 0; +my($opt_swig) = 0; my($opt_output); my $idl_parser = new idl; @@ -86,7 +88,8 @@ GetOptions ( 'parser' => \$opt_parser, 'eparser' => \$opt_eparser, 'diff' => \$opt_diff, - 'keep' => \$opt_keep + 'keep' => \$opt_keep, + 'swig' => \$opt_swig ); if ($opt_help) { @@ -155,6 +158,13 @@ sub process_file($) close(OUT); } + if ($opt_swig) { + my($filename) = $output; + $filename =~ s/\/ndr_/\//; + $filename = util::ChangeExtension($filename, ".i"); + util::FileSave($filename, IdlSwig::Parse($pidl)); + } + if ($opt_diff) { my($tempfile) = util::ChangeExtension($output, ".tmp"); util::FileSave($tempfile, IdlDump::Dump($pidl)); |