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

from waflib import Utils
import os
import vpc_parser

top = '.'
PROJECT_NAME = 'server'

games = {
	'hl2': ['server_base.vpc', 'server_hl2.vpc'],
	'episodic':['server_base.vpc', 'server_episodic.vpc'],
	'hl2mp': ['server_base.vpc', 'server_hl2mp.vpc'],
	'portal': ['server_base.vpc', 'server_portal.vpc'],
	'hl1': ['server_base.vpc', 'server_hl1.vpc'],
	'hl1mp': ['server_base.vpc', 'server_hl1.vpc'],
	'css': ['server_base.vpc', 'server_cstrike.vpc', 'nav_mesh.vpc'],
	'dod': ['server_base.vpc', 'server_dod.vpc'],
	'tf': [
		'server_base.vpc',
		'server_econ_base.vpc',
		'tf/tf_gcmessages_include.vpc',
		'nav_mesh.vpc',
		'server_tf.vpc'
	]
}

def options(opt):
	return

def configure(conf):
	game = conf.options.GAMES
	conf.env.GAMES = game

	if game not in games.keys():
		conf.fatal("Couldn't find game: ", game)

def build(bld):
	game = vpc_parser.parse_vpcs( bld.env, games[bld.env.GAMES], '../..' )

	includes = [
		'.',
		'../shared',
		'../../utils/common',
		'../shared/econ',
		'NextBot',
		'../../common',
		'../../public/tier0',
		'../../public/tier1',
		'../../public'
	]

	defines = []

	libs = ['tier0','particles','dmxloader','tier1','tier2','tier3','mathlib','vstdlib','choreoobjects','steam_api']

	install_path = bld.env.PREFIX
	if bld.env.DEST_OS != 'android':
		install_path += '/hl2/bin'

	source = game["sources"]
	includes += game["includes"]
	defines = game["defines"]

	defines.remove('PROTECTED_THINGS_ENABLE')

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