dolphin/SconsTests/utils.py
Soren Jorvang 09b5dfbd53 Prevent Python from stripping off the final newline of the main(){}
autoconfiguration tests. Some versions of gcc care enough about ANSI C
to complain about this.
 
Use the Linux install hierarchy conventions on other Unices as well.
 
XKeysymToString returns NULL on unknown keysyms, which is not a valid
std::string initializer.
 
There appears to be some disagreement regarding the second parameter
to iconv(). Some versions/installations have it as const, others don't.
Unfortunately, due to wonderful C++ brain damage, implicit conversion 
from const to non-const doesn't work here.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5945 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-22 07:55:35 +00:00

98 lines
2.9 KiB
Python

import os
import platform
# taken from scons wiki
def CheckPKGConfig(context, version):
context.Message( 'Checking for pkg-config version > %s... ' % version)
ret = context.TryAction('pkg-config --atleast-pkgconfig-version=%s' % version)[0]
context.Result( ret )
return ret
# TODO: We should use the scons one instead
def CheckLib(context, name):
context.Message( 'Looking for lib %s... ' % name )
lastLIBS = context.env['LIBS']
context.env.Append(LIBS = [name])
ret = context.TryLink("""
int main(int argc, char **argv) {
return 0;
}
\n""", '.c')
if not ret:
context.env.Replace(LIBS = lastLIBS)
return ret
def ConfigPKG(context, name):
context.Message( '\nUsing pkg-config for %s... ' % name )
ret = context.TryAction('pkg-config --exists \'%s\'' % name)[0]
context.Result( ret )
if ret:
context.env.ParseConfig('pkg-config --cflags --libs \'%s\'' % name)
return int(ret)
def CheckPKG(context, name):
context.Message( 'Checking for %s... ' % name )
if platform.system().lower() == 'windows':
return 0
ret = 1
if not ConfigPKG(context, name.lower()):
ret = CheckLib(context, name)
context.Result(ret)
return int(ret)
def CheckSDL(context, version):
context.Message( 'Checking for SDL lib version > %s... ' % version)
if platform.system().lower() == 'windows':
return 1
sdl_config = context.env.WhereIs('sdl-config')
if sdl_config == None:
ret = 0
else:
found_ver = os.popen('sdl-config --version').read().strip()
required = [int(n) for n in version.split(".")]
found = [int(n) for n in found_ver.split(".")]
ret = (found >= required)
context.Result(ret)
if ret:
context.env.ParseConfig('sdl-config --cflags --libs')
ret = CheckLib(context, 'SDL')
return int(ret)
def CheckPortaudio(context, version):
found = 0
if CheckPKG(context, 'portaudio'):
context.Message( 'Checking for lib portaudio version > %s... ' % version)
found = context.TryRun("""
#include <portaudio.h>
#include <stdio.h>
int main(int argc, char **argv) {
printf("%d", Pa_GetVersion());
return 0;
}
\n""", '.c')[1]
if found:
ret = (version <= found)
else:
ret = 0
context.Result(ret)
return int(ret)
def GenerateRevFile(flavour, template, output):
try:
svnrev = os.popen('svnversion .').read().strip().split(':')[0]
except:
svnrev = ""
revstr = svnrev + "-" + flavour
tmpstr = open(template, "r").read().replace("$WCMODS?$WCREV$M:$WCREV$$",revstr)
outfile = open(output, 'w')
outfile.write(tmpstr +"\n")
outfile.close()
return revstr