mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2024-11-15 05:47:56 -07:00
93bb45aaf2
wx-config keeps returning -arch i386, breaking 64-bit builds. Thats the only place where a tuple occurs, filtering out non-strings should be fine for now until we find a better way to do this. This commit only affects Mac OSX. utils.py is reverted on purpose. if anything like this happens again, it will most likely fail and indicate more work. Thanks to tmator and knatsch who tested the patch on r4843 git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4851 8ced0084-cf51-0410-be5f-012b33b47a6e
159 lines
4.5 KiB
Python
159 lines
4.5 KiB
Python
import os
|
|
import platform
|
|
|
|
# methods that should be added to env
|
|
def filterWarnings(self, flags):
|
|
return ' '.join(
|
|
flag
|
|
for flag in flags
|
|
if not flag.startswith('-W')
|
|
)
|
|
|
|
# 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
|
|
|
|
def CheckFramework(context, name):
|
|
ret = 0
|
|
if (platform.system().lower() == 'darwin'):
|
|
context.Message( '\nLooking for framework %s... ' % name )
|
|
lastFRAMEWORKS = context.env['FRAMEWORKS']
|
|
context.env.Append(FRAMEWORKS = [name])
|
|
ret = context.TryLink("""
|
|
int main(int argc, char **argv) {
|
|
return 0;
|
|
}
|
|
""", '.c')
|
|
if not ret:
|
|
context.env.Replace(FRAMEWORKS = lastFRAMEWORKS
|
|
)
|
|
|
|
return ret
|
|
|
|
|
|
def CheckFink(context):
|
|
context.Message( 'Looking for fink... ')
|
|
prog = context.env.WhereIs('fink')
|
|
if prog:
|
|
ret = 1
|
|
prefix = prog.rsplit(os.sep, 2)[0]
|
|
context.env.Append(LIBPATH = [prefix + os.sep +'lib'],
|
|
CPPPATH = [prefix + os.sep +'include'])
|
|
context.Message( 'Adding fink lib and include path')
|
|
else:
|
|
ret = 0
|
|
|
|
context.Result(ret)
|
|
return int(ret)
|
|
|
|
def CheckMacports(context):
|
|
context.Message( 'Looking for macports... ')
|
|
prog = context.env.WhereIs('port')
|
|
if prog:
|
|
ret = 1
|
|
prefix = prog.rsplit(os.sep, 2)[0]
|
|
context.env.Append(LIBPATH = [prefix + os.sep + 'lib'],
|
|
CPPPATH = [prefix + os.sep + 'include'])
|
|
context.Message( 'Adding port lib and include path')
|
|
else:
|
|
ret = 0
|
|
|
|
context.Result(ret)
|
|
return int(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;
|
|
}
|
|
""",'.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 CheckFramework(context, name):
|
|
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')
|
|
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;
|
|
}
|
|
""", '.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
|