| author | Radek Brich <radek.brich@devl.cz> | 
| Fri, 11 Apr 2008 00:13:59 +0200 | |
| branch | pyrit | 
| changeset 66 | c5b89d16497a | 
| parent 65 | 242839c6d27d | 
| child 78 | 9569e9f35374 | 
| permissions | -rw-r--r-- | 
| 63 
440e1ae80459
add many SCons targets (see DEVNOTES)
 Radek Brich <radek.brich@devl.cz> parents: 
61diff
changeset | 1 | Import('env')
 | 
| 
440e1ae80459
add many SCons targets (see DEVNOTES)
 Radek Brich <radek.brich@devl.cz> parents: 
61diff
changeset | 2 | env.Append(CPPPATH = '#include') | 
| 60 | 3 | |
| 4 | pyenv = env.Clone() | |
| 65 
242839c6d27d
basic detection of compiler (GCC or ICC) and CPU capabilities
 Radek Brich <radek.brich@devl.cz> parents: 
63diff
changeset | 5 | if env['PLATFORM'] == 'win32': | 
| 
242839c6d27d
basic detection of compiler (GCC or ICC) and CPU capabilities
 Radek Brich <radek.brich@devl.cz> parents: 
63diff
changeset | 6 | import sys | 
| 
242839c6d27d
basic detection of compiler (GCC or ICC) and CPU capabilities
 Radek Brich <radek.brich@devl.cz> parents: 
63diff
changeset | 7 | pythonver = '%c%c' % (sys.version[0], sys.version[2]) | 
| 
242839c6d27d
basic detection of compiler (GCC or ICC) and CPU capabilities
 Radek Brich <radek.brich@devl.cz> parents: 
63diff
changeset | 8 | pythonlib = 'python'+pythonver | 
| 
242839c6d27d
basic detection of compiler (GCC or ICC) and CPU capabilities
 Radek Brich <radek.brich@devl.cz> parents: 
63diff
changeset | 9 | pythonpath = [env['pythonpath'], | 
| 
242839c6d27d
basic detection of compiler (GCC or ICC) and CPU capabilities
 Radek Brich <radek.brich@devl.cz> parents: 
63diff
changeset | 10 | 'C:\\Program Files\\Python'+pythonver] | 
| 
242839c6d27d
basic detection of compiler (GCC or ICC) and CPU capabilities
 Radek Brich <radek.brich@devl.cz> parents: 
63diff
changeset | 11 | pyenv.Append(LIBS=pythonlib) | 
| 
242839c6d27d
basic detection of compiler (GCC or ICC) and CPU capabilities
 Radek Brich <radek.brich@devl.cz> parents: 
63diff
changeset | 12 | pyenv.Append(CPPPATH=[s+'\\include' for s in pythonpath]) | 
| 
242839c6d27d
basic detection of compiler (GCC or ICC) and CPU capabilities
 Radek Brich <radek.brich@devl.cz> parents: 
63diff
changeset | 13 | pyenv.Append(LIBPATH=[s+'\\libs' for s in pythonpath]) | 
| 
242839c6d27d
basic detection of compiler (GCC or ICC) and CPU capabilities
 Radek Brich <radek.brich@devl.cz> parents: 
63diff
changeset | 14 | pyenv.Replace(SHLIBSUFFIX='.pyd') | 
| 
242839c6d27d
basic detection of compiler (GCC or ICC) and CPU capabilities
 Radek Brich <radek.brich@devl.cz> parents: 
63diff
changeset | 15 | else: | 
| 
242839c6d27d
basic detection of compiler (GCC or ICC) and CPU capabilities
 Radek Brich <radek.brich@devl.cz> parents: 
63diff
changeset | 16 | 	pyenv.ParseConfig('python-config --includes --libs')
 | 
| 60 | 17 | |
| 18 | sources = [ | |
| 19 | 'raytracer.cc', 'scene.cc', 'sampler.cc', | |
| 20 | 'container.cc', 'kdtree.cc', 'octree.cc', 'noise.cc'] | |
| 21 | ||
| 22 | objs = [] | |
| 23 | shared_objs = [] | |
| 24 | for src in sources: | |
| 25 | objs.append( env.Object(src) ) | |
| 26 | shared_objs.append( env.SharedObject(src) ) | |
| 27 | ||
| 65 
242839c6d27d
basic detection of compiler (GCC or ICC) and CPU capabilities
 Radek Brich <radek.brich@devl.cz> parents: 
63diff
changeset | 28 | pymodule = pyenv.SharedLibrary('raytracer',
 | 
| 60 | 29 | ['raytracermodule.cc']+shared_objs, | 
| 30 | SHLIBPREFIX = '', | |
| 31 | CCFLAGS = '$CCFLAGS -Wno-write-strings') | |
| 32 | ||
| 61 | 33 | lib = env.StaticLibrary('pyrit', objs)
 | 
| 34 | ||
| 63 
440e1ae80459
add many SCons targets (see DEVNOTES)
 Radek Brich <radek.brich@devl.cz> parents: 
61diff
changeset | 35 | env.Alias('objs', objs)
 | 
| 
440e1ae80459
add many SCons targets (see DEVNOTES)
 Radek Brich <radek.brich@devl.cz> parents: 
61diff
changeset | 36 | env.Alias('static-lib', lib)
 | 
| 
440e1ae80459
add many SCons targets (see DEVNOTES)
 Radek Brich <radek.brich@devl.cz> parents: 
61diff
changeset | 37 | env.Alias('shared-objs', shared_objs)
 | 
| 
440e1ae80459
add many SCons targets (see DEVNOTES)
 Radek Brich <radek.brich@devl.cz> parents: 
61diff
changeset | 38 | env.Alias('python-module', pymodule)
 | 
| 
440e1ae80459
add many SCons targets (see DEVNOTES)
 Radek Brich <radek.brich@devl.cz> parents: 
61diff
changeset | 39 | env.Alias('libs', ['static-lib', 'python-module'])
 | 
| 
440e1ae80459
add many SCons targets (see DEVNOTES)
 Radek Brich <radek.brich@devl.cz> parents: 
61diff
changeset | 40 | |
| 61 | 41 | Return('lib pymodule')
 |