# -*- 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_Color.cpp',
	'VertexLoader_Normal.cpp',
	'VertexLoader_Position.cpp',
	'VertexLoader_TextCoord.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 gfxenv['HAVE_WX']:
	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'
			]




        
tests = {'CheckPKG' : utils.CheckPKG}
conf = gfxenv.Configure(custom_tests = tests)

if not (conf.CheckPKG('gl') and conf.CheckPKG('glu')):
        print name + " must have opengl (gl and glu) to be build"
        Return()


# check for xxf86vm
        
gfxenv['HAVE_XXF86VM'] =  conf.CheckPKG('xxf86vm')

gfxenv = conf.Finish()

if gfxenv['HAVE_XXF86VM']:
        gfxenv.ParseConfig("pkg-config xxf86vm --cflags --libs")

gfxenv.ParseConfig("pkg-config gl --cflags --libs")
gfxenv.ParseConfig("pkg-config glu --cflags --libs")

if sys.platform == 'darwin':

	# 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 [ 'Cg' ]
		]
else:
	# Libraries without pkg-config support.
	libs += [ 'Cg', 'CgGL' ]


# change to True if you want to compile with SDL
useSDL = not (gfxenv['HAVE_X11'] and gfxenv['HAVE_XXF86VM'])


if useSDL and not gfxenv['HAVE_SDL']:
        print name + " must have either X11 or sdl to be build"
        Return()

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

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

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