r10436: Some thoughts on getting pidl working in scons.
authorTim Potter <tpot@samba.org>
Thu, 22 Sep 2005 23:30:08 +0000 (23:30 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 18:38:45 +0000 (13:38 -0500)
(This used to be commit f1688a8066cd787aa630714ffc161eb0f30414f1)

source4/build/scons/pidl.py

index 68a2c2040e6760ddc577836a8c685d076cfbb74a..c7d734a4fae53b9590943c0ff6f93d03952f4706 100644 (file)
@@ -10,7 +10,13 @@ import SCons.Scanner
 
 idl_scanner = SCons.Scanner.ClassicCPP("PIDLScan", '.idl', 'CPPPATH', r'depends\(([^,]+),+\)', SCons.Node.FS.default_fs)
 
+def idl_emitter(target, source, env):
+       base, ext = SCons.Util.splitext(str(source[0]))
+       result = ['gen_ndr/%s.c' % base, 'gen_ndr/%s.h' % base]
+       return result
+
 pidl_builder = SCons.Builder.Builder(action='$PIDLCOM',
+                                    emitter = idl_emitter,
                                      src_suffix = '.idl',
                                      suffix='.c',
                                      scanner = idl_scanner)
@@ -18,7 +24,7 @@ pidl_builder = SCons.Builder.Builder(action='$PIDLCOM',
 def generate(env):
        env['PIDL']          = env.Detect('pidl') or './pidl/pidl'
        env['PIDLFLAGS']     = []
-       env['PIDLCOM']       = 'CPP=$CPP $PIDL $PIDLFLAGS -- $SOURCE'
+       env['PIDLCOM']       = '$PIDL $PIDLFLAGS -- $SOURCE'
        env['BUILDERS']['NdrMarshaller'] = pidl_builder
 
 def exists(env):