# -*- python -*- 

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

name = "Plugin_VideoOGL"

files = [
	'BPStructs.cpp',
	'Globals.cpp',
	'GLUtil.cpp',
	'main.cpp',
	'Config.cpp',
	'memcpy_amd.cpp',
	'OpcodeDecoding.cpp',
	'PixelShaderManager.cpp',
	'rasterfont.cpp',
	'Render.cpp',
	'TextureMngr.cpp',
	'ImageWrite.cpp',
	'NativeVertexFormat.cpp',
	'VertexManager.cpp',
	'VertexLoader.cpp',
	'VertexLoader_Normal.cpp',
	'VertexLoaderManager.cpp',
	'VertexShaderManager.cpp',
	'TextureConverter.cpp',
	'XFB.cpp',
	'Logging/Console.cpp',
	'Logging/Logging.cpp',
	]
compileFlags = [
	'-fPIC',
	]
linkFlags = [
	]
libs = [
	'videocommon', 'common', 'GLEW',
	]

gfxenv = env.Clone()

if not gfxenv['osx64']:
	files += [
	'GUI/ConfigDlg.cpp',
	'Debugger/Debugger.cpp',
	'Debugger/PBView.cpp',
	]

if gfxenv['osx64']:
	files += [ 'cocoaGL.m' ]
	compileFlags +=	[
			'-x',
			'objective-c++',
			]
	linkFlags += 	[
			'-framework',
			'cocoa',
			'-arch',
			'x86_64'
			]

if sys.platform == 'darwin':
	# SDL is currently the only way to get video on Mac OS X.
	if gfxenv['osx64']:
		useSDL = False
	else:
		useSDL = True
	# TODO: clean it up (use incpath and libpath)
	# Use libraries from MacPorts.
	compileFlags.append('-I/opt/local/include')
	linkFlags.append('-L/opt/local/lib')
	# Use frameworks instead of plain libs, when possible.
	linkFlags += [
		'-Wl,-framework,%s' % framework
		for framework in [ 'OpenGL', 'Cg' ]
		]
else:
	# By default, GLX is used on Linux to setup OpenGL, but you can select SDL
	# instead if you like, by changing the line below.
        tests = {'CheckPKG' : utils.CheckPKG}

        conf = gfxenv.Configure(custom_tests = tests)

        if not conf.CheckPKG('x11'):
                Exit(1)
                
        if not conf.CheckPKG('xxf86vm'):
                Exit(1)

        gfxenv = conf.Finish()
        
	useSDL = False
	gfxenv.ParseConfig("pkg-config x11 --cflags --libs")
	gfxenv.ParseConfig("pkg-config xxf86vm --cflags --libs")

	# Libraries without pkg-config support.
	libs += [ 'GL', 'Cg', 'CgGL' ]



if useSDL:                    
	compileFlags += [ '-DUSE_SDL=1' ]

gfxenv.Append(
	CXXFLAGS = compileFlags,
	LINKFLAGS = linkFlags,
	)

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