Import('env', 'sys', 'os') libhw_objects = [ 'session.cpp', 'device.cpp', 'gputexture.cpp', 'gpugeometry.cpp', 'gpuprogram.cpp', 'renderer.cpp', 'glrenderer.cpp', 'glprogram.cpp', 'glgeometry.cpp', 'gltexture.cpp', 'gpusync.cpp', 'glsync.cpp', 'vpl.cpp', 'font.cpp', 'viewer.cpp', 'basicshader.cpp', 'shadow.cpp'] if sys.platform == 'win32': libhw_objects += ['wglsession.cpp', 'wgldevice.cpp', 'wglrenderer.cpp'] elif 'linux' in sys.platform: libhw_objects += ['x11session.cpp', 'x11device.cpp', 'glxdevice.cpp', 'glxrenderer.cpp'] glEnv = env.Clone() glEnv.Append(CPPDEFINES = [['MTS_BUILD_MODULE', 'MTS_MODULE_HW']] ) if glEnv.has_key('GLLIB'): glEnv.Prepend(LIBS=glEnv['GLLIB']) if glEnv.has_key('GLLIBDIR'): glEnv.Prepend(LIBPATH=glEnv['GLLIBDIR']) if glEnv.has_key('GLFLAGS'): glEnv.Prepend(CPPFLAGS=glEnv['GLFLAGS']) if glEnv.has_key('GLINCLUDE'): glEnv.Prepend(CPPPATH=glEnv['GLINCLUDE']) if sys.platform == 'darwin': glEnv_osx = glEnv.Clone() glEnv_osx.ConfigureForObjectiveCPP() libhw_objects += glEnv_osx.SharedObject(['nsglsession.mm', 'nsgldevice.mm', 'nsglrenderer.mm']) libhw = glEnv.SharedLibrary('mitsuba-hw', libhw_objects) if sys.platform == "darwin": glEnv.AddPostAction(libhw, 'install_name_tool -id @rpath/libmitsuba-hw.dylib $TARGET') env.Append(LIBS=['mitsuba-hw']) env.Append(LIBPATH=[os.path.join(env['BUILDDIR'], 'libhw')])