import distutils.sysconfig, os
import sys

Import('shared_env')

swig_env = shared_env.Clone()
swig_env.Replace( SWIGFLAGS=['-c++', '-python'],
				 SHLIBPREFIX="_")
# apparently neither windows nor OSX accepts default dynamic
# library extension for python modules...
#if sys.platform == "win32":
#	swig_env.Replace(LDMODULESUFFIX = '.pyd')
if sys.platform == "darwin":
	swig_env.Replace(LDMODULESUFFIX = '.so', LDMODULEPREFIX="_")

swig_env.Append(CPPPATH=[distutils.sysconfig.get_python_inc()] )
swig_env.Append(LIBS = [ shared_env['YF_CORELIB'], 'yafarayplugin'] )
swig_env.Append(LIBPATH = ['#build/yafraycore', '#build/interface', shared_env['YF_PYTHON_LIBPATH'] ])
swig_env.Append(CPPDEFINES= ['BUILDING_YAFRAYPLUGIN'])
swig_env.Append(FRAMEWORKS=['Python'])

swig_qt_env = swig_env.Clone()
swig_qt_env.Append(LIBS = ['yafarayqt'], LIBPATH = ['#build/gui'])

src = [	'yafrayinterface.i']
if sys.platform == "darwin":
	pyif = swig_env.LoadableModule(target='yafrayinterface', source=src)
else:
	pyif = swig_env.SharedLibrary(target='yafrayinterface', source=src)
Alias('swig', pyif )

if sys.platform == "win32":
	pytargets = ['#bindings/python/_yafrayinterface.pyd']
	InstallAs(target = pytargets, source = ['#build/bindings/_yafrayinterface.dll'] )
	Alias('swig', pytargets )
else:
	pytargets = Install(dir = '#bindings/python', source = pyif )
	Alias('swig', pytargets )
	Alias('swig_install', shared_env.InstallAs('$YF_BINDINGS/_yafrayinterface.so', pyif))
	Alias('swig_install', shared_env.InstallAs('$YF_BINDINGS/yafrayinterface.py', '#build/bindings/yafrayinterface.py'))

swig_env.Command( '#bindings/python/yafrayinterface.py', '#build/bindings/yafrayinterface.py', Copy('$TARGET', '$SOURCE'))
Alias('swig', '#bindings/python/yafrayinterface.py')

if swig_env['WITH_YF_QT']:
	if sys.platform == "darwin":
		pyqt = swig_qt_env.LoadableModule(target='yafqt', source=['renderwidget.i'])
	else:
		pyqt = swig_qt_env.SharedLibrary(target='yafqt', source=['renderwidget.i'])
	Alias('swig', pyqt)
	
	if sys.platform == "win32":
		pyqttarget = '#bindings/python/_yafqt.pyd'
		InstallAs(target = pyqttarget, source = ['#build/bindings/_yafqt.dll'] )
		Alias('swig', pyqttarget )
	else:
		pyqttarget = Install(dir = '#bindings/python', source = pyqt )
		Alias('swig_install', shared_env.InstallAs('$YF_BINDINGS/_yafqt.so', pyqt))
		Alias('swig_install', shared_env.InstallAs('$YF_BINDINGS/yafqt.py', '#build/bindings/yafqt.py'))
		Alias('swig', pyqttarget )
	swig_env.Command( '#bindings/python/yafqt.py', '#build/bindings/yafqt.py', Copy('$TARGET', '$SOURCE'))
	Alias('swig', '#bindings/python/yafqt.py')
