4 # taken from scons wiki
5 def CheckPKGConfig(context
, version
):
6 context
.Message( 'Checking for pkg-config version > %s... ' % version
)
7 ret
= context
.TryAction('pkg-config --atleast-pkgconfig-version=%s' % version
)[0]
11 def CheckFramework(context
, name
):
13 if (platform
.system().lower() == 'darwin'):
14 context
.Message( '\nLooking for framework %s... ' % name
)
15 lastFRAMEWORKS
= context
.env
['FRAMEWORKS']
16 context
.env
.Append(FRAMEWORKS
= [name
])
17 ret
= context
.TryLink("""
18 int main(int argc, char **argv) {
23 context
.env
.Replace(FRAMEWORKS
= lastFRAMEWORKS
)
28 def CheckFink(context
):
29 context
.Message( 'Looking for fink... ')
30 prog
= context
.env
.WhereIs('fink')
33 prefix
= prog
.rsplit(os
.sep
, 2)[0]
34 context
.env
.Append(LIBPATH
= [prefix
+ os
.sep
+'lib'],
35 CPPPATH
= [prefix
+ os
.sep
+'include'])
36 context
.Message( 'Adding fink lib and include path')
43 def CheckMacports(context
):
44 context
.Message( 'Looking for macports... ')
45 prog
= context
.env
.WhereIs('port')
48 prefix
= prog
.rsplit(os
.sep
, 2)[0]
49 context
.env
.Append(LIBPATH
= [prefix
+ os
.sep
+ 'lib'],
50 CPPPATH
= [prefix
+ os
.sep
+ 'include'])
51 context
.Message( 'Adding port lib and include path')
58 # TODO: We should use the scons one instead
59 def CheckLib(context
, name
):
60 context
.Message( 'Looking for lib %s... ' % name
)
61 lastLIBS
= context
.env
['LIBS']
62 context
.env
.Append(LIBS
= [name
])
63 ret
= context
.TryLink("""
64 int main(int argc, char **argv) {
69 context
.env
.Replace(LIBS
= lastLIBS
)
73 def ConfigPKG(context
, name
):
74 context
.Message( '\nUsing pkg-config for %s... ' % name
)
75 ret
= context
.TryAction('pkg-config --exists \'%s\'' % name
)[0]
78 context
.env
.ParseConfig('pkg-config --cflags --libs \'%s\'' % name
)
81 def CheckPKG(context
, name
):
82 context
.Message( 'Checking for %s... ' % name
)
83 if platform
.system().lower() == 'windows':
86 if not CheckFramework(context
, name
):
87 if not ConfigPKG(context
, name
.lower()):
88 ret
= CheckLib(context
, name
)
95 def CheckSDL(context
, version
):
96 context
.Message( 'Checking for sdl lib version > %s... ' % version
)
97 if platform
.system().lower() == 'windows':
99 sdl_config
= context
.env
.WhereIs('sdl-config')
100 if sdl_config
== None:
103 found_ver
= os
.popen('sdl-config --version').read().strip()
104 required
= [int(n
) for n
in version
.split(".")]
105 found
= [int(n
) for n
in found_ver
.split(".")]
106 ret
= (found
>= required
)
110 context
.env
.ParseConfig('sdl-config --cflags --libs')
113 def CheckPortaudio(context
, version
):
115 if CheckPKG(context
, 'portaudio'):
116 context
.Message( 'Checking for lib portaudio version > %s... ' % version
)
117 found
= context
.TryRun("""
118 #include <portaudio.h>
120 int main(int argc, char **argv) {
121 printf("%d", Pa_GetVersion());
127 ret
= (version
<= found
)
136 def GenerateRevFile(flavour
, template
, output
):
139 svnrev
= os
.popen('svnversion .').read().strip().split(':')[0]
143 revstr
= svnrev
+ "-" + flavour
144 tmpstr
= open(template
, "r").read().replace("$WCMODS?$WCREV$M:$WCREV$$",revstr
)
145 outfile
= open(output
, 'w')
146 outfile
.write(tmpstr
+"\n")