# -*- python -*-

Import('env')
# can we import path in one place?
import sys
sys.path.append(env['base_dir']+'SconsTests')
import utils
import platform

name = "Plugin_VideoSoftware"

files = [
	'BPMemLoader.cpp',
	'Clipper.cpp',
	'CommandProcessor.cpp',
	'CPMemLoader.cpp',
	'DebugUtil.cpp',
	'EfbCopy.cpp',
	'EfbInterface.cpp',
	'GLUtil.cpp',
	'HwRasterizer.cpp',
	'main.cpp',
	'OpcodeDecoder.cpp',
	'PixelEngine.cpp',
	'Rasterizer.cpp',
	'RasterFont.cpp',
	'Renderer.cpp',
        'SetupUnit.cpp',
        'Statistics.cpp',
        'Tev.cpp',
        'TextureEncoder.cpp',
        'TextureSampler.cpp',
        'TransformUnit.cpp',
        'VertexFormatConverter.cpp',
        'VertexLoader.cpp',
        'VideoConfig.cpp',
        'XFMemLoader.cpp',
	]
compileFlags = [
	'-fPIC',
	]
linkFlags = [
	]
libs = [
	'videocommon', 'SOIL', 'common'
	]

gfxenv = env.Clone()

if sys.platform == 'win32':
        files += [ 'Win32.cpp' ]

tests = {'CheckPKG' : utils.CheckPKG}
conf = gfxenv.Configure(custom_tests = tests,
                        config_h=env['base_dir']+"Source/Core/Common/Src/Config.h")

if sys.platform == 'darwin':
	gfxenv['FRAMEWORKS'] = ['CoreFoundation', 'System', 'OpenGL', 'Cocoa', 'Cg']
	compileFlags += ['-x','objective-c++',]
	files += [ 'cocoaGL.m', ]

	conf.CheckPKG('OpenGL')
	if gfxenv['HAVE_OPENCL']:
		gfxenv['FRAMEWORKS'] += ['OpenCL']

elif sys.platform == 'win32':
        print name + " is assuming that you have opengl, glu, cg, and cggl"
else:
        if not (conf.CheckPKG('GL') and conf.CheckPKG('GLU')):
                print name + " must have opengl and glu to be build"
                Return()
	
if sys.platform == 'win32':
	print name + " is assuming that you have glew"
else:
	if not conf.CheckPKG('GLEW'):
		print name + " must have glew to be build"
		Return()


if sys.platform == 'win32':
	files += [
		'Win32.cpp'
		]
	libs += [
		env['base_dir'] + '/Externals/Cg/'
		]	
	gfxenv['CPPPATH'] += libs
	

# check for Xrandr
gfxenv['HAVE_XRANDR'] = gfxenv['HAVE_X11'] and conf.CheckPKG('xrandr')
        
conf.Define('HAVE_XRANDR', gfxenv['HAVE_XRANDR'])

conf.Finish()

# Sanity check
if gfxenv['USE_WX'] and not gfxenv['HAVE_WX']:
    print "Must have wx to use wxgl"
    Return()
gfxenv.Append(
	CXXFLAGS = compileFlags,
	LINKFLAGS = linkFlags,
	)

gfxenv.SharedLibrary(
	env['plugin_dir']+name,
	files,
	LIBS =  libs + gfxenv['LIBS']
	)
