ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/rt/SConscript
Revision: 1.18
Committed: Fri Mar 18 22:58:46 2016 UTC (8 years, 1 month ago) by schorsch
Branch: MAIN
CVS Tags: rad5R1
Changes since 1.17: +14 -10 lines
Log Message:
create a seperate grouping for the files needed by rvu display drivers

File Contents

# Content
1 import os
2 from build_utils import vstamp
3
4 Import('env') # inherit from parent
5
6 mlib = env['RAD_MLIB']
7
8 # compose paths
9 def radbin(name): return os.path.join(env['RAD_BUILDBIN'], name)
10 def radlib(name): return os.path.join(env['RAD_BUILDLIB'], name)
11
12 # custom compile flags
13 dielectric = env.Object(source='dielectric.c',
14 CCFLAGS=env.get('CCFLAGS',[]) + ['-DDISPERSE'])
15
16 duphead = env.Object(source="duphead.c")
17 persist = env.Object(source="persist.c")
18 ambio = env.Object(source="ambio.c")
19 rayfifo = env.Object(source="rayfifo.c")
20 raypwin = env.Object(source="raypwin.c")
21 raycalls = env.Object(source="raycalls.c")
22 pmaptype = env.Object(source="pmaptype.c")
23 pmapparm = env.Object(source="pmapparm.c")
24
25
26 # source and object dependencies
27 RAY = Split('''ambcomp.c ambient.c freeobjmem.c initotypes.c preload.c
28 raytrace.c renderopts.c''') + [ambio]
29 PMAP = Split('''pmap.c pmapsrc.c pmapmat.c pmaprand.c pmapio.c pmapdata.c
30 pmapbias.c pmapcontrib.c pmapamb.c pmapray.c pmapopt.c pmapdiag.c '''
31 ) + [pmaptype, pmapparm]
32 SURF = Split('''srcsamp.c srcsupp.c srcobstr.c source.c virtuals.c sphere.c
33 o_face.c o_cone.c o_instance.c o_mesh.c''')
34 MAT = Split('''aniso.c normal.c m_clip.c glass.c m_brdf.c m_mirror.c
35 m_direct.c m_mist.c fprism.c m_alias.c m_bsdf.c ashikhmin.c '''
36 ) + [dielectric]
37 MOD = Split('p_func.c t_func.c p_data.c t_data.c text.c mx_func.c mx_data.c')
38 SUP = Split('func.c noise3.c data.c')
39
40 # build libraries
41 rsrc = RAY + PMAP + SURF + MAT + MOD + SUP
42 env.Command('Version.c', 'VERSION', vstamp.build_version_c)
43 env.Depends('Version.c', rsrc)
44 Version = env.Object(source=['Version.c'])
45 env.version = Version # make it remotely accessible
46 tracelib = env.Library(target=radlib('rttrace'), source=rsrc + [Version])
47
48 rclib = env.Library(target=radlib('raycalls'),
49 source=Split('raycalls.c $RAD_PCALLS'))
50 Default(rclib)
51
52 rtmain = env.Object(source=['rtmain.c'],
53 CCFLAGS=env.get('CCFLAGS',[]) + ['-DNICE=4'])
54
55 # build executables
56 PROGS = [
57 ('mkpmap', ['mkpmap.c', Version],
58 ['rttrace', 'rtrad', '$RAD_SOCKETLIB', mlib]),
59 ('pmapdump', ['pmapdump.c', pmaptype, pmapparm, Version],
60 ['rtrad', '$RAD_SOCKETLIB', mlib]),
61 ('lookamb', ['lookamb.c', ambio], ['rtrad', mlib]),
62 ('rcontrib', Split('rcmain.c rcontrib.c rc2.c rc3.c') + [Version],
63 ['rttrace', 'rtrad', '$RAD_SOCKETLIB', mlib]),
64 ('rtrace', ['rtrace.c', duphead, persist, rtmain, rayfifo, raypwin, raycalls],
65 ['rttrace', 'rtrad'] + mlib),
66 ('rpict', Split('rpmain.c rpict.c srcdraw.c') + [duphead, persist],
67 ['rttrace', 'rtrad', '$RAD_SOCKETLIB']+mlib),
68 ]
69 for p in PROGS:
70 prog = env.Program(target=radbin(p[0]), source = p[1], LIBS = p[2]),
71 Default(prog)
72 env.Append(RAD_BININSTALL=[env.Install('$RAD_BINDIR', prog)])
73
74 # we need RVOBJS for any derived viewers, such as winrview
75 if os.name == 'nt': RV_DEF = ['WIN_RVIEW']
76 else: RV_DEF = []
77 rvmain = env.Object(source='rvmain.c',
78 CCFLAGS=env['CCFLAGS'] + ['-DNICE=6'])
79 rvobjs = [rvmain]
80 for src in Split('''rview.c rv2.c rv3.c
81 devtable.c devcomm.c colortab.c editline.c'''):
82 rvobjs.append(env.Object(source=src,
83 CPPDEFINES=env.get('CPPDEFINES', []) + RV_DEF))
84 env['RVOBJS'] = rvobjs
85
86 if env.has_key('X11LIB'): # lots of special requirements for rvu
87 x11incls = [env['X11INCLUDE']] + env['CPPPATH']
88 x11 = env.Object(source='x11.c', CPPPATH=x11incls)
89 x11twind = env.Object(source='x11twind.c', CPPPATH=x11incls)
90 rvxobjs = [x11, x11twind]
91 rvsrc = rvobjs + rvxobjs
92 rvu = env.Program(target=radbin('rvu'), source=rvsrc,
93 LIBPATH=env['LIBPATH'] + [env['X11LIB']],
94 LIBS = ([rclib, 'rttrace', 'rtrad', 'X11'] + mlib)
95 )
96 Default(rvu)
97 env.Append(RAD_BININSTALL=[env.Install('$RAD_BINDIR', rvu)])
98
99 LIBFILES = Split('rayinit.cal')
100 env.Append(RAD_RLIBINSTALL=[env.Install('$RAD_RLIBDIR', LIBFILES)])
101
102 # vim: set syntax=python: