ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/build_utils/find_libs.py
Revision: 1.9
Committed: Sat Mar 19 12:58:59 2016 UTC (8 years, 2 months ago) by schorsch
Content type: text/x-python
Branch: MAIN
Changes since 1.8: +11 -1 lines
Log Message:
more flexible gl/glu checks for all platforms

File Contents

# Content
1 from __future__ import print_function
2
3 import os
4
5 from SCons.SConf import SConf # aka Configure
6
7 def find_radlib(env):
8 v = env.FindFile('helvet.fnt', './lib')
9 if not v:
10 print('''
11 Radiance auxiliary support files not found.
12 -> Download from radiance-online.org and extract.
13 ''')
14 env.Exit()
15
16 def find_x11(env):
17 # Search for libX11, remember the X11 library and include dirs
18 for d in ('/usr/X11R6', '/usr/X11', '/usr/openwin'):
19 if os.path.isdir (d):
20 incdir = os.path.join(d, 'include')
21 libdir = os.path.join(d, 'lib')
22 env.Prepend(CPPPATH=[incdir]) # add temporarily
23 env.Prepend(LIBPATH=[libdir])
24 conf = SConf(env)
25 if conf.CheckLibWithHeader('X11', 'X11/X.h', 'C', autoadd=0):
26 env.Replace(X11INCLUDE=incdir)
27 env.Replace(X11LIB=libdir)
28 env['CPPPATH'].remove(incdir) # not needed for now
29 env['LIBPATH'].remove(libdir)
30 if env['X11INCLUDE']:
31 # Check for SGI stereo extension
32 if conf.CheckCHeader('X11/extensions/SGIStereo.h'):
33 env['RAD_STEREO'] = '-DSTEREO'
34 else: env['RAD_STEREO'] = '-DNOSTEREO'
35 env = conf.Finish ()
36 break
37 env = conf.Finish ()
38
39
40 def find_gl(env):
41 # Check for libGL, set flag
42 dl = [(None,None)] # standard search path
43 if env.has_key('X11INCLUDE'): # sometimes found there (Darwin)
44 dl.append((env['X11INCLUDE'], env['X11LIB']))
45 for incdir, libdir in dl:
46 if incdir: env.Prepend(CPPPATH=[incdir]) # add temporarily
47 if libdir: env.Prepend(LIBPATH=[libdir])
48 conf = SConf(env)
49 if (conf.CheckLib('GL')
50 or conf.CheckLib('opengl32')
51 or conf.CheckCHeader('OpenGL/gl.h')
52 or conf.CheckCHeader('GL/gl.h')):
53 env['OGL'] = 1
54 if os.name == 'nt':
55 if (conf.CheckLib('GLU') # for winrview
56 or conf.CheckLib('glu32')
57 or conf.CheckCHeader('OpenGL/glu.h')):
58 env['GLU'] = 1
59 if incdir: env['CPPPATH'].remove(incdir) # not needed for now
60 if libdir: env['LIBPATH'].remove(libdir)
61 if env.has_key('OGL'):
62 if incdir: env.Replace(OGLINCLUDE=[incdir])
63 if env.has_key('GLU'):
64 if incdir: env.Replace(GLUINCLUDE=[incdir])
65 #if libdir: env.Replace(OGLLIB=[libdir])
66 conf.Finish()
67 break
68 conf.Finish()
69
70
71 def find_libtiff(env):
72 # Check for libtiff, set flag and include/lib directories
73 dl = [ (None,None), ] # standard search path
74 cfgi = env.get('TIFFINCLUDE')
75 cfgl = env.get('TIFFLIB')
76 if cfgi or cfgl:
77 dl.insert(0,(cfgi, cfgl))
78 for incdir, libdir in dl:
79 xenv = env.Clone()
80 if incdir: xenv.Prepend(CPPPATH=[incdir]) # add temporarily
81 if libdir:
82 xenv.Prepend(LIBPATH=[libdir])
83 xenv.Prepend(PATH=[libdir])
84 conf = SConf(xenv)
85 libname = 'tiff'
86 if os.name == 'nt':
87 xenv['INCPREFIX'] = '/I ' # Bug in SCons (uses '/I')
88 libname = 'libtiff'
89 if conf.CheckLib(libname, 'TIFFInitSGILog',
90 header='''#include "tiff.h"''', autoadd=0):
91 env['TIFFLIB_INSTALLED'] = 1
92 if env.has_key('TIFFLIB_INSTALLED'):
93 env.Replace(RAD_LIBTIFF=libname)
94 if incdir: env.Replace(RAD_TIFFINCLUDE=[incdir])
95 if libdir: env.Replace(RAD_TIFFLIB=[libdir])
96 conf.Finish()
97 break
98 conf.Finish()
99