| author | Radek Brich <radek.brich@devl.cz> | 
| Mon, 05 May 2008 15:31:14 +0200 | |
| branch | pyrit | 
| changeset 92 | 9af5c039b678 | 
| parent 91 | 9d66d323c354 | 
| child 93 | 96d65f841791 | 
| permissions | -rw-r--r-- | 
| 92 
9af5c039b678
add MSVC compiler support, make it default for Windows
 Radek Brich <radek.brich@devl.cz> parents: 
91diff
changeset | 1 | Import('env buildmodule cc')
 | 
| 60 | 2 | |
| 92 
9af5c039b678
add MSVC compiler support, make it default for Windows
 Radek Brich <radek.brich@devl.cz> parents: 
91diff
changeset | 3 | myenv = env.Clone(CPPPATH = '#include') | 
| 
9af5c039b678
add MSVC compiler support, make it default for Windows
 Radek Brich <radek.brich@devl.cz> parents: 
91diff
changeset | 4 | pyenv = myenv.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 = [ | |
| 78 
9569e9f35374
move shapes to extra source file
 Radek Brich <radek.brich@devl.cz> parents: 
65diff
changeset | 19 | 'raytracer.cc', 'scene.cc', 'shapes.cc', 'sampler.cc', | 
| 79 
062b1c4143f7
material and texture classes moved to material.(cc,h)
 Radek Brich <radek.brich@devl.cz> parents: 
78diff
changeset | 20 | 'container.cc', 'kdtree.cc', 'octree.cc', 'material.cc', | 
| 88 
f7edb3b90816
merge pixmap handling from sampler, material.h and ccdemos's image module to new Pixmap class
 Radek Brich <radek.brich@devl.cz> parents: 
79diff
changeset | 21 | 'serialize.cc', 'pixmap.cc'] | 
| 60 | 22 | |
| 23 | objs = [] | |
| 24 | shared_objs = [] | |
| 25 | for src in sources: | |
| 92 
9af5c039b678
add MSVC compiler support, make it default for Windows
 Radek Brich <radek.brich@devl.cz> parents: 
91diff
changeset | 26 | objs.append( myenv.Object(src) ) | 
| 
9af5c039b678
add MSVC compiler support, make it default for Windows
 Radek Brich <radek.brich@devl.cz> parents: 
91diff
changeset | 27 | shared_objs.append( myenv.SharedObject(src) ) | 
| 60 | 28 | |
| 91 | 29 | if buildmodule: | 
| 92 
9af5c039b678
add MSVC compiler support, make it default for Windows
 Radek Brich <radek.brich@devl.cz> parents: 
91diff
changeset | 30 | if cc == 'gcc': | 
| 
9af5c039b678
add MSVC compiler support, make it default for Windows
 Radek Brich <radek.brich@devl.cz> parents: 
91diff
changeset | 31 | ccflags = '$CCFLAGS -Wno-write-strings' | 
| 
9af5c039b678
add MSVC compiler support, make it default for Windows
 Radek Brich <radek.brich@devl.cz> parents: 
91diff
changeset | 32 | else: | 
| 
9af5c039b678
add MSVC compiler support, make it default for Windows
 Radek Brich <radek.brich@devl.cz> parents: 
91diff
changeset | 33 | ccflags = '$CCFLAGS' | 
| 91 | 34 | 	pymodule = pyenv.SharedLibrary('pyrit',
 | 
| 35 | ['raytracermodule.cc']+shared_objs, | |
| 92 
9af5c039b678
add MSVC compiler support, make it default for Windows
 Radek Brich <radek.brich@devl.cz> parents: 
91diff
changeset | 36 | SHLIBPREFIX = '', CCFLAGS = ccflags) | 
| 91 | 37 | 	env.Alias('shared-objs', shared_objs)
 | 
| 38 | 	env.Alias('python-module', pymodule)
 | |
| 39 | 	Return('pymodule')
 | |
| 40 | else: | |
| 92 
9af5c039b678
add MSVC compiler support, make it default for Windows
 Radek Brich <radek.brich@devl.cz> parents: 
91diff
changeset | 41 | 	lib = myenv.StaticLibrary('pyrit', objs)
 | 
| 91 | 42 | 	env.Alias('objs', objs)
 | 
| 43 | 	env.Alias('static-lib', lib)
 | |
| 44 | 	Return('lib')
 |