summaryrefslogtreecommitdiff
path: root/source4/pidl/pidl
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2008-01-03 21:21:16 -0600
committerStefan Metzmacher <metze@samba.org>2008-01-03 15:27:02 -0600
commit0dbdfc2218c801b973a34fc810e5bb1b4509dd3c (patch)
treed8c292e9db424dbb44b910371c38b13092d15061 /source4/pidl/pidl
parent6ed5fc0919d2f43ad28f9fff08e2a3c8f09bbecd (diff)
downloadsamba-0dbdfc2218c801b973a34fc810e5bb1b4509dd3c.tar.gz
samba-0dbdfc2218c801b973a34fc810e5bb1b4509dd3c.tar.bz2
samba-0dbdfc2218c801b973a34fc810e5bb1b4509dd3c.zip
r26657: pidl: Add basics for generating Python modules.
(This used to be commit f1960ca7c4d1b75d64192efdd446482c6bbebcd9)
Diffstat (limited to 'source4/pidl/pidl')
-rwxr-xr-xsource4/pidl/pidl14
1 files changed, 13 insertions, 1 deletions
diff --git a/source4/pidl/pidl b/source4/pidl/pidl
index 4150ff7720..4395df2020 100755
--- a/source4/pidl/pidl
+++ b/source4/pidl/pidl
@@ -17,7 +17,7 @@ pidl - An IDL compiler written in Perl
pidl --help
-pidl [--outputdir[=OUTNAME]] [--includedir DIR...] [--parse-idl-tree] [--dump-idl-tree] [--dump-ndr-tree] [--header[=OUTPUT]] [--ejs[=OUTPUT]] [--swig[=OUTPUT]] [--ndr-parser[=OUTPUT]] [--client] [--server] [--warn-compat] [--quiet] [--verbose] [--template] [--ws-parser[=OUTPUT]] [--diff] [--dump-idl] [--tdr-parser[=OUTPUT]] [--samba3-ndr-client[=OUTPUT]] [--samba3-ndr-server[=OUTPUT]] [<idlfile>.idl]...
+pidl [--outputdir[=OUTNAME]] [--includedir DIR...] [--parse-idl-tree] [--dump-idl-tree] [--dump-ndr-tree] [--header[=OUTPUT]] [--ejs[=OUTPUT]] [--python[=OUTPUT]] [--swig[=OUTPUT]] [--ndr-parser[=OUTPUT]] [--client] [--server] [--warn-compat] [--quiet] [--verbose] [--template] [--ws-parser[=OUTPUT]] [--diff] [--dump-idl] [--tdr-parser[=OUTPUT]] [--samba3-ndr-client[=OUTPUT]] [--samba3-ndr-server[=OUTPUT]] [<idlfile>.idl]...
=head1 DESCRIPTION
@@ -468,6 +468,7 @@ my($opt_tdr_parser);
my($opt_ws_parser);
my($opt_swig);
my($opt_ejs);
+my($opt_python);
my($opt_quiet) = 0;
my($opt_outputdir) = '.';
my($opt_verbose) = 0;
@@ -504,6 +505,7 @@ Samba 4 output:
--client[=OUTFILE] create a C NDR client [ndr_BASENAME_c.c]
--tdr-parser[=OUTFILE] create a C TDR parser [tdr_BASENAME.c]
--ejs[=OUTFILE] create ejs wrapper file [BASENAME_ejs.c]
+ --python[=OUTFILE] create python wrapper file [py_BASENAME.c]
--swig[=OUTFILE] create swig wrapper file [BASENAME.i]
--server[=OUTFILE] create server boilerplate [ndr_BASENAME_s.c]
--template print a template for a pipe
@@ -538,6 +540,7 @@ my $result = GetOptions (
'client:s' => \$opt_client,
'ws-parser:s' => \$opt_ws_parser,
'ejs' => \$opt_ejs,
+ 'python' => \$opt_python,
'diff' => \$opt_diff,
'swig:s' => \$opt_swig,
'quiet' => \$opt_quiet,
@@ -606,6 +609,7 @@ sub process_file($)
defined($opt_header) or
defined($opt_ndr_parser) or
defined($opt_ejs) or
+ defined($opt_python) or
defined($opt_dump_ndr_tree) or
defined($opt_samba3_header) or
defined($opt_samba3_parser) or
@@ -657,6 +661,14 @@ sub process_file($)
FileSave("$outputdir/ndr_$basename\_ejs.h", $hdr);
}
+ if (defined($opt_python)) {
+ require Parse::Pidl::Samba4::Python;
+ my $generator = new Parse::Pidl::Samba4::Python();
+ my ($hdr,$prsr) = $generator->Parse($basename, $ndr, $h_filename);
+ FileSave("$outputdir/py_$basename.c", $prsr);
+ FileSave("$outputdir/py_$basename.h", $hdr);
+ }
+
if (defined($opt_server)) {
require Parse::Pidl::Samba4::NDR::Server;