import os import sys # TODO: What is the current Dolphin version? dolphin_version = '1.04' Export('dolphin_version') warnings = [ 'all', 'write-strings', #'float-equal', 'shadow', 'pointer-arith', 'packed', 'no-conversion', # 'error', #'unreachable-code', ] compileFlags = [ '-fno-exceptions', '-fno-strict-aliasing', '-msse2', '-D_FILE_OFFSET_BITS=64', '-D_LARGEFILE_SOURCE', '-DGCC_HASCLASSVISIBILITY', '-fvisibility=hidden', ] #compileFlags += [ '-fomit-frame-pointer' ] if sys.platform == 'darwin': 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', ] dirs = [ "Source/Core/Common/Src", "Externals/Bochs_disasm", "Externals/LZO", "Source/Core/Core/Src", "Source/Core/DiscIO/Src", "Source/Core/DebuggerWX/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_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)) builders['Plist'] = Builder(action = createPlist) lib_paths = include_paths debug = ARGUMENTS.get('debug', 0) if int(debug): compileFlags.append('-g') compileFlags.append('-DLOGGING') else: compileFlags.append('-O3') lint = ARGUMENTS.get('lint', 0) if int(lint): warnings.append('error') compileFlags += [ '-W' + warning for warning in warnings ] env = Environment( CC = "gcc", CXX = "g++", CCFLAGS = ' '.join(compileFlags), CXXFLAGS = ' '.join(compileFlags + [ '-fvisibility-inlines-hidden' ]), CPPPATH = include_paths, LIBPATH = lib_paths, ENV = { 'PATH' : os.environ['PATH'], 'HOME' : os.environ['HOME'] }, BUILDERS = builders, ) Export('env') for subdir in dirs: SConscript( subdir + os.sep + 'SConscript', duplicate = 0 )