SCons
authorNathan Letwory <nathan@letworyinteractive.com>
Thu, 16 Jul 2009 19:41:28 +0000 (19:41 +0000)
committerNathan Letwory <nathan@letworyinteractive.com>
Thu, 16 Jul 2009 19:41:28 +0000 (19:41 +0000)
* ensure all SConscripts are ready for win64-vc (where necessary).
* ensure we have proper _DEBUG flag for Python when we're doing a debug build.
* some cleaning up of linking etc.
* ensure /EHsc is there for game engine modules.

22 files changed:
config/win32-vc-config.py
config/win64-vc-config.py
extern/bullet2/src/SConscript
extern/libopenjpeg/SConscript
intern/elbeem/SConscript
source/blender/editors/space_node/SConscript
source/blender/makesrna/intern/SConscript
source/blender/python/SConscript
source/gameengine/BlenderRoutines/SConscript
source/gameengine/Expressions/SConscript
source/gameengine/GameLogic/SConscript
source/gameengine/GamePlayer/common/SConscript
source/gameengine/GamePlayer/ghost/SConscript
source/gameengine/Ketsji/KXNetwork/SConscript
source/gameengine/Ketsji/SConscript
source/gameengine/Physics/Bullet/SConscript
source/gameengine/Physics/common/SConscript
source/gameengine/Rasterizer/RAS_OpenGLRasterizer/SConscript
source/gameengine/Rasterizer/SConscript
source/gameengine/SceneGraph/SConscript
source/gameengine/VideoTexture/SConscript
tools/Blender.py

index 67ab394bef97224c562846407b3e661e87aa38a4..8b152be437e3e327fbe207acbbd1ea849b3598b1 100644 (file)
@@ -149,7 +149,7 @@ BF_OPENGL_LIB_STATIC = [ '${BF_OPENGL}/lib/libGL.a', '${BF_OPENGL}/lib/libGLU.a'
 CC = 'cl.exe'
 CXX = 'cl.exe'
 
-CCFLAGS = ['/nologo', '/Ob1', '/J', '/W3', '/Gd', '/MT', '/wd4244', '/wd4305', '/wd4800']
+CCFLAGS = ['/nologo', '/Ob1', '/J', '/W3', '/Gd', '/wd4244', '/wd4305', '/wd4800', '/wd4065', '/wd4267']
 CXXFLAGS = ['/EHsc']
 
 BF_DEBUG_CCFLAGS = ['/Zi', '/FR${TARGET}.sbr']
@@ -165,7 +165,7 @@ CXX_WARN = []
 
 LLIBS = ['ws2_32', 'vfw32', 'winmm', 'kernel32', 'user32', 'gdi32', 'comdlg32', 'advapi32', 'shfolder', 'shell32', 'ole32', 'oleaut32', 'uuid']
 
-PLATFORM_LINKFLAGS = ['/SUBSYSTEM:CONSOLE','/MACHINE:IX86','/ENTRY:mainCRTStartup','/INCREMENTAL:NO','/NODEFAULTLIB:"msvcprt.lib"','/NODEFAULTLIB:"glut32.lib"','/NODEFAULTLIB:"libc.lib"','/NODEFAULTLIB:"libcd.lib"','/NODEFAULTLIB:"libcpd.lib"','/NODEFAULTLIB:"libcp.lib"','/LARGEADDRESSAWARE']
+PLATFORM_LINKFLAGS = ['/SUBSYSTEM:CONSOLE','/MACHINE:IX86','/INCREMENTAL:NO','/NODEFAULTLIB:"msvcprt.lib"','/NODEFAULTLIB:"msvcprtd.lib"','/NODEFAULTLIB:"glut32.lib"','/NODEFAULTLIB:"libc.lib"','/NODEFAULTLIB:"libcd.lib"','/NODEFAULTLIB:"libcpd.lib"','/NODEFAULTLIB:"libcp.lib"','/NODEFAULTLIB:"msvcrt.lib"', '/NODEFAULTLIB:"msvcrtd.lib"', '/NODEFAULTLIB:"msvcmrt.lib"', '/NODEFAULTLIB:"msvcurt.lib"', '/LARGEADDRESSAWARE']
 
 # # Todo
 # BF_PROFILE_CCFLAGS = ['-pg', '-g ']
index c6bea9eba8902ecdfe90167755ebf812376ec41f..a8be162ea97bf42cfc54b4b09f56c9a3082104d0 100644 (file)
@@ -152,7 +152,8 @@ BF_OPENGL_LIB_STATIC = [ '${BF_OPENGL}/lib/libGL.a', '${BF_OPENGL}/lib/libGLU.a'
 CC = 'cl.exe'
 CXX = 'cl.exe'
 
-CCFLAGS = ['/nologo', '/Ob1', '/J', '/W3', '/Gd', '/MT', '/wd4244', '/wd4305', '/wd4800']
+CFLAGS = []
+CCFLAGS = ['/nologo', '/Ob1', '/J', '/W3', '/Gd', '/wd4244', '/wd4305', '/wd4800', '/wd4065', '/wd4267']
 CXXFLAGS = ['/EHsc']
 
 BF_DEBUG_CCFLAGS = ['/Zi', '/FR${TARGET}.sbr']
@@ -172,16 +173,13 @@ WITH_BF_DOCS=False
 
 BF_DEBUG=False
 BF_BSC=False
-CFLAGS = []
-CCFLAGS = ['/nologo', '/Ob1', '/J', '/W3', '/Gd', '/MT']
-CXXFLAGS = ['/EHsc']
 
 if BF_DEBUG:
        BF_NUMJOBS=1
 else:
        BF_NUMJOBS=6
 
-PLATFORM_LINKFLAGS = ['/SUBSYSTEM:CONSOLE','/MACHINE:X64','/ENTRY:mainCRTStartup','/INCREMENTAL:NO','/NODEFAULTLIB:"msvcprt.lib"','/NODEFAULTLIB:"glut32.lib"','/NODEFAULTLIB:"libc.lib"','/NODEFAULTLIB:"libcd.lib"','/NODEFAULTLIB:"libcpd.lib"','/NODEFAULTLIB:"libcp.lib"']
+PLATFORM_LINKFLAGS = ['/SUBSYSTEM:CONSOLE','/MACHINE:X64','/INCREMENTAL:NO','/NODEFAULTLIB:"msvcprt.lib"','/NODEFAULTLIB:"msvcprtd.lib"','/NODEFAULTLIB:"glut32.lib"','/NODEFAULTLIB:"libc.lib"','/NODEFAULTLIB:"libcd.lib"','/NODEFAULTLIB:"libcpd.lib"','/NODEFAULTLIB:"libcp.lib"','/NODEFAULTLIB:"msvcrt.lib"', '/NODEFAULTLIB:"msvcrtd.lib"', '/NODEFAULTLIB:"msvcmrt.lib"', '/NODEFAULTLIB:"msvcurt.lib"']
 
 BF_BUILDDIR = '..\\build\\blender25-win64-vc'
 BF_INSTALLDIR='..\\install\\blender25-win64-vc'
index bd7fb87b01f75000d0abd2fd2dc0e2d559c36a1c..319cc57ce5555509e864b156985e9717695449e6 100644 (file)
@@ -10,7 +10,7 @@ cflags = []
 if env['OURPLATFORM'] in ('win32-vc', 'win64-vc'):
     defs += ' WIN32 NDEBUG _WINDOWS _LIB'
     #cflags += ['/MT', '/W3', '/GX', '/O2', '/Op']
-    cflags += ['/MT', '/W3', '/GX', '/Og', '/Ot', '/Ob1', '/Op', '/G6', '/O3']
+    cflags += ['/MT', '/W3', '/GX', '/Og', '/Ot', '/Ob1', '/Op', '/G6', '/O3', '/EHcs']
 elif env['OURPLATFORM']=='win32-mingw':
     defs += ' NDEBUG'
     cflags += ['-O2']
index 13a34bf5598e541c0138ade6debaccf265e70f61..693fee15c91c54553105244ae1cf81f4b37f8bc8 100644 (file)
@@ -10,14 +10,14 @@ incs = '.'
 flags = []
 defs = []
 
-if env['OURPLATFORM'] == 'win32-vc':
+if env['OURPLATFORM'] in ('win32-vc', 'win64-vc'):
        flags = []
        defs.append('OPJ_STATIC')
 else:
        flags = ['-Wall', '-O3', '-ffast-math', '-std=c99']
 
 oj_env = env.Clone()
-if not env['OURPLATFORM'] == 'win32-vc':
+if not env['OURPLATFORM'] in ('win32-vc', 'win64-vc'):
        oj_env.Replace(CCFLAGS = '')
        oj_env.Replace(BF_DEBUG_FLAGS = '')
 
index 92e80c36cea7ec364e3c29a0ace3f94171176e60..0900ab1db5c53a35468bd8ddda297fc6b77ae5ab 100644 (file)
@@ -10,7 +10,7 @@ defs = 'NOGUI ELBEEM_BLENDER=1'
 if env['WITH_BF_OPENMP']:
     defs += ' PARALLEL'
 
-if env['OURPLATFORM']=='win32-vc':
+if env['OURPLATFORM'] in ('win32-vc', 'win64-vc'):
     defs += ' USE_MSVC6FIXES'
 incs = env['BF_PNG_INC'] + ' ' + env['BF_ZLIB_INC'] 
 incs += ' extern '
index ad57970950d7f35be7386cf0e94e82aba222d636..5453aa7dd44235f09e43222261e6e5e4b8e2111d 100644 (file)
@@ -8,7 +8,7 @@ incs += ' ../../nodes ../../render/extern/include'
 incs += ' ../../windowmanager #intern/guardedalloc #extern/glew/include'
 defs = []
 cf = []
-if env['OURPLATFORM'] == 'win32-vc':
+if env['OURPLATFORM'] in ('win32-vc', 'win64-vc'):
        #cf.append('/WX')
        pass
 if env['CC'] == 'gcc':
index 7cd3fde21be3bf545989fa46fb0b4930838dcd0a..c10b907d04ea86065c046379f97ac35080e50a55 100644 (file)
@@ -86,7 +86,7 @@ if env['BF_PROFILE']:
 if env['BF_DEBUG']:
        makesrna_tool.Append(CFLAGS = env['BF_DEBUG_CFLAGS'])
        makesrna_tool.Append(CCFLAGS = env['BF_DEBUG_CCFLAGS'])
-       if env['OURPLATFORM'] == 'win32-vc':
+       if env['OURPLATFORM'] in ('win32-vc','win64-vc'):
                makesrna_tool.Append(LINKFLAGS = ['/DEBUG','/PDB:makesrna.pdb'])
 
 targetpath = root_build_dir+'/makesrna'
index 73dc171fc3e011529f854a034f97965f4e327618..d44cf762a0f2b42ecfac2c5c0851bfe66dacb799 100644 (file)
@@ -10,8 +10,8 @@ incs += ' ' + env['BF_PYTHON_INC']
 
 defs = []
 
-if env['OURPLATFORM'] in ('win32-mingw', 'win32-vc') and env['BF_DEBUG']:
-       defs.append('Py_TRACE_REFS')
+if env['OURPLATFORM'] in ('win32-mingw', 'win32-vc','win64-vc') and env['BF_DEBUG']:
+       defs.append('_DEBUG')
 
 env.BlenderLib( libname = 'bf_python', sources = Split(sources), includes = Split(incs), defines = defs, libtype = ['core'], priority = [140])
 
index fc12f453d8682e7702743dcf8b9c9031cc773dcd..0239af22b8c144a5743ce4777996b083a433d0cc 100644 (file)
@@ -29,8 +29,9 @@ incs += ' ' + env['BF_BULLET_INC']
 incs += ' ' + env['BF_OPENGL_INC']
 
 cxxflags = []
-if env['OURPLATFORM']=='win32-vc':
+if env['OURPLATFORM'] in ('win32-vc','win64-vc'):
        cxxflags.append ('/GR')
        cxxflags.append ('/O2')
+       cxxflags.append ('/EHsc')
 
 env.BlenderLib ( 'bf_bloutines', sources, Split(incs), defs, libtype=['core', 'player'], priority=[300, 45] , cxx_compileflags=cxxflags)
index 07cab62c02090587977994841b7b982f55173d89..69f87ffbb90706eb5a19d9ace11c041b97b58f57 100644 (file)
@@ -7,8 +7,9 @@ incs ='. #source/kernel/gen_system #intern/string #intern/moto/include #source/g
 incs += ' ' + env['BF_PYTHON_INC']
 
 cxxflags = []
-if env['OURPLATFORM']=='win32-vc':
+if env['OURPLATFORM'] in ('win32-vc', 'win64-vc'):
        cxxflags.append ('/GR')
        cxxflags.append ('/O2')
+       cxxflags.append ('/EHsc')
 
 env.BlenderLib ( 'bf_expressions', sources, Split(incs), [], libtype=['core','player'], priority = [360,120], cxx_compileflags=cxxflags)
index 91843eef586547ea4d7d3aae5e444c80e2bfeb76..837769e5e7883e25e939422441877ec6ce74fe53 100644 (file)
@@ -10,16 +10,19 @@ incs += ' #/source/gameengine/Rasterizer #/source/gameengine/SceneGraph'
 incs += ' ' + env['BF_PYTHON_INC']
 
 
-defs = ''
+defs = []
 
 if env['WITH_BF_SDL']:
        incs += ' ' + env['BF_SDL_INC']
 else:
-       defs += ' DISABLE_SDL'
+       defs.append('DISABLE_SDL')
 
 cxxflags = []
-if env['OURPLATFORM']=='win32-vc':
+if env['OURPLATFORM'] in ('win32-vc', 'win64-vc'):
        cxxflags.append ('/GR')
        cxxflags.append ('/O2')
+       cxxflags.append ('/EHsc')
+       if env['BF_DEBUG']:
+               defs.append('_DEBUG')
 
-env.BlenderLib ( 'bf_logic', sources, Split(incs), Split(defs), libtype=['core','player'], priority=[330, 100], cxx_compileflags=cxxflags )
+env.BlenderLib ( 'bf_logic', sources, Split(incs), defs, libtype=['core','player'], priority=[330, 100], cxx_compileflags=cxxflags )
index f899385c8412b3e190ba55e88545bb87ea0092ca..b7b3b9b12c40f5ea4a2827d179065e531cf64361 100644 (file)
@@ -64,8 +64,9 @@ incs += Split(env['BF_PNG_INC'])
 incs += Split(env['BF_ZLIB_INC'])
 
 cxxflags = []
-if env['OURPLATFORM']=='win32-vc':
+if env['OURPLATFORM'] in ('win32-vc', 'win64-vc'):
        cxxflags.append ('/GR')
        cxxflags.append ('/O2')
+       cxxflags.append ('/EHsc')
 
 env.BlenderLib (libname='gp_common', sources=source_files, includes=incs, defines = [], libtype='player', priority=5, cxx_compileflags=cxxflags)
index 19234cb663c2367d66b3aa71702b9fc3b986e027..ca06b9ca0dd3373690b20f4c9a031089e95f8e1c 100644 (file)
@@ -44,9 +44,10 @@ incs = ['.',
 incs += Split(env['BF_PYTHON_INC'])
 
 cxxflags = []
-if env['OURPLATFORM']=='win32-vc':
+if env['OURPLATFORM'] in ('win32-vc', 'win64-vc'):
        cxxflags.append ('/GR')
        cxxflags.append ('/O2')
+       cxxflags.append ('/EHsc')
 
 defs = ''
 if env['WITH_BF_FFMPEG']:
index f350b2ce25aca6804fdd5e4612a0414e320d197a..e6584b55ed24096ad94cc60852c65949ed6f5506 100644 (file)
@@ -10,9 +10,10 @@ incs += ' #source/gameengine/Network #source/gameengine/SceneGraph'
 incs += ' ' + env['BF_PYTHON_INC']
 
 cxxflags = []
-if env['OURPLATFORM']=='win32-vc':
+if env['OURPLATFORM'] in ('win32-vc', 'win64-vc'):
        cxxflags.append ('/GR')
        cxxflags.append ('/O2')
+       cxxflags.append ('/EHsc')
 
 
 env.BlenderLib ( 'kx_network', Split(sources), Split(incs), defines=[],libtype=['core', 'player'], priority=[400, 145], cxx_compileflags=cxxflags )
index b09267b79ff67359979a688769c1bdb76f58cfa3..1edffe0e587d7c60ddbe049f9489bf194d370f52 100644 (file)
@@ -4,7 +4,7 @@ import sys
 Import ('env')
 
 sources = env.Glob('*.cpp')
-defs = ''
+defs = []
 
 incs = '. #source/blender/python/generic' # Only for Mathutils! and bpy_internal_import.h, be very careful
 
@@ -28,11 +28,14 @@ incs += ' ' + env['BF_OPENGL_INC']
 if  env['WITH_BF_SDL']:
     incs += ' ' + env['BF_SDL_INC']
 else:
-       defs += ' DISABLE_SDL'
+       defs.append('DISABLE_SDL')
        
 cxxflags = []
-if env['OURPLATFORM']=='win32-vc':
+if env['OURPLATFORM'] in ('win32-vc', 'win64-vc'):
        cxxflags.append ('/GR')
        cxxflags.append ('/O2')
+       cxxflags.append ('/EHsc')
+       if env['BF_DEBUG']:
+               defs.append('_DEBUG') # for Python
 
-env.BlenderLib ( 'bf_ketsji', sources, Split(incs), Split(defs), libtype=['core','player'], priority=[320, 60], cxx_compileflags = cxxflags )
+env.BlenderLib ( 'bf_ketsji', sources, Split(incs), defs, libtype=['core','player'], priority=[320, 60], cxx_compileflags = cxxflags )
index ed53e8112cde759e6454fee9a95e06c0b2435426..b6d0a75fd0434b6ab321cc8c36ef57733bb89e43 100644 (file)
@@ -23,8 +23,9 @@ incs += ' ' + env['BF_BULLET_INC']
 incs += ' ' + env['BF_PYTHON_INC']
 
 cxxflags = []
-if env['OURPLATFORM']=='win32-vc':
+if env['OURPLATFORM'] in ('win32-vc', 'win64-vc'):
        cxxflags.append ('/GR')
        cxxflags.append ('/O2')
+       cxxflags.append ('/EHsc')
 
 env.BlenderLib ( 'bf_bullet', Split(sources), Split(incs), [], libtype=['core','player'], priority=[350,80], cxx_compileflags=cxxflags )
index 2713143f50da8589c9457564c5d32ece76d1b078..447b0ec1bbb5a89c50130e171f5d41bb5ddc1109 100644 (file)
@@ -6,8 +6,9 @@ sources = 'PHY_IMotionState.cpp PHY_IController.cpp PHY_IPhysicsController.cpp P
 incs = '. ../Dummy #intern/moto/include'
 
 cxxflags = []
-if env['OURPLATFORM']=='win32-vc':
+if env['OURPLATFORM'] in ('win32-vc', 'win64-vc'):
        cxxflags.append ('/GR')
        cxxflags.append ('/O2')
+       cxxflags.append ('/EHsc')
 
 env.BlenderLib ( 'bf_common', Split(sources), Split(incs), [], libtype=['core','player'], priority=[360, 90], cxx_compileflags = cxxflags )
index 3d605ce12b8b1073a6fadb9858be134771739223..e206c90ea253ba2c4b81080b1856d8b8da5c42ec 100644 (file)
@@ -9,8 +9,9 @@ incs += ' #source/blender/gameengine/Ketsji #source/gameengine/SceneGraph #sourc
 incs += ' #intern/guardedalloc #source/blender/blenlib'
 
 cxxflags = []
-if env['OURPLATFORM']=='win32-vc':
+if env['OURPLATFORM'] in ('win32-vc', 'win64-vc'):
        cxxflags.append ('/GR')
        cxxflags.append ('/O2')
+       cxxflags.append ('/EHsc')
 
 env.BlenderLib ( 'bf_oglrasterizer', Split(sources), Split(incs), [], libtype=['core','player'], priority=[350, 115], cxx_compileflags = cxxflags )
index 018f2ab4d20b54c9859723fe3b00ae831527a431..255131f9a4495b4bc917070450371047cb6bff01 100644 (file)
@@ -8,8 +8,9 @@ incs = '. #source/kernel/gen_system #intern/string #intern/moto/include #source/
 incs += ' ' + env['BF_PYTHON_INC']
 
 cxxflags = []
-if env['OURPLATFORM']=='win32-vc':
+if env['OURPLATFORM'] in ('win32-vc', 'win64-vc'):
        cxxflags.append ('/GR')
        cxxflags.append ('/O2')
+       cxxflags.append ('/EHsc')
 
 env.BlenderLib ( 'bf_rasterizer', sources, Split(incs), [], libtype=['core','player'], priority=[350,115], cxx_compileflags = cxxflags )
index 0692b170a61d9de1832f03b58f2e82ae29b3946b..b3db50117f175c5e119863ac1c4c3bcb02e014a3 100644 (file)
@@ -7,8 +7,9 @@ sources = env.Glob('*.cpp')
 incs = '. #intern/moto/include'
 
 cxxflags = []
-if env['OURPLATFORM']=='win32-vc':
+if env['OURPLATFORM'] in ('win32-vc', 'win64-vc'):
        cxxflags.append ('/GR')
        cxxflags.append ('/O2')
+       cxxflags.append ('/EHsc')
 
 env.BlenderLib ( 'bf_scenegraph', sources, Split(incs), [], libtype=['core','player'], priority=[325,125], cxx_compileflags = cxxflags )
index 920da8ffb2e12203598a362f8f46ebe266b09edf..fdf46f70ad713068842ce0eb2c81052e4c9f8a9c 100644 (file)
@@ -15,19 +15,22 @@ incs += ' #source/blender/gpu #source/kernel/gen_system #intern/string #intern/m
 incs += ' #intern/guardedalloc #intern/SoundSystem'
 incs += ' #extern/glew/include'
 
-defs = ''
+defs = [] 
 cxxflags = []
-if env['OURPLATFORM']=='win32-vc':
+if env['OURPLATFORM'] in ('win32-vc', 'win64-vc'):
        cxxflags.append ('/GR')
        cxxflags.append ('/O2')
+       cxxflags.append ('/EHsc')
+       if env['BF_DEBUG']:
+               defs.append('_DEBUG')
 
 
 incs += ' ' + env['BF_PYTHON_INC']
 #incs += ' ' + env['BF_OPENGL_INC']
 
 if env['WITH_BF_FFMPEG']:
-    defs += ' WITH_FFMPEG'
+    defs.append('WITH_FFMPEG')
     incs += ' ' + env['BF_FFMPEG_INC'] + ' ' + env['BF_PTHREADS_INC']
-    defs += ' __STDC_CONSTANT_MACROS'
+    defs.append('__STDC_CONSTANT_MACROS')
 
-env.BlenderLib ( 'bf_videotex', sources, Split(incs), Split(defs), libtype=['core','player'], priority=[300, 72], cxx_compileflags = cxxflags )
+env.BlenderLib ( 'bf_videotex', sources, Split(incs), defs, libtype=['core','player'], priority=[300, 72], cxx_compileflags = cxxflags )
index 164a9d097e65b444e102d9300d87ef2e8f784f1b..749fa55a83332b1174be67f0881f55752ef94993 100644 (file)
@@ -448,6 +448,12 @@ class BlenderEnvironment(SConsEnvironment):
                        lenv.Append(CFLAGS = lenv['C_WARN'])
                        lenv.Append(CCFLAGS = lenv['CC_WARN'])
                        lenv.Append(CXXFLAGS = lenv['CXX_WARN'])
+
+                       if lenv['OURPLATFORM'] in ('win32-vc', 'win64-vc'):
+                               if lenv['BF_DEBUG']:
+                                       lenv.Append(CCFLAGS = ['/MTd'])
+                               else:
+                                       lenv.Append(CCFLAGS = ['/MT'])
                        
                        targetdir = root_build_dir+'lib/' + libname
                        if not (root_build_dir[0]==os.sep or root_build_dir[1]==':'):
@@ -476,6 +482,7 @@ class BlenderEnvironment(SConsEnvironment):
                lenv = self.Clone()
                if lenv['OURPLATFORM'] in ('win32-vc', 'cygwin', 'win64-vc'):
                        lenv.Append(LINKFLAGS = lenv['PLATFORM_LINKFLAGS'])
+                       lenv.Append(LINKFLAGS = ['/FORCE:MULTIPLE'])
                        if lenv['BF_DEBUG']:
                                lenv.Prepend(LINKFLAGS = ['/DEBUG','/PDB:'+progname+'.pdb'])
                if  lenv['OURPLATFORM']=='linux2':