#!/usr/bin/env python
import Logs
import Options
import autowaf
import filecmp
import glob
import os
import shutil
import subprocess

# Version of this package (even if built as a child)
SUIL_VERSION = '0.0.0'

# Library version (UNIX style major, minor, micro)
# major increment <=> incompatible changes
# minor increment <=> compatible changes (additions)
# micro increment <=> no interface changes
# Suil uses the same version number for both library and package
SUIL_LIB_VERSION = SUIL_VERSION

# Variables for 'waf dist'
APPNAME = 'suil'
VERSION = SUIL_VERSION

# Mandatory variables
top = '.'
out = 'build'

def options(opt):
	autowaf.set_options(opt)

def configure(conf):
	conf.line_just = max(conf.line_just, 56)
	autowaf.configure(conf)
	autowaf.display_header('Suil Configuration')

	conf.check_tool('compiler_cc')
	conf.env.append_value('CFLAGS', '-std=c99')

	autowaf.check_header(conf, 'lv2/lv2plug.in/ns/extensions/ui/ui.h')

	autowaf.define(conf, 'SUIL_VERSION', SUIL_VERSION)
	conf.write_config_header('suil-config.h', remove=False)

	print

def build(bld):
	# C Headers
	bld.install_files('${INCLUDEDIR}/suil', bld.path.ant_glob('suil/*.h'))

	# Pkgconfig file
	autowaf.build_pc(bld, 'SUIL', SUIL_VERSION, [])

	# Library
	obj = bld(features = 'c cshlib')
	obj.export_includes = ['.']
	obj.source          = 'src/instance.c src/uis.c'
	obj.includes        = ['.', './src']
	obj.name            = 'libsuil'
	obj.target          = 'suil'
	obj.vnum            = SUIL_LIB_VERSION
	obj.install_path    = '${LIBDIR}'
	obj.cflags          = [ '-fvisibility=hidden', '-DSUIL_SHARED', '-DSUIL_INTERNAL' ]

	# Documentation
	autowaf.build_dox(bld, 'SUIL', SUIL_VERSION, top, out)

	bld.add_post_fun(autowaf.run_ldconfig)

def lint(ctx):
	subprocess.call('cpplint.py --filter=-whitespace,+whitespace/comments,-build/header_guard,-readability/casting,-readability/todo src/* suil/*', shell=True)