add svnrev.h to linux

solves issue 93


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@780 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
nakeee 2008-10-05 18:49:55 +00:00
parent 407bd39d8b
commit 6336af92a1
3 changed files with 160 additions and 144 deletions

View File

@ -18,69 +18,69 @@ description="A wii/gamecube emulator"
license="GPL v2"
warnings = [
'all',
'write-strings',
'shadow',
'pointer-arith',
'packed',
'no-conversion',
]
'all',
'write-strings',
'shadow',
'pointer-arith',
'packed',
'no-conversion',
]
compileFlags = [
'-fno-exceptions',
'-fno-strict-aliasing',
'-msse2',
'-fvisibility=hidden',
#'-fomit-frame-pointer'
]
'-fno-exceptions',
'-fno-strict-aliasing',
'-msse2',
'-fvisibility=hidden',
#'-fomit-frame-pointer'
]
cppDefines = [
( '_FILE_OFFSET_BITS', 64),
'_LARGEFILE_SOURCE',
'GCC_HASCLASSVISIBILITY',
]
( '_FILE_OFFSET_BITS', 64),
'_LARGEFILE_SOURCE',
'GCC_HASCLASSVISIBILITY',
]
if sys.platform == 'darwin':
compileFlags += [ '-I/opt/local/include' ]
compileFlags += [ '-I/opt/local/include' ]
include_paths = [
'../../../Core/Common/Src',
'../../../Core/DiscIO/Src',
'../../../PluginSpecs',
'../../../',
'../../../Core/Core/Src',
'../../../Core/DebuggerWX/Src',
'../../../../Externals/Bochs_disasm',
'../../../../Externals/LZO',
'../../../Core/VideoCommon/Src',
]
'../../../Core/Common/Src',
'../../../Core/DiscIO/Src',
'../../../PluginSpecs',
'../../../',
'../../../Core/Core/Src',
'../../../Core/DebuggerWX/Src',
'../../../../Externals/Bochs_disasm',
'../../../../Externals/LZO',
'../../../Core/VideoCommon/Src',
]
dirs = [
'Source/Core/Common/Src',
'Externals/Bochs_disasm',
'Externals/LZO',
'Source/Core/Core/Src',
'Source/Core/DiscIO/Src',
'Source/Core/VideoCommon/Src',
'Source/Plugins/Plugin_VideoOGL/Src',
'Source/Plugins/Plugin_DSP_HLE/Src',
# 'Source/Plugins/Plugin_DSP_LLE/Src',
'Source/Plugins/Plugin_DSP_NULL/Src',
'Source/Plugins/Plugin_PadSimple/Src',
'Source/Plugins/Plugin_nJoy_SDL/Src',
'Source/Plugins/Plugin_Wiimote_Test/Src',
'Source/Core/DolphinWX/Src',
]
'Source/Core/Common/Src',
'Externals/Bochs_disasm',
'Externals/LZO',
'Source/Core/Core/Src',
'Source/Core/DiscIO/Src',
'Source/Core/VideoCommon/Src',
'Source/Plugins/Plugin_VideoOGL/Src',
'Source/Plugins/Plugin_DSP_HLE/Src',
'Source/Plugins/Plugin_DSP_LLE/Src',
'Source/Plugins/Plugin_DSP_NULL/Src',
'Source/Plugins/Plugin_PadSimple/Src',
'Source/Plugins/Plugin_nJoy_SDL/Src',
'Source/Plugins/Plugin_Wiimote_Test/Src',
'Source/Core/DolphinWX/Src',
]
builders = {}
if sys.platform == 'darwin':
from plistlib import writePlist
def createPlist(target, source, env):
properties = {}
for srcNode in source:
properties.update(srcNode.value)
for dstNode in target:
writePlist(properties, str(dstNode))
from plistlib import writePlist
def createPlist(target, source, env):
properties = {}
for srcNode in source:
properties.update(srcNode.value)
for dstNode in target:
writePlist(properties, str(dstNode))
builders['Plist'] = Builder(action = createPlist)
lib_paths = include_paths
@ -88,66 +88,65 @@ lib_paths = include_paths
# handle command line options
vars = Variables('args.cache')
vars.AddVariables(
BoolVariable('verbose', 'Set for compilation line', False),
BoolVariable('debug', 'Set for debug build', False),
BoolVariable('lint', 'Set for lint build (extra warnings)', False),
BoolVariable('nowx', 'Set For Building with no WX libs (WIP)', False),
EnumVariable('flavor', 'Choose a build flavor', 'release',
allowed_values = ('release', 'devel', 'debug'),
ignorecase = 2
)
)
BoolVariable('verbose', 'Set for compilation line', False),
BoolVariable('debug', 'Set for debug build', False),
BoolVariable('lint', 'Set for lint build (extra warnings)', False),
BoolVariable('nowx', 'Set For Building with no WX libs (WIP)', False),
EnumVariable('flavor', 'Choose a build flavor', 'release',
allowed_values = ('release', 'devel', 'debug'),
ignorecase = 2
)
)
env = Environment(
CC = 'gcc',
CXX = 'g++',
CPPPATH = include_paths,
LIBPATH = lib_paths,
variables = vars,
ENV = {
'PATH' : os.environ['PATH'],
'HOME' : os.environ['HOME']
},
BUILDERS = builders,
DESCRIPTION = description,
SUMMARY = description,
LICENSE = license,
NAME = name,
VERSION = version,
)
CC = 'gcc',
CXX = 'g++',
CPPPATH = include_paths,
LIBPATH = lib_paths,
variables = vars,
ENV = {
'PATH' : os.environ['PATH'],
'HOME' : os.environ['HOME']
},
BUILDERS = builders,
DESCRIPTION = description,
SUMMARY = description,
LICENSE = license,
NAME = name,
VERSION = version,
)
# save the given command line options
vars.Save('args.cache', env)
# verbose compile
if not env['verbose']:
env['CCCOMSTR'] = "Compiling $TARGET"
env['CXXCOMSTR'] = "Compiling $TARGET"
env['ARCOMSTR'] = "Archiving $TARGET"
env['LINKCOMSTR'] = "Linking $TARGET"
env['ASCOMSTR'] = "Assembling $TARGET"
env['ASPPCOMSTR'] = "Assembling $TARGET"
env['SHCCCOMSTR'] = "Compiling shared $TARGET"
env['SHCXXCOMSTR'] = "Compiling shared $TARGET"
env['SHLINKCOMSTR'] = "Linking shared $TARGET"
env['RANLIBCOMSTR'] = "Indexing $TARGET"
env['CCCOMSTR'] = "Compiling $TARGET"
env['CXXCOMSTR'] = "Compiling $TARGET"
env['ARCOMSTR'] = "Archiving $TARGET"
env['LINKCOMSTR'] = "Linking $TARGET"
env['ASCOMSTR'] = "Assembling $TARGET"
env['ASPPCOMSTR'] = "Assembling $TARGET"
env['SHCCCOMSTR'] = "Compiling shared $TARGET"
env['SHCXXCOMSTR'] = "Compiling shared $TARGET"
env['SHLINKCOMSTR'] = "Linking shared $TARGET"
env['RANLIBCOMSTR'] = "Indexing $TARGET"
# build falvuor
flavour = ARGUMENTS.get('flavor')
if (flavour == 'debug'):
compileFlags.append('-g')
cppDefines.append('LOGGING')
compileFlags.append('-g')
cppDefines.append('LOGGING')
elif (flavour == 'devel'):
compileFlags.append('-g')
compileFlags.append('-g')
else:
compileFlags.append('-O3')
compileFlags.append('-O3')
# more warnings
if env['lint']:
warnings.append('error')
warnings.append('unreachable-code')
warnings.append('float-equal')
warnings.append('error')
warnings.append('unreachable-code')
warnings.append('float-equal')
# add the warnings to the compile flags
compileFlags += [ '-W' + warning for warning in warnings ]
@ -166,31 +165,31 @@ tests = {'CheckWXConfig' : wxconfig.CheckWXConfig,
conf = env.Configure(custom_tests = tests)
if not conf.CheckPKGConfig('0.15.0'):
Exit(1)
Exit(1)
if not conf.CheckSDL('1.0.0'):
Exit(1)
Exit(1)
if not conf.CheckPKG('ao'):
Exit(1)
Exit(1)
# handling wx flags CCFLAGS should be created before
if not env['nowx']:
if not conf.CheckWXConfig(
'2.8', ['gl', 'adv', 'core', 'base'], env['debug']
):
print 'gui build requires wxwidgets >= 2.8'
Exit(1)
if not conf.CheckWXConfig(
'2.8', ['gl', 'adv', 'core', 'base'], env['debug']
):
print 'gui build requires wxwidgets >= 2.8'
Exit(1)
if not env['nowx']:
dirs += ['Source/Core/DebuggerWX/Src',]
dirs += ['Source/Core/DebuggerWX/Src',]
# After all configuration tests are done
env = conf.Finish()
#wx windows flags
if not env['nowx']:
wxconfig.ParseWXConfig(env)
compileFlags += ['-DUSE_WX',]
wxconfig.ParseWXConfig(env)
compileFlags += ['-DUSE_WX',]
#get sdl stuff
env.ParseConfig('sdl-config --cflags --libs')
@ -203,20 +202,22 @@ env.AddMethod(utils.filterWarnings)
Export('env')
utils.GenerateRevFile(env['flavor'], "Source/Core/Common/Src/svnrev_template.h",
"Source/Core/Common/Src/svnrev.h")
# print a nice progress indication when not compiling
Progress(['-\r', '\\\r', '|\r', '/\r'], interval = 5)
# die on unknown variables
unknown = vars.UnknownVariables()
if unknown:
print "Unknown variables:", unknown.keys()
Exit(1)
print "Unknown variables:", unknown.keys()
Exit(1)
# generate help
Help(vars.GenerateHelpText(env))
for subdir in dirs:
SConscript(
subdir + os.sep + 'SConscript',
duplicate = 0
)
SConscript(
subdir + os.sep + 'SConscript',
duplicate = 0
)

View File

@ -2,36 +2,53 @@ import os
# methods that should be added to env
def filterWarnings(self, flags):
return ' '.join(
flag
for flag in flags
if not flag.startswith('-W')
)
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
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 CheckPKG(context, name):
context.Message( 'Checking for %s... ' % name )
ret = context.TryAction('pkg-config --exists \'%s\'' % name)[0]
context.Result( ret )
return ret
context.Message( 'Checking for %s... ' % name )
ret = context.TryAction('pkg-config --exists \'%s\'' % name)[0]
context.Result( ret )
return ret
def CheckSDL(context, version):
context.Message( 'Checking for sdl lib version > %s... ' % version)
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.Message( 'Checking for sdl lib version > %s... ' % version)
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 )
return 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("$WCREV$",revstr)
template.close()
outfile = open(output, 'w')
outfile.write(tmpstr +"\n")
outfile.close()
return

View File

@ -17,8 +17,9 @@
#include "Globals.h"
#include "IniFile.h"
#if defined(_WIN32)
#include "svnrev.h"
#if defined(_WIN32)
#include "OS/Win32.h"
#endif
#include "GLInit.h"
@ -101,16 +102,13 @@ BOOL Callback_PeekMessages()
void UpdateFPSDisplay(const char *text)
{
#if defined(_WIN32)
char temp[512];
sprintf(temp, "SVN R%i: GL: %s", SVN_REV, text);
SetWindowText(EmuWindow::GetWnd(), temp);
OpenGL_SetWindowText(temp);
#else
char temp[512];
sprintf(temp, "SVN %s: GL: %s", "Linux", text); //TODO: Set to svn rev //
OpenGL_SetWindowText(temp);
sprintf(temp, "SVN R%s: GL: %s", SVN_REV_STR, text);
#if defined(_WIN32)
SetWindowText(EmuWindow::GetWnd(), temp);
#endif
OpenGL_SetWindowText(temp);
}