Updated to compile:
- KdTree+Octree: max_depth changed to static const (this should be configured at compile time)
- wget tool replaced by curl, which is now more widespread
- added CMakeLists (to eventually replace SCons)
- various fixes
Import('env pyenv buildmodule cc')sources = [ 'common.cc', 'raytracer.cc', 'sampler.cc', 'scene.cc', 'shapes.cc', 'material.cc', 'pixmap.cc', 'serialize.cc', 'container.cc', 'kdtree.cc', 'octree.cc']includes = [ 'common.h', 'container.h', 'kdtree.h', 'material.h', 'matrix.h', 'mempool.h', 'octree.h', 'pixmap.h', 'quaternion.h', 'raytracer.h', 'raytracermodule.h', 'sampler.h', 'scene.h', 'serialize.h', 'shapes.h', 'simd.h', 'vector.h']if buildmodule: shared_objs = [] for src in sources: shared_objs.append( pyenv.SharedObject(src) ) if cc == 'gcc': ccflags = '$CCFLAGS -Wno-write-strings' else: ccflags = '$CCFLAGS' if cc == 'msvc': linkflags = '$LINKFLAGS /export:initpyrit' else: linkflags = '$LINKFLAGS' pymodule = pyenv.SharedLibrary('pyrit', ['raytracermodule.cc']+shared_objs, SHLIBPREFIX = '', CCFLAGS = ccflags, LINKFLAGS=linkflags) if cc == 'msvc': pyenv.AddPostAction(pymodule, 'mt /nologo /manifest ${TARGET}.manifest /outputresource:$TARGET;2') env.Alias('shared-objs', shared_objs) env.Alias('python-module', pymodule) if cc == 'msvc': # MS Visual Studio Project vcprojsrcs = [] for src in sources+['raytracermodule.cc']: vcprojsrcs += ['src/' + src] vcprojincs = [] for inc in includes: vcprojincs += ['include/' + inc] vcproj = env.MSVSProject( auto_build_solution=0, target = '#pyrit_module' + env['MSVSPROJECTSUFFIX'], srcs = vcprojsrcs, incs = vcprojincs, buildtarget = 'python-module', variant = 'Release') Return(('pymodule', 'vcproj')) Return('pymodule')else: objs = [] for src in sources: o = env.Object(src) objs.append( o ) if src == 'common.cc' or src == 'pixmap.cc': env.Depends(o, '#build/include/config.h') lib = env.StaticLibrary('pyrit', objs) env.Alias('objs', objs) env.Alias('static-lib', lib) Return('lib')