ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/SConstruct
Revision: 1.15
Committed: Sun Mar 6 01:13:17 2016 UTC (8 years ago) by schorsch
Branch: MAIN
Changes since 1.14: +1 -1 lines
Log Message:
Prepare for SCons build on Win32 and Win64

File Contents

# Content
1
2 import os
3 import sys
4 import string
5
6 OPTFILE = 'rayopts.py'
7 def set_opts(env):
8 # XXX add some caching
9 vars = Variables(OPTFILE, ARGUMENTS)
10 vars.Add('SKIP', 'Skip Display of License terms', 0)
11 vars.Add('RAD_BINDIR', 'Install executables here', env['RAD_BINDIR'])
12 vars.Add('RAD_RLIBDIR', 'Install support files here', env['RAD_RLIBDIR'])
13 vars.Add('RAD_MANDIR', 'Install man pages here', env['RAD_MANDIR'])
14 vars.Add('RAD_DEBUG', 'Build a debug version', 0)
15 vars.Update(env)
16 vars.Save(OPTFILE, env)
17 Help(vars.GenerateHelpText(env, sort=cmp))
18 # where stuff is located in the source tree
19 env['RAD_BUILDLIB'] = '#src/lib'
20 env['RAD_BUILDBIN'] = '#bin'
21 env['RAD_BUILDRLIB'] = '#lib'
22 env['RAD_BUILDMAN'] = '#doc/man'
23
24 def allplats_setup(env):
25 from build_utils import find_libs
26 find_libs.find_radlib(env)
27 find_libs.find_x11(env)
28 find_libs.find_gl(env) # OpenGL
29 find_libs.find_libtiff(env)
30
31 def post_common_setup(env):
32 env.Append(CPPPATH = [os.path.join('#src', 'common')])
33 env.Append(LIBPATH=['../lib']) # our own libs
34 if not env.has_key('RAD_MLIB'):
35 env['RAD_MLIB'] = [] #['m'] # no seperate mlib on Win
36
37 def shareinstall_setup(env):
38 from build_utils import install
39 # only scan for those files when we actually need them
40 if 'install' in sys.argv or 'rlibinstall' in sys.argv:
41 install.install_rlibfiles(env)
42 if 'install' in sys.argv or 'maninstall' in sys.argv:
43 install.install_manfiles(env)
44
45 # Set up build environment
46 env = Environment()
47 env.Decider('timestamp-match')
48
49 if os.name == 'posix':
50 from build_utils import install
51 script_b = Builder(action = install.install_script, suffix = '')
52 env.Append(BUILDERS={'InstallScript': script_b})
53 tclscript_b = Builder(action = install.install_tclscript, suffix = '')
54 env.Append(BUILDERS={'InstallTCLScript': tclscript_b})
55
56 # configure platform-specific stuff
57 from build_utils import load_plat
58 load_plat.load_plat(env, ARGUMENTS, ourplat=None)
59
60 # override options
61 set_opts(env)
62
63 # accept license
64 if ((not env['SKIP']
65 or env['SKIP'].strip().lower() in (0,'0','no','false'))
66 and not '-c' in sys.argv and not 'test' in sys.argv):
67 from build_utils import copyright
68 copyright.show_license()
69
70 # fill in generic config
71 allplats_setup(env)
72
73 # Bring in all the actual things to build
74 Export('env')
75 if 'test' in sys.argv:
76 SConscript(os.path.join('test', 'SConscript'))
77
78 else:
79 SConscript(os.path.join('src', 'common', 'SConscript'))
80 post_common_setup(env)
81 for d in Split('meta cv gen ot rt px hd util cal'):
82 print d
83 SConscript(os.path.join('src', d, 'SConscript'))
84
85 if string.find(string.join(sys.argv[1:]), 'install') > -1:
86 shareinstall_setup(env)
87
88 Default('.')
89
90 # virtual targets
91 env.Alias('bininstall', '$RAD_BINDIR')
92 env.Alias('rlibinstall', '$RAD_RLIBDIR')
93 env.Alias('maninstall', '$RAD_MANDIR')
94
95 env.Alias('build', ['#bin'])
96 env.Alias('test', ['#test'])
97 env.Alias('install', ['bininstall', 'rlibinstall', 'maninstall'])
98
99 # vim: set syntax=python: