#! /usr/bin/env python3

from waflib import Utils

top = '.'
out = 'bin'

def options(opt):
	opt.load('compiler_c')

def configure(conf):
	conf.load('compiler_c')

def build(bld):

	bld(rule='echo hi')
	bld(rule='touch ${TGT}', target='foo.txt')


	bld(rule='touch ${TGT}', target='aaa')
	t = bld(rule='touch ${TGT}', target='bbb', source='aaa')
	t = bld(rule='touch ${TGT}', target='ccc', source='bbb')
	t = bld(rule='touch ${TGT}', target='ddd', source='ccc')
	t = bld(rule=('touch ${TGT}', 'touch ${TGT}'), target='eee', source='ddd', chmod=Utils.O755)
	t.create_task('foo')

	#print( 'path from srcnode', bld.path.find_or_declare('aaa').path_from(bld.bldnode) )

	# folders as nodes are best avoided
	dnode = bld.path.get_bld().make_node('testdir')
	bld(rule='mkdir -p ${TGT}', target=dnode)
	bld(rule='touch ${TGT}', source=dnode, target=dnode.make_node('stuff'), cls_str=lambda x: 'stuff')

	bld.install_files('/tmp/bar', 'wscript')
	bld(features='c cprogram', source='main.c', target='app')


def init(self):
	print('init')

def shutdown(self):
	print('shutdown')

def bar(ctx):
	print("command ok")

from waflib import Task

class foo(Task.Task):
	always_run = True
	def run(self):
		print("running foo")

print("classes", Task.classes)

#-----------------------------------------------
# variant example below
# call "../waf debug"
#

import os
from waflib import Build, Options

class debug_context(Build.BuildContext):
	cmd = 'debug'
	fun = 'build'
	variant = 'test'
	def __init__(self, start=None):
		Build.BuildContext.__init__(self, start=start)

# looks evil
#def debug(bld):
#	build(bld)

