3 Tool-specific initialization for pidl (Perl-based IDL compiler)
11 idl_scanner = SCons.Scanner.ClassicCPP("PIDLScan", '.idl', 'CPPPATH', r'depends\(([^,]+),+\)', SCons.Node.FS.default_fs)
13 def idl_emitter(target, source, env):
14 base, ext = SCons.Util.splitext(str(source[0]))
15 result = ['gen_ndr/ndr_%s.c' % base, 'gen_ndr/ndr_%s.h' % base]
18 pidl_builder = SCons.Builder.Builder(action='$PIDLCOM',
19 emitter = idl_emitter,
22 scanner = idl_scanner)
25 env['PIDL'] = env.Detect('pidl') or './pidl/pidl'
26 env['PIDLFLAGS'] = ['--outputdir', 'librpc/gen_ndr', '--ndr-header', '--ndr-parser']
27 env['PIDLCOM'] = '$PIDL $PIDLFLAGS -- $SOURCE'
28 env['BUILDERS']['NdrMarshaller'] = pidl_builder
31 return env.Detect(['./pidl/pidl','pidl'])