#! /usr/bin/env python
# encoding: utf-8

from waflib import Utils
import os

top = '.'
PROJECT_NAME = 'vstdlib'

def options(opt):
	# stub
	return

def configure(conf):
	conf.define('VSTDLIB_DLL_EXPORT',1)

def build(bld):
	source = [
		#'xbox\___FirstModule.cpp' [$X360]
		'coroutine.cpp',	#			[!$X360 && !$OSXALL]
		'cvar.cpp',
		'jobthread.cpp',
		'KeyValuesSystem.cpp',
		'random.cpp',
		'vcover.cpp',
		'../public/tier0/memoverride.cpp'
	]
	
	if bld.env.DEST_OS == 'win32':
		source += [
			'processutils.cpp'
		]
		if bld.env.DEST_CPU == 'amd64':
			source += [
				'coroutine_win64.masm',
				'GetStackPtr64.masm'
			]

	includes = [
		'.',
		'../public',
		'../public/tier0',
		'../public/tier1',
		'../public/vstdlib'
	]

	defines = []

	libs = ['tier0','tier1']
	linkflags = []

	if bld.env.DEST_OS == 'android':
		libs += ['ANDROID_SUPPORT']
	elif bld.env.DEST_OS == 'darwin':
		linkflags += ['-framework', 'CoreServices']

	install_path = None if bld.env.BUILD_SDK else bld.env.LIBDIR

	bld.shlib(
		source   = source,
		target   = PROJECT_NAME,
		name     = PROJECT_NAME,
		features = 'c cxx',
		includes = includes,
		defines  = defines,
		use      = libs,
		linkflags = linkflags,
		install_path = install_path,
		subsystem = bld.env.MSVC_SUBSYSTEM,
		idx      = bld.get_taskgen_count()
	)