#! /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
from waflib.Configure import conf
from waflib.TaskGen import feature,after_method,before_method,extension
@extension('.boo')
def boo_hook(self,node):
	pass
@feature('boo')
@before_method('process_source')
def apply_booc(self):
	src_nodes=self.to_nodes(self.source)
	out_node=self.path.find_or_declare(self.gen)
	self.boo_task=self.create_task('booc',src_nodes,[out_node])
	self.boo_task.env.OUT='-o:%s'%out_node.abspath()
	type=getattr(self,"type","exe")
	self.boo_task.env.BOO_TARGET_TYPE="-target:%s"%type
@feature('boo')
@after_method('apply_boo')
def use_boo(self):
	dep_names=self.to_list(getattr(self,'use',[]))
	for dep_name in dep_names:
		dep_task_gen=self.bld.get_tgen_by_name(dep_name)
		if not dep_task_gen:
			continue
		dep_task_gen.post()
		dep_task=getattr(dep_task_gen,'boo_task',None)
		if not dep_task:
			dep_task=getattr(dep_task_gen,'cs_task',None)
			if not dep_task:
				dep_task=getattr(dep_task,'link_task',None)
				if not dep_task:
					continue
		self.boo_task.set_run_after(dep_task)
		self.boo_task.dep_nodes.extend(dep_task.outputs)
		self.boo_task.env.append_value('BOO_FLAGS','-reference:%s'%dep_task.outputs[0].abspath())
class booc(Task.Task):
	color='YELLOW'
	run_str='${BOOC} ${BOO_FLAGS} ${BOO_TARGET_TYPE} ${OUT} ${SRC}'
@conf
def check_booc(self):
	self.find_program('booc','BOOC')
	self.env.BOO_FLAGS=['-nologo']
def configure(self):
	self.check_booc()
