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

from waflib import Utils
import os

top = '.'
PROJECT_NAME = 'vphysics'

def options(opt):
	# stub
	return

def configure(conf):
	conf.env.append_unique('DEFINES',[
		'VPHYSICS_EXPORTS',
		'HAVANA_CONSTRAINTS',
		'HAVOK_MOPP'
	])

	conf.env.append_unique('LINKFLAGS',  [
#		"-L/home/nillerusr/projects/PhysX/physx/install/linux/PhysX/bin/linux.clang/release/"
		"-L/home/nillerusr/projects/PhysX/physx/install/linux/PhysX/bin/linux.clang/debug/"
	])

	conf.check(lib='PhysX_static_64', uselib_store='PHYSX')
	conf.check(lib='PhysXFoundation_static_64', uselib_store='PHYSX_FOUNDATION')
	conf.check(lib='PhysXCommon_static_64', uselib_store='PHYSX_COMMON')
	conf.check(lib='PhysXPvdSDK_static_64', uselib_store='PHYSX_PVD')
	conf.check(lib='PhysXExtensions_static_64', uselib_store='PHYSX_EXT')
	conf.check(lib='PhysXCooking_static_64', uselib_store='PHYSX_COOKING')

def build(bld):
	source = [
		'convert.cpp',
		'../public/filesystem_helpers.cpp',
		'ledgewriter.cpp',
		'main.cpp',
		'physics_airboat.cpp',
		'physics_collide.cpp',
		'physics_constraint.cpp',
		'physics_controller_raycast_vehicle.cpp',
		'physics_environment.cpp',
		'physics_fluid.cpp',
		'physics_friction.cpp',
		'physics_material.cpp',
		'physics_motioncontroller.cpp',
		'physics_object.cpp',
		'physics_shadow.cpp',
		'physics_spring.cpp',
		'physics_vehicle.cpp',
		'physics_virtualmesh.cpp',
		'trace.cpp',
		'vcollide_parse.cpp',
		'vphysics_saverestore.cpp',
		'../public/tier0/memoverride.cpp'
	]

	includes = [
		'.',
		'../public',
		'../public/tier0',
		'../public/tier1',
		'../ivp/ivp_intern',
		'../ivp/ivp_collision',
		'../ivp/ivp_physics',
		'../ivp/ivp_surface_manager',
		'../ivp/ivp_utility',
		'../ivp/ivp_controller',
		'../ivp/ivp_compact_builder',
		'../ivp/havana/havok',
		'../ivp/havana',
		'/home/nillerusr/projects/PhysX/physx/install/linux/PhysX/include',
		'/home/nillerusr/projects/PhysX/physx/install/linux/PxShared/include'
	]

	defines = []

	libs = ['tier0','havana_constraints','hk_math','hk_base','ivp_compactbuilder','ivp_physics','tier1','tier2','vstdlib','mathlib', 'PHYSX', 'PHYSX_PVD', 'PHYSX_EXT', 'PHYSX_COOKING', 'PHYSX_FOUNDATION', 'PHYSX_COMMON']

	install_path = bld.env.LIBDIR

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

