#! /usr/bin/env python
# encoding: utf-8
# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file

from waflib import Task,Utils
from waflib.TaskGen import feature,before_method
import os
def configure(conf):
	conf.find_program(['midl'],var='MIDL')
	conf.env.MIDLFLAGS=['/nologo','/D','_DEBUG','/W1','/char','signed','/Oicf',]
@feature('c','cxx')
@before_method('process_source')
def idl_file(self):
	idl_nodes=[]
	src_nodes=[]
	for node in Utils.to_list(self.source):
		if str(node).endswith('.idl'):
			idl_nodes.append(node)
		else:
			src_nodes.append(node)
	for node in self.to_nodes(idl_nodes):
		t=node.change_ext('.tlb')
		h=node.change_ext('_i.h')
		c=node.change_ext('_i.c')
		p=node.change_ext('_p.c')
		d=node.parent.find_or_declare('dlldata.c')
		tsk=self.create_task('midl',node,[t,h,c,p,d])
	self.source=src_nodes
class midl(Task.Task):
	color='YELLOW'
	run_str='${MIDL} ${MIDLFLAGS} ${CPPPATH_ST:INCLUDES} /tlb ${TGT[0].bldpath()} /header ${TGT[1].bldpath()} /iid ${TGT[2].bldpath()} /proxy ${TGT[3].bldpath()} /dlldata ${TGT[4].bldpath()} ${SRC}'
	before=['winrc']
	def exec_command(self,*k,**kw):
		if self.env['PATH']:
			env=self.env.env or dict(os.environ)
			env.update(PATH=';'.join(self.env['PATH']))
			kw['env']=env
		bld=self.generator.bld
		try:
			if not kw.get('cwd',None):
				kw['cwd']=bld.cwd
		except AttributeError:
			bld.cwd=kw['cwd']=bld.variant_dir
		return bld.exec_command(k[0],**kw)
