diff options
Diffstat (limited to 'source4/build/pidl/pidl.pl')
-rwxr-xr-x | source4/build/pidl/pidl.pl | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/source4/build/pidl/pidl.pl b/source4/build/pidl/pidl.pl index eedbb91d4e..b535215d03 100755 --- a/source4/build/pidl/pidl.pl +++ b/source4/build/pidl/pidl.pl @@ -21,6 +21,7 @@ use client; use proxy; use stub; use ndr; +use odl; use eparser; use validator; use typelist; @@ -40,6 +41,7 @@ my($opt_parser) = 0; my($opt_eparser) = 0; my($opt_keep) = 0; my($opt_swig) = 0; +my($opt_odl) = 0; my($opt_output); my $idl_parser = new idl; @@ -79,6 +81,7 @@ sub ShowHelp() --swig create swig wrapper file --diff run diff on the idl and dumped output --keep keep the .pidl file + --odl accept ODL input \n"; exit(0); } @@ -96,6 +99,7 @@ GetOptions ( 'client' => \$opt_client, 'eparser' => \$opt_eparser, 'diff' => \$opt_diff, + 'odl' => \$opt_odl, 'keep' => \$opt_keep, 'swig' => \$opt_swig ); @@ -109,6 +113,7 @@ sub process_file($) { my $idl_file = shift; my $output; + my $podl; my $pidl; my $basename = basename($idl_file, ".idl"); @@ -143,6 +148,11 @@ sub process_file($) typelist::LoadIdl($pidl); } + if ($opt_odl) { + $podl = $pidl; + $pidl = ODL::ODL2IDL($podl); + } + if ($opt_header) { my($header) = util::ChangeExtension($output, ".h"); util::FileSave($header, IdlHeader::Parse($pidl)); |