Skip to content
Snippets Groups Projects
Commit 836b91c9 authored by Jürgen Herrmann's avatar Jürgen Herrmann
Browse files

Scons and BuildBot changes for MSVC 2012 support.

Thanks Brecht and Thomas for reviewing ;)
parent c88ea1c4
No related branches found
No related tags found
No related merge requests found
...@@ -137,6 +137,8 @@ else: ...@@ -137,6 +137,8 @@ else:
B.quickie=[] B.quickie=[]
toolset = B.arguments.get('BF_TOOLSET', None) toolset = B.arguments.get('BF_TOOLSET', None)
vcver = B.arguments.get('MSVS_VERSION', '9.0')
if toolset: if toolset:
print "Using " + toolset print "Using " + toolset
if toolset=='mstoolkit': if toolset=='mstoolkit':
...@@ -148,9 +150,9 @@ if toolset: ...@@ -148,9 +150,9 @@ if toolset:
btools.SetupSpawn(env) btools.SetupSpawn(env)
else: else:
if bitness==64 and platform=='win32': if bitness==64 and platform=='win32':
env = BlenderEnvironment(ENV = os.environ, MSVS_ARCH='amd64', TARGET_ARCH='x86_64') env = BlenderEnvironment(ENV = os.environ, MSVS_ARCH='amd64', TARGET_ARCH='x86_64', MSVC_VERSION=vcver)
else: else:
env = BlenderEnvironment(ENV = os.environ, TARGET_ARCH='x86') env = BlenderEnvironment(ENV = os.environ, TARGET_ARCH='x86', MSVC_VERSION=vcver)
if not env: if not env:
print "Could not create a build environment" print "Could not create a build environment"
...@@ -384,6 +386,8 @@ else: ...@@ -384,6 +386,8 @@ else:
env['CPPFLAGS'].append('-DWITH_AUDASPACE') env['CPPFLAGS'].append('-DWITH_AUDASPACE')
env['CPPFLAGS'].append('-DWITH_AVI') env['CPPFLAGS'].append('-DWITH_AVI')
env['CPPFLAGS'].append('-DWITH_BOOL_COMPAT') env['CPPFLAGS'].append('-DWITH_BOOL_COMPAT')
if env['OURPLATFORM'] in ('win32-vc', 'win64-vc') and env['MSVC_VERSION'] == '11.0':
env['CPPFLAGS'].append('-D_ALLOW_KEYWORD_MACROS')
if env['OURPLATFORM'] not in ('win32-vc', 'win64-vc'): if env['OURPLATFORM'] not in ('win32-vc', 'win64-vc'):
env['CPPFLAGS'].append('-DHAVE_STDBOOL_H') env['CPPFLAGS'].append('-DHAVE_STDBOOL_H')
...@@ -940,7 +944,10 @@ if env['OURPLATFORM'] in ('win32-vc', 'win32-mingw', 'win64-vc', 'linuxcross'): ...@@ -940,7 +944,10 @@ if env['OURPLATFORM'] in ('win32-vc', 'win32-mingw', 'win64-vc', 'linuxcross'):
if env['WITH_BF_OPENAL']: if env['WITH_BF_OPENAL']:
dllsources.append('${LCGDIR}/openal/lib/OpenAL32.dll') dllsources.append('${LCGDIR}/openal/lib/OpenAL32.dll')
dllsources.append('${LCGDIR}/openal/lib/wrap_oal.dll') if env['OURPLATFORM'] in ('win32-vc', 'win64-vc') and env['MSVC_VERSION'] == '11.0':
pass
else:
dllsources.append('${LCGDIR}/openal/lib/wrap_oal.dll')
if env['WITH_BF_SNDFILE']: if env['WITH_BF_SNDFILE']:
dllsources.append('${LCGDIR}/sndfile/lib/libsndfile-1.dll') dllsources.append('${LCGDIR}/sndfile/lib/libsndfile-1.dll')
......
...@@ -143,6 +143,8 @@ else: ...@@ -143,6 +143,8 @@ else:
scons_options.append('BF_CYCLES_CUDA_NVCC=nvcc.exe') scons_options.append('BF_CYCLES_CUDA_NVCC=nvcc.exe')
if builder.find('mingw') != -1: if builder.find('mingw') != -1:
scons_options.append('BF_TOOLSET=mingw') scons_options.append('BF_TOOLSET=mingw')
if builder.endswith('vc2012'):
scons_options.append('MSVS_VERSION=11.0')
scons_options.append('BF_NUMJOBS=1') scons_options.append('BF_NUMJOBS=1')
elif builder.find('mac') != -1: elif builder.find('mac') != -1:
...@@ -156,7 +158,10 @@ else: ...@@ -156,7 +158,10 @@ else:
retcode = subprocess.call(['python', 'scons/scons.py'] + scons_options) retcode = subprocess.call(['python', 'scons/scons.py'] + scons_options)
if builder.find('win') != -1: if builder.find('win') != -1:
dlls = ('msvcm90.dll', 'msvcp90.dll', 'msvcr90.dll', 'vcomp90.dll', 'Microsoft.VC90.CRT.manifest', 'Microsoft.VC90.OpenMP.manifest') if builder.endswith('vc2012'):
dlls = ('msvcp110.dll', 'msvcr110.dll', 'vcomp110.dll')
else:
dlls = ('msvcm90.dll', 'msvcp90.dll', 'msvcr90.dll', 'vcomp90.dll', 'Microsoft.VC90.CRT.manifest', 'Microsoft.VC90.OpenMP.manifest')
if builder.find('win64') == -1: if builder.find('win64') == -1:
dlls_path = '..\\..\\..\\redist\\x86' dlls_path = '..\\..\\..\\redist\\x86'
else: else:
......
...@@ -99,6 +99,8 @@ if builder.find('scons') != -1: ...@@ -99,6 +99,8 @@ if builder.find('scons') != -1:
scons_options.append('BF_CYCLES_CUDA_NVCC=nvcc.exe') scons_options.append('BF_CYCLES_CUDA_NVCC=nvcc.exe')
if builder.find('mingw') != -1: if builder.find('mingw') != -1:
scons_options.append('BF_TOOLSET=mingw') scons_options.append('BF_TOOLSET=mingw')
if builder.endswith('vc2012'):
scons_options.append('MSVS_VERSION=11.0')
elif builder.find('mac') != -1: elif builder.find('mac') != -1:
if builder.find('x86_64') != -1: if builder.find('x86_64') != -1:
......
LCGDIR = '#../lib/win64' import subprocess
CL_OUT = subprocess.Popen(["cl.exe"],stdout=subprocess.PIPE,stderr=subprocess.PIPE)
CL_STDOUT, CL_STDERR = CL_OUT.communicate()
if CL_STDERR.find("Version 15.00.") == -1:
VC_VERSION = '11.0'
LCGDIR = '#../lib/win64_vc11'
else:
VC_VERSION = '9.0'
LCGDIR = '#../lib/win64'
LIBDIR = '${LCGDIR}' LIBDIR = '${LCGDIR}'
WITH_BF_FFMPEG = True WITH_BF_FFMPEG = True
BF_FFMPEG = LIBDIR +'/ffmpeg' BF_FFMPEG = LIBDIR +'/ffmpeg'
BF_FFMPEG_INC = '${BF_FFMPEG}/include ${BF_FFMPEG}/include/msvc ' BF_FFMPEG_INC = '${BF_FFMPEG}/include ${BF_FFMPEG}/include/msvc '
BF_FFMPEG_LIBPATH='${BF_FFMPEG}/lib' BF_FFMPEG_LIBPATH='${BF_FFMPEG}/lib'
BF_FFMPEG_LIB = 'avformat-53.lib avcodec-53.lib avdevice-53.lib avutil-51.lib swscale-2.lib' if VC_VERSION == '11.0':
BF_FFMPEG_DLL = '${BF_FFMPEG_LIBPATH}/avformat-53.dll ${BF_FFMPEG_LIBPATH}/avcodec-53.dll ${BF_FFMPEG_LIBPATH}/avdevice-53.dll ${BF_FFMPEG_LIBPATH}/avutil-51.dll ${BF_FFMPEG_LIBPATH}/swscale-2.dll' BF_FFMPEG_LIB = 'avformat-54.lib avcodec-54.lib avdevice-54.lib avutil-52.lib avfilter-3.lib swscale-2.lib swresample-0.lib'
BF_FFMPEG_DLL = '${BF_FFMPEG_LIBPATH}/avformat-54.dll ${BF_FFMPEG_LIBPATH}/avcodec-54.dll ${BF_FFMPEG_LIBPATH}/avdevice-54.dll ${BF_FFMPEG_LIBPATH}/avutil-52.dll ${BF_FFMPEG_LIBPATH}/avfilter-3.dll ${BF_FFMPEG_LIBPATH}/swscale-2.dll ${BF_FFMPEG_LIBPATH}/swresample-0.dll'
else:
BF_FFMPEG_LIB = 'avformat-53.lib avcodec-53.lib avdevice-53.lib avutil-51.lib swscale-2.lib'
BF_FFMPEG_DLL = '${BF_FFMPEG_LIBPATH}/avformat-53.dll ${BF_FFMPEG_LIBPATH}/avcodec-53.dll ${BF_FFMPEG_LIBPATH}/avdevice-53.dll ${BF_FFMPEG_LIBPATH}/avutil-51.dll ${BF_FFMPEG_LIBPATH}/swscale-2.dll'
BF_PYTHON = LIBDIR + '/python' BF_PYTHON = LIBDIR + '/python'
BF_PYTHON_VERSION = '3.3' BF_PYTHON_VERSION = '3.3'
...@@ -19,7 +36,10 @@ BF_PYTHON_LIBPATH = '${BF_PYTHON}/lib' ...@@ -19,7 +36,10 @@ BF_PYTHON_LIBPATH = '${BF_PYTHON}/lib'
WITH_BF_OPENAL = True WITH_BF_OPENAL = True
BF_OPENAL = LIBDIR + '/openal' BF_OPENAL = LIBDIR + '/openal'
BF_OPENAL_INC = '${BF_OPENAL}/include ' BF_OPENAL_INC = '${BF_OPENAL}/include '
BF_OPENAL_LIB = 'wrap_oal' if VC_VERSION == '11.0':
BF_OPENAL_LIB = 'OpenAL32'
else:
BF_OPENAL_LIB = 'wrap_oal'
BF_OPENAL_LIBPATH = '${BF_OPENAL}/lib' BF_OPENAL_LIBPATH = '${BF_OPENAL}/lib'
WITH_BF_SNDFILE = True WITH_BF_SNDFILE = True
...@@ -37,7 +57,10 @@ BF_ICONV_LIBPATH = '${BF_ICONV}/lib' ...@@ -37,7 +57,10 @@ BF_ICONV_LIBPATH = '${BF_ICONV}/lib'
WITH_BF_SDL = True WITH_BF_SDL = True
BF_SDL = LIBDIR + '/sdl' BF_SDL = LIBDIR + '/sdl'
BF_SDL_INC = '${BF_SDL}/include' BF_SDL_INC = '${BF_SDL}/include'
BF_SDL_LIB = 'SDL.lib' if VC_VERSION == '11.0':
BF_SDL_LIB = 'SDL.lib dxguid.lib'
else:
BF_SDL_LIB = 'SDL.lib'
BF_SDL_LIBPATH = '${BF_SDL}/lib' BF_SDL_LIBPATH = '${BF_SDL}/lib'
WITH_BF_JACK = False WITH_BF_JACK = False
...@@ -178,8 +201,12 @@ WITH_BF_STATICOCIO = True ...@@ -178,8 +201,12 @@ WITH_BF_STATICOCIO = True
WITH_BF_BOOST = True WITH_BF_BOOST = True
BF_BOOST = '${LIBDIR}/boost' BF_BOOST = '${LIBDIR}/boost'
BF_BOOST_INC = '${BF_BOOST}/include' BF_BOOST_INC = '${BF_BOOST}/include'
BF_BOOST_LIB = 'libboost_date_time-vc90-mt-s-1_49 libboost_filesystem-vc90-mt-s-1_49 libboost_regex-vc90-mt-s-1_49 libboost_system-vc90-mt-s-1_49 libboost_thread-vc90-mt-s-1_49 libboost_wave-vc90-mt-s-1_49' if VC_VERSION == '11.0':
BF_BOOST_LIB_INTERNATIONAL = ' libboost_locale-vc90-mt-s-1_49' BF_BOOST_LIB = 'libboost_date_time-vc110-mt-s-1_53 libboost_filesystem-vc110-mt-s-1_53 libboost_regex-vc110-mt-s-1_53 libboost_system-vc110-mt-s-1_53 libboost_thread-vc110-mt-s-1_53 libboost_wave-vc110-mt-s-1_53'
BF_BOOST_LIB_INTERNATIONAL = ' libboost_locale-vc110-mt-s-1_53'
else:
BF_BOOST_LIB = 'libboost_date_time-vc90-mt-s-1_49 libboost_filesystem-vc90-mt-s-1_49 libboost_regex-vc90-mt-s-1_49 libboost_system-vc90-mt-s-1_49 libboost_thread-vc90-mt-s-1_49 libboost_wave-vc90-mt-s-1_49'
BF_BOOST_LIB_INTERNATIONAL = ' libboost_locale-vc90-mt-s-1_49'
BF_BOOST_LIBPATH = '${BF_BOOST}/lib' BF_BOOST_LIBPATH = '${BF_BOOST}/lib'
#CUDA #CUDA
...@@ -206,16 +233,16 @@ CC = 'cl.exe' ...@@ -206,16 +233,16 @@ CC = 'cl.exe'
CXX = 'cl.exe' CXX = 'cl.exe'
CFLAGS = [] CFLAGS = []
CCFLAGS = ['/nologo', '/Ob1', '/J', '/W1', '/Gd', '/we4013', '/wd4018', '/wd4244', '/wd4305', '/wd4800', '/wd4065', '/wd4267'] CCFLAGS = ['/nologo', '/J', '/W1', '/Gd', '/we4013', '/wd4018', '/wd4244', '/wd4305', '/wd4800', '/wd4065', '/wd4267']
CXXFLAGS = ['/EHsc'] CXXFLAGS = ['/EHsc']
BGE_CXXFLAGS = ['/O2', '/EHsc', '/GR', '/fp:fast'] BGE_CXXFLAGS = ['/O2', '/Ob2', '/EHsc', '/GR', '/fp:fast']
BF_DEBUG_CCFLAGS = ['/Zi', '/FR${TARGET}.sbr', '/Od'] BF_DEBUG_CCFLAGS = ['/Zi', '/FR${TARGET}.sbr', '/Od', '/Ob0']
CPPFLAGS = ['-DWIN32', '-D_CONSOLE', '-D_LIB', '-D_CRT_SECURE_NO_DEPRECATE', '-DOPJ_STATIC'] CPPFLAGS = ['-DWIN32', '-D_CONSOLE', '-D_LIB', '-D_CRT_SECURE_NO_DEPRECATE', '-DOPJ_STATIC']
REL_CFLAGS = [] REL_CFLAGS = []
REL_CXXFLAGS = [] REL_CXXFLAGS = []
REL_CCFLAGS = ['-O2', '-DNDEBUG'] REL_CCFLAGS = ['-O2', '/Ob2', '-DNDEBUG']
C_WARN = [] C_WARN = []
CC_WARN = [] CC_WARN = []
...@@ -224,7 +251,9 @@ CXX_WARN = [] ...@@ -224,7 +251,9 @@ CXX_WARN = []
LLIBS = ['ws2_32', 'vfw32', 'winmm', 'kernel32', 'user32', 'gdi32', 'comdlg32', 'advapi32', 'shfolder', 'shell32', 'ole32', 'oleaut32', 'uuid', 'psapi'] LLIBS = ['ws2_32', 'vfw32', 'winmm', 'kernel32', 'user32', 'gdi32', 'comdlg32', 'advapi32', 'shfolder', 'shell32', 'ole32', 'oleaut32', 'uuid', 'psapi']
PLATFORM_LINKFLAGS = ['/SUBSYSTEM:CONSOLE','/MACHINE:X64','/STACK:2097152','/OPT:NOREF','/INCREMENTAL:NO', '/NODEFAULTLIB:msvcrt.lib', '/NODEFAULTLIB:msvcmrt.lib', '/NODEFAULTLIB:msvcurt.lib', '/NODEFAULTLIB:msvcrtd.lib'] PLATFORM_LINKFLAGS = ['/SUBSYSTEM:CONSOLE','/MACHINE:X64','/STACK:2097152','/OPT:NOREF','/INCREMENTAL:NO', '/NODEFAULTLIB:msvcrt.lib', '/NODEFAULTLIB:msvcmrt.lib', '/NODEFAULTLIB:msvcurt.lib', '/NODEFAULTLIB:msvcrtd.lib']
if VC_VERSION == '11.0':
BF_BUILDDIR = '..\\build\\win64-vc' BF_BUILDDIR = '..\\build\\win64-vc11'
BF_INSTALLDIR='..\\install\\win64-vc' BF_INSTALLDIR='..\\install\\win64-vc11'
else:
BF_BUILDDIR = '..\\build\\win64-vc'
BF_INSTALLDIR='..\\install\\win64-vc'
...@@ -190,7 +190,7 @@ def validate_arguments(args, bc): ...@@ -190,7 +190,7 @@ def validate_arguments(args, bc):
'BF_BSC', 'BF_CONFIG', 'BF_BSC', 'BF_CONFIG',
'BF_PRIORITYLIST', 'BF_BUILDINFO','CC', 'CXX', 'BF_QUICKDEBUG', 'BF_PRIORITYLIST', 'BF_BUILDINFO','CC', 'CXX', 'BF_QUICKDEBUG',
'BF_LISTDEBUG', 'LCGDIR', 'BF_X264_CONFIG', 'BF_XVIDCORE_CONFIG', 'BF_LISTDEBUG', 'LCGDIR', 'BF_X264_CONFIG', 'BF_XVIDCORE_CONFIG',
'BF_UNIT_TEST', 'BF_BITNESS'] 'BF_UNIT_TEST', 'BF_BITNESS', 'MSVS_VERSION']
okdict = {} okdict = {}
...@@ -687,6 +687,9 @@ def buildslave(target=None, source=None, env=None): ...@@ -687,6 +687,9 @@ def buildslave(target=None, source=None, env=None):
if platform == 'darwin': if platform == 'darwin':
platform = 'OSX-' + env['MACOSX_DEPLOYMENT_TARGET'] + '-' + env['MACOSX_ARCHITECTURE'] platform = 'OSX-' + env['MACOSX_DEPLOYMENT_TARGET'] + '-' + env['MACOSX_ARCHITECTURE']
if env['MSVC_VERSION'] == '11.0':
platform = env['OURPLATFORM'] + '11'
branch = env['BUILDBOT_BRANCH'] branch = env['BUILDBOT_BRANCH']
outdir = os.path.abspath(env['BF_INSTALLDIR']) outdir = os.path.abspath(env['BF_INSTALLDIR'])
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment